Message ID | 20200424045414.133381-3-swboyd@chromium.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Even moar rpmh cleanups | expand |
On Thu 23 Apr 21:54 PDT 2020, Stephen Boyd wrote: > readl returns a u32, and BITS_PER_LONG is different on 32-bit vs. 64-bit > architectures. Let's make the type we stash the readl into a u32 and > then loop over the bits set in that type instead of potentially looping > over more bits than we will ever need to. > > Cc: Maulik Shah <mkshah@codeaurora.org> > Cc: Douglas Anderson <dianders@chromium.org> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > drivers/soc/qcom/rpmh-rsc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c > index 76e0294a672c..462dd267afef 100644 > --- a/drivers/soc/qcom/rpmh-rsc.c > +++ b/drivers/soc/qcom/rpmh-rsc.c > @@ -365,13 +365,13 @@ static irqreturn_t tcs_tx_done(int irq, void *p) > { > struct rsc_drv *drv = p; > int i, j, err = 0; > - unsigned long irq_status; > + u32 irq_status; > const struct tcs_request *req; > struct tcs_cmd *cmd; > > irq_status = readl_relaxed(drv->tcs_base + RSC_DRV_IRQ_STATUS); > > - for_each_set_bit(i, &irq_status, BITS_PER_LONG) { > + for_each_set_bit(i, &irq_status, BITS_PER_TYPE(u32)) { > req = get_req_from_tcs(drv, i); > if (!req) { > WARN_ON(1); > -- > Sent by a computer, using git, on the internet >
Hi, On Thu, Apr 23, 2020 at 9:54 PM Stephen Boyd <swboyd@chromium.org> wrote: > > readl returns a u32, and BITS_PER_LONG is different on 32-bit vs. 64-bit > architectures. Let's make the type we stash the readl into a u32 and > then loop over the bits set in that type instead of potentially looping > over more bits than we will ever need to. > > Cc: Maulik Shah <mkshah@codeaurora.org> > Cc: Douglas Anderson <dianders@chromium.org> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/soc/qcom/rpmh-rsc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Douglas Anderson <dianders@chromium.org>
Hi, On Fri, Apr 24, 2020 at 10:11 AM Doug Anderson <dianders@chromium.org> wrote: > > Hi, > > On Thu, Apr 23, 2020 at 9:54 PM Stephen Boyd <swboyd@chromium.org> wrote: > > > > readl returns a u32, and BITS_PER_LONG is different on 32-bit vs. 64-bit > > architectures. Let's make the type we stash the readl into a u32 and > > then loop over the bits set in that type instead of potentially looping > > over more bits than we will ever need to. > > > > Cc: Maulik Shah <mkshah@codeaurora.org> > > Cc: Douglas Anderson <dianders@chromium.org> > > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > > --- > > drivers/soc/qcom/rpmh-rsc.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > Reviewed-by: Douglas Anderson <dianders@chromium.org> Oh, I suppose one nit is s/less/fewer/ in the subject. "bits" are discrete / countable, not continuous / uncountable. -Doug
Quoting Doug Anderson (2020-04-24 10:13:43) > Hi, > > On Fri, Apr 24, 2020 at 10:11 AM Doug Anderson <dianders@chromium.org> wrote: > > > > Hi, > > > > On Thu, Apr 23, 2020 at 9:54 PM Stephen Boyd <swboyd@chromium.org> wrote: > > > > > > readl returns a u32, and BITS_PER_LONG is different on 32-bit vs. 64-bit > > > architectures. Let's make the type we stash the readl into a u32 and > > > then loop over the bits set in that type instead of potentially looping > > > over more bits than we will ever need to. > > > > > > Cc: Maulik Shah <mkshah@codeaurora.org> > > > Cc: Douglas Anderson <dianders@chromium.org> > > > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > > > --- > > > drivers/soc/qcom/rpmh-rsc.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > Reviewed-by: Douglas Anderson <dianders@chromium.org> > > Oh, I suppose one nit is s/less/fewer/ in the subject. "bits" are > discrete / countable, not continuous / uncountable. > Ok that's good.
diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c index 76e0294a672c..462dd267afef 100644 --- a/drivers/soc/qcom/rpmh-rsc.c +++ b/drivers/soc/qcom/rpmh-rsc.c @@ -365,13 +365,13 @@ static irqreturn_t tcs_tx_done(int irq, void *p) { struct rsc_drv *drv = p; int i, j, err = 0; - unsigned long irq_status; + u32 irq_status; const struct tcs_request *req; struct tcs_cmd *cmd; irq_status = readl_relaxed(drv->tcs_base + RSC_DRV_IRQ_STATUS); - for_each_set_bit(i, &irq_status, BITS_PER_LONG) { + for_each_set_bit(i, &irq_status, BITS_PER_TYPE(u32)) { req = get_req_from_tcs(drv, i); if (!req) { WARN_ON(1);
readl returns a u32, and BITS_PER_LONG is different on 32-bit vs. 64-bit architectures. Let's make the type we stash the readl into a u32 and then loop over the bits set in that type instead of potentially looping over more bits than we will ever need to. Cc: Maulik Shah <mkshah@codeaurora.org> Cc: Douglas Anderson <dianders@chromium.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/soc/qcom/rpmh-rsc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)