From: Masahiro Yamada <yamada.masahiro@socionext.com> To: William Breathitt Gray <vilhelm.gray@gmail.com> Cc: Linus Walleij <linus.walleij@linaro.org>, Andrew Morton <akpm@linux-foundation.org>, "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>, linux-arch <linux-arch@vger.kernel.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Rasmus Villemoes <linux@rasmusvillemoes.dk>, bgolaszewski@baylibre.com, linux-arm-kernel <linux-arm-kernel@lists.infradead.org> Subject: Re: [PATCH v9 9/9] gpio: uniphier: Utilize for_each_set_clump8 macro Date: Tue, 12 Mar 2019 13:36:57 +0900 [thread overview] Message-ID: <CAK7LNARRqYb_ovO_ccQ8xTLTzNYyTEK8whT2r0cq_AqpWqeNXg@mail.gmail.com> (raw) In-Reply-To: <0840d55707dacd1121659723246fa9f55737f426.1551598603.git.vilhelm.gray@gmail.com> On Sun, Mar 3, 2019 at 4:51 PM William Breathitt Gray <vilhelm.gray@gmail.com> wrote: > > Replace verbose implementation in set_multiple callback with > for_each_set_clump8 macro to simplify code and improve clarity. An > improvement in this case is that banks that are not masked will now be > skipped. > > Cc: Masahiro Yamada <yamada.masahiro@socionext.com> > Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com> > --- > drivers/gpio/gpio-uniphier.c | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpio/gpio-uniphier.c b/drivers/gpio/gpio-uniphier.c > index 0f662b297a95..df640cb29b9c 100644 > --- a/drivers/gpio/gpio-uniphier.c > +++ b/drivers/gpio/gpio-uniphier.c > @@ -15,9 +15,6 @@ > #include <linux/spinlock.h> > #include <dt-bindings/gpio/uniphier-gpio.h> > > -#define UNIPHIER_GPIO_BANK_MASK \ > - GENMASK((UNIPHIER_GPIO_LINES_PER_BANK) - 1, 0) > - > #define UNIPHIER_GPIO_IRQ_MAX_NUM 24 > > #define UNIPHIER_GPIO_PORT_DATA 0x0 /* data */ > @@ -147,15 +144,14 @@ static void uniphier_gpio_set(struct gpio_chip *chip, > static void uniphier_gpio_set_multiple(struct gpio_chip *chip, > unsigned long *mask, unsigned long *bits) > { > - unsigned int bank, shift, bank_mask, bank_bits; > - int i; > + unsigned int i; > + unsigned long bank_mask; > + unsigned int bank; > + unsigned int bank_bits; > > - for (i = 0; i < chip->ngpio; i += UNIPHIER_GPIO_LINES_PER_BANK) { > + for_each_set_clump8(i, bank_mask, mask, chip->ngpio) { > bank = i / UNIPHIER_GPIO_LINES_PER_BANK; > - shift = i % BITS_PER_LONG; > - bank_mask = (mask[BIT_WORD(i)] >> shift) & > - UNIPHIER_GPIO_BANK_MASK; > - bank_bits = bits[BIT_WORD(i)] >> shift; > + bank_bits = bitmap_get_value8(bits, chip->ngpio, i); > > uniphier_gpio_bank_write(chip, bank, UNIPHIER_GPIO_PORT_DATA, > bank_mask, bank_bits); Please do not do this. Nothing in this driver says the GPIO width is 8-bit. You are hard-coding '8-bit'. > -- > 2.21.0 > -- Best Regards Masahiro Yamada
WARNING: multiple messages have this Message-ID (diff)
From: Masahiro Yamada <yamada.masahiro@socionext.com> To: William Breathitt Gray <vilhelm.gray@gmail.com> Cc: linux-arch <linux-arch@vger.kernel.org>, bgolaszewski@baylibre.com, Linus Walleij <linus.walleij@linaro.org>, Rasmus Villemoes <linux@rasmusvillemoes.dk>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>, Andrew Morton <akpm@linux-foundation.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org> Subject: Re: [PATCH v9 9/9] gpio: uniphier: Utilize for_each_set_clump8 macro Date: Tue, 12 Mar 2019 13:36:57 +0900 [thread overview] Message-ID: <CAK7LNARRqYb_ovO_ccQ8xTLTzNYyTEK8whT2r0cq_AqpWqeNXg@mail.gmail.com> (raw) In-Reply-To: <0840d55707dacd1121659723246fa9f55737f426.1551598603.git.vilhelm.gray@gmail.com> On Sun, Mar 3, 2019 at 4:51 PM William Breathitt Gray <vilhelm.gray@gmail.com> wrote: > > Replace verbose implementation in set_multiple callback with > for_each_set_clump8 macro to simplify code and improve clarity. An > improvement in this case is that banks that are not masked will now be > skipped. > > Cc: Masahiro Yamada <yamada.masahiro@socionext.com> > Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com> > --- > drivers/gpio/gpio-uniphier.c | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpio/gpio-uniphier.c b/drivers/gpio/gpio-uniphier.c > index 0f662b297a95..df640cb29b9c 100644 > --- a/drivers/gpio/gpio-uniphier.c > +++ b/drivers/gpio/gpio-uniphier.c > @@ -15,9 +15,6 @@ > #include <linux/spinlock.h> > #include <dt-bindings/gpio/uniphier-gpio.h> > > -#define UNIPHIER_GPIO_BANK_MASK \ > - GENMASK((UNIPHIER_GPIO_LINES_PER_BANK) - 1, 0) > - > #define UNIPHIER_GPIO_IRQ_MAX_NUM 24 > > #define UNIPHIER_GPIO_PORT_DATA 0x0 /* data */ > @@ -147,15 +144,14 @@ static void uniphier_gpio_set(struct gpio_chip *chip, > static void uniphier_gpio_set_multiple(struct gpio_chip *chip, > unsigned long *mask, unsigned long *bits) > { > - unsigned int bank, shift, bank_mask, bank_bits; > - int i; > + unsigned int i; > + unsigned long bank_mask; > + unsigned int bank; > + unsigned int bank_bits; > > - for (i = 0; i < chip->ngpio; i += UNIPHIER_GPIO_LINES_PER_BANK) { > + for_each_set_clump8(i, bank_mask, mask, chip->ngpio) { > bank = i / UNIPHIER_GPIO_LINES_PER_BANK; > - shift = i % BITS_PER_LONG; > - bank_mask = (mask[BIT_WORD(i)] >> shift) & > - UNIPHIER_GPIO_BANK_MASK; > - bank_bits = bits[BIT_WORD(i)] >> shift; > + bank_bits = bitmap_get_value8(bits, chip->ngpio, i); > > uniphier_gpio_bank_write(chip, bank, UNIPHIER_GPIO_PORT_DATA, > bank_mask, bank_bits); Please do not do this. Nothing in this driver says the GPIO width is 8-bit. You are hard-coding '8-bit'. > -- > 2.21.0 > -- Best Regards Masahiro Yamada _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-03-12 4:36 UTC|newest] Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-03-03 7:44 [PATCH v9 0/9] Introduce the for_each_set_clump8 macro William Breathitt Gray 2019-03-03 7:47 ` William Breathitt Gray 2019-03-03 7:47 ` William Breathitt Gray 2019-03-03 7:44 ` William Breathitt Gray 2019-03-03 7:48 ` [PATCH v9 1/9] bitops: " William Breathitt Gray 2019-03-03 7:48 ` William Breathitt Gray 2019-03-08 8:31 ` Linus Walleij 2019-03-08 8:31 ` Linus Walleij 2019-03-08 8:57 ` William Breathitt Gray 2019-03-08 8:57 ` William Breathitt Gray 2019-03-08 9:19 ` Andy Shevchenko 2019-03-08 9:19 ` Andy Shevchenko 2019-03-12 5:36 ` Masahiro Yamada 2019-03-12 5:36 ` Masahiro Yamada 2019-03-12 7:22 ` William Breathitt Gray 2019-03-12 7:22 ` William Breathitt Gray 2019-03-12 14:54 ` Andy Shevchenko 2019-03-12 14:54 ` Andy Shevchenko 2019-03-12 1:01 ` Andrew Morton 2019-03-12 1:01 ` Andrew Morton 2019-03-12 10:43 ` William Breathitt Gray 2019-03-12 10:43 ` William Breathitt Gray 2019-03-12 3:52 ` Masahiro Yamada 2019-03-12 3:52 ` Masahiro Yamada 2019-03-12 5:03 ` Masahiro Yamada 2019-03-12 5:03 ` Masahiro Yamada 2019-03-12 7:14 ` Andy Shevchenko 2019-03-12 7:14 ` Andy Shevchenko 2019-03-03 7:48 ` [PATCH v9 2/9] lib/test_bitmap.c: Add for_each_set_clump8 test cases William Breathitt Gray 2019-03-03 7:48 ` William Breathitt Gray 2019-03-11 7:56 ` [LKP] [lib/test_bitmap.c] ecdc93614a: kernel_selftests.lib.bitmap.sh.fail kernel test robot 2019-03-11 7:56 ` kernel test robot 2019-03-11 7:56 ` [LKP] " kernel test robot 2019-03-03 7:49 ` [PATCH v9 3/9] gpio: 104-dio-48e: Utilize for_each_set_clump8 macro William Breathitt Gray 2019-03-03 7:49 ` William Breathitt Gray 2019-03-03 7:49 ` [PATCH v9 4/9] gpio: 104-idi-48: " William Breathitt Gray 2019-03-03 7:49 ` William Breathitt Gray 2019-03-03 7:50 ` [PATCH v9 5/9] gpio: gpio-mm: " William Breathitt Gray 2019-03-03 7:50 ` William Breathitt Gray 2019-03-03 7:50 ` [PATCH v9 6/9] gpio: ws16c48: " William Breathitt Gray 2019-03-03 7:50 ` William Breathitt Gray 2019-03-03 7:51 ` [PATCH v9 7/9] gpio: pci-idio-16: " William Breathitt Gray 2019-03-03 7:51 ` William Breathitt Gray 2019-03-03 7:51 ` [PATCH v9 8/9] gpio: pcie-idio-24: " William Breathitt Gray 2019-03-03 7:51 ` William Breathitt Gray 2019-03-03 7:51 ` [PATCH v9 9/9] gpio: uniphier: " William Breathitt Gray 2019-03-03 7:51 ` William Breathitt Gray 2019-03-12 4:36 ` Masahiro Yamada [this message] 2019-03-12 4:36 ` Masahiro Yamada 2019-03-12 7:17 ` Andy Shevchenko 2019-03-12 7:17 ` Andy Shevchenko 2019-03-12 8:57 ` Masahiro Yamada 2019-03-12 8:57 ` Masahiro Yamada 2019-03-12 9:09 ` Andy Shevchenko 2019-03-12 9:09 ` Andy Shevchenko 2019-03-12 7:29 ` William Breathitt Gray 2019-03-12 7:29 ` William Breathitt Gray
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=CAK7LNARRqYb_ovO_ccQ8xTLTzNYyTEK8whT2r0cq_AqpWqeNXg@mail.gmail.com \ --to=yamada.masahiro@socionext.com \ --cc=akpm@linux-foundation.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=bgolaszewski@baylibre.com \ --cc=linus.walleij@linaro.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@rasmusvillemoes.dk \ --cc=vilhelm.gray@gmail.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.