From: Sean Wang <sean.wang@mediatek.com> To: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com> Cc: Herbert Xu <herbert@gondor.apana.org.au>, Matt Mackall <mpm@selenic.com>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Corentin LABBE <clabbe.montjoie@gmail.com>, "Romain Perier" <romain.perier@free-electrons.com>, <shannon.nelson@oracle.com>, "Wei Yongjun" <weiyongjun1@huawei.com>, <devicetree@vger.kernel.org>, <linux-crypto@vger.kernel.org>, <linux-mediatek@lists.infradead.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <keyhaede@gmail.com> Subject: Re: [PATCH 2/2] hwrng: mtk: Add driver for hardware random generator on MT7623 SoC Date: Fri, 14 Apr 2017 11:58:16 +0800 [thread overview] Message-ID: <1492142296.6147.19.camel@mtkswgap22> (raw) In-Reply-To: <CANc+2y4Oj-sbSKnsTSK+kRYNewp7Pj0fEk_=dqULxWG08L77Eg@mail.gmail.com> Hi PrasannaKumar, Add my comments inline On Thu, 2017-04-13 at 14:09 +0530, PrasannaKumar Muralidharan wrote: > Hi Sean, > > Mostly looks good, have few minor comments. > > On 13 April 2017 at 12:35, <sean.wang@mediatek.com> wrote: > > +static bool mtk_rng_wait_ready(struct hwrng *rng, bool wait) > > +{ > > + struct mtk_rng *priv = to_mtk_rng(rng); > > + int ready; > > + > > + ready = readl(priv->base + RNG_CTRL) & RNG_READY; > > + if (!ready && wait) > > + readl_poll_timeout_atomic(priv->base + RNG_CTRL, ready, > > + ready & RNG_READY, USEC_POLL, > > + TIMEOUT_POLL); > > + return !!ready; > > +} > > Use readl_poll_timeout_atomic's return value or -EIO instead of > !!ready. This will simplify mtk_rng_read. > !!ready provided is in order to let blocking/non-blocking case could share same code path. And readl_poll_timeout_atomic only handles blocking case. > > +static int mtk_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) > > +{ > > + struct mtk_rng *priv = to_mtk_rng(rng); > > + int retval = 0; > > + > > + while (max >= sizeof(u32)) { > > + if (!mtk_rng_wait_ready(rng, wait)) > > + break; > > + > > + *(u32 *)buf = readl(priv->base + RNG_DATA); > > + retval += sizeof(u32); > > + buf += sizeof(u32); > > + max -= sizeof(u32); > > + } > > + > > + if (unlikely(wait && max)) > > + dev_warn(priv->dev, "timeout might be not properly set\n"); > > Is this really necessary? Better to choose proper timeout than > providing this warning message. In rare cases if the timeout could > occur due to some reason (may be a hardware fault) print appropriate > warning message. It is good, I will choose the proper timeout and remove the log in the next one. > > > + return retval || !wait ? retval : -EIO; > > +} > > Set retavl to mtk_rng_wait_ready and return retval. > Maybe i didn't get your points exactly. Adding some explanation about thoughts here. "return retval || !wait ? retval : -EIO;" I use can also help handling the both cases in one line which i think is elegant enough. And retval is accumulated with each round if some data's existing in hardware, so we don't return the value from mtk_rng_wait_ready(). > Regards, > Prasanna thanks for all your reviewing and suggestion Sean
next prev parent reply other threads:[~2017-04-14 3:58 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-13 7:05 [PATCH 0/2] hwrng: mtk: add support " sean.wang 2017-04-13 7:05 ` [PATCH 1/2] dt-bindings: hwrng: Add Mediatek hardware random generator bindings sean.wang 2017-04-19 21:23 ` Rob Herring 2017-04-13 7:05 ` [PATCH 2/2] hwrng: mtk: Add driver for hardware random generator on MT7623 SoC sean.wang 2017-04-13 8:39 ` PrasannaKumar Muralidharan 2017-04-14 3:58 ` Sean Wang [this message] 2017-04-14 4:57 ` PrasannaKumar Muralidharan 2017-04-13 11:06 ` Corentin Labbe 2017-04-14 3:38 ` Sean Wang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1492142296.6147.19.camel@mtkswgap22 \ --to=sean.wang@mediatek.com \ --cc=clabbe.montjoie@gmail.com \ --cc=devicetree@vger.kernel.org \ --cc=herbert@gondor.apana.org.au \ --cc=keyhaede@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=mark.rutland@arm.com \ --cc=mpm@selenic.com \ --cc=prasannatsmkumar@gmail.com \ --cc=robh+dt@kernel.org \ --cc=romain.perier@free-electrons.com \ --cc=shannon.nelson@oracle.com \ --cc=weiyongjun1@huawei.com \ --subject='Re: [PATCH 2/2] hwrng: mtk: Add driver for hardware random generator on MT7623 SoC' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).