* [PATCH 0/4] use BIT() macro instead manually shifting bits
@ 2014-04-27 0:00 Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 1/4] gpio: em: " Javier Martinez Canillas
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 0:00 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio, inux-omap,
Javier Martinez Canillas
Hello Linus and Alexandre,
While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
split refactoring I wrote this trivial semantic patch that replaces a
manual bit shift by using the BIT macro from <linux/bitops.h>
@hasbitops@
@@
#include <linux/bitops.h>
@depends on hasbitops@
expression E;
@@
- 1 << E
+ BIT(E)
@depends on hasbitops@
expression E;
@@
- BIT((E))
+ BIT(E)
When applying to the drivers/gpio subdirectory I got
the following clean up patches for some GPIO drivers.
Javier Martinez Canillas (4):
gpio: em: use BIT() macro instead manually shifting bits
gpio: kempld: use BIT() macro instead manually shifting bits
gpio: omap: use BIT() macro instead manually shifting bits
gpio: pl061: use BIT() macro instead manually shifting bits
drivers/gpio/gpio-em.c | 2 +-
drivers/gpio/gpio-kempld.c | 2 +-
drivers/gpio/gpio-omap.c | 50 +++++++++++++++++++++++-----------------------
drivers/gpio/gpio-pl061.c | 26 ++++++++++++------------
4 files changed, 40 insertions(+), 40 deletions(-)
I've only tested the changes on a OMAP3 board but the changes are very
straightforward and that's the advantage of using coccinelle after all.
Best regards,
Javier
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/4] gpio: em: use BIT() macro instead manually shifting bits
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
@ 2014-04-27 0:00 ` Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 2/4] gpio: kempld: " Javier Martinez Canillas
` (4 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 0:00 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio, inux-omap,
Javier Martinez Canillas
Using the BIT() macro instead of manually shifting bits
makes the code less error prone and also more readable.
Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
---
drivers/gpio/gpio-em.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c
index 8765bd6..1da1aa4 100644
--- a/drivers/gpio/gpio-em.c
+++ b/drivers/gpio/gpio-em.c
@@ -212,7 +212,7 @@ static void __em_gio_set(struct gpio_chip *chip, unsigned int reg,
{
/* upper 16 bits contains mask and lower 16 actual value */
em_gio_write(gpio_to_priv(chip), reg,
- (1 << (shift + 16)) | (value << shift));
+ (BIT(shift + 16)) | (value << shift));
}
static void em_gio_set(struct gpio_chip *chip, unsigned offset, int value)
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/4] gpio: kempld: use BIT() macro instead manually shifting bits
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 1/4] gpio: em: " Javier Martinez Canillas
@ 2014-04-27 0:00 ` Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 3/4] gpio: omap: " Javier Martinez Canillas
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 0:00 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio, inux-omap,
Javier Martinez Canillas
Using the BIT() macro instead of manually shifting bits
makes the code less error prone and also more readable.
Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
---
drivers/gpio/gpio-kempld.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-kempld.c b/drivers/gpio/gpio-kempld.c
index ebe1023..1e5e519 100644
--- a/drivers/gpio/gpio-kempld.c
+++ b/drivers/gpio/gpio-kempld.c
@@ -24,7 +24,7 @@
#include <linux/mfd/kempld.h>
#define KEMPLD_GPIO_MAX_NUM 16
-#define KEMPLD_GPIO_MASK(x) (1 << ((x) % 8))
+#define KEMPLD_GPIO_MASK(x) (BIT((x) % 8))
#define KEMPLD_GPIO_DIR_NUM(x) (0x40 + (x) / 8)
#define KEMPLD_GPIO_LVL_NUM(x) (0x42 + (x) / 8)
#define KEMPLD_GPIO_EVT_LVL_EDGE 0x46
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/4] gpio: omap: use BIT() macro instead manually shifting bits
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 1/4] gpio: em: " Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 2/4] gpio: kempld: " Javier Martinez Canillas
@ 2014-04-27 0:00 ` Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 4/4] gpio: pl061: " Javier Martinez Canillas
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 0:00 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio, inux-omap,
Javier Martinez Canillas
Using the BIT() macro instead of manually shifting bits
makes the code less error prone and also more readable.
Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
---
drivers/gpio/gpio-omap.c | 50 ++++++++++++++++++++++++------------------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index 47c6056..01d50a0 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -83,11 +83,11 @@ struct gpio_bank {
};
#define GPIO_INDEX(bank, gpio) (gpio % bank->width)
-#define GPIO_BIT(bank, gpio) (1 << GPIO_INDEX(bank, gpio))
+#define GPIO_BIT(bank, gpio) (BIT(GPIO_INDEX(bank, gpio)))
#define GPIO_MOD_CTRL_BIT BIT(0)
#define BANK_USED(bank) (bank->mod_usage || bank->irq_usage)
-#define LINE_USED(line, offset) (line & (1 << offset))
+#define LINE_USED(line, offset) (line & (BIT(offset)))
static int irq_to_gpio(struct gpio_bank *bank, unsigned int gpio_irq)
{
@@ -108,9 +108,9 @@ static void _set_gpio_direction(struct gpio_bank *bank, int gpio, int is_input)
reg += bank->regs->direction;
l = readl_relaxed(reg);
if (is_input)
- l |= 1 << gpio;
+ l |= BIT(gpio);
else
- l &= ~(1 << gpio);
+ l &= ~(BIT(gpio));
writel_relaxed(l, reg);
bank->context.oe = l;
}
@@ -153,14 +153,14 @@ static int _get_gpio_datain(struct gpio_bank *bank, int offset)
{
void __iomem *reg = bank->base + bank->regs->datain;
- return (readl_relaxed(reg) & (1 << offset)) != 0;
+ return (readl_relaxed(reg) & (BIT(offset))) != 0;
}
static int _get_gpio_dataout(struct gpio_bank *bank, int offset)
{
void __iomem *reg = bank->base + bank->regs->dataout;
- return (readl_relaxed(reg) & (1 << offset)) != 0;
+ return (readl_relaxed(reg) & (BIT(offset))) != 0;
}
static inline void _gpio_rmw(void __iomem *base, u32 reg, u32 mask, bool set)
@@ -297,7 +297,7 @@ static inline void set_gpio_trigger(struct gpio_bank *bank, int gpio,
unsigned trigger)
{
void __iomem *base = bank->base;
- u32 gpio_bit = 1 << gpio;
+ u32 gpio_bit = BIT(gpio);
_gpio_rmw(base, bank->regs->leveldetect0, gpio_bit,
trigger & IRQ_TYPE_LEVEL_LOW);
@@ -366,9 +366,9 @@ static void _toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio)
l = readl_relaxed(reg);
if ((l >> gpio) & 1)
- l &= ~(1 << gpio);
+ l &= ~(BIT(gpio));
else
- l |= 1 << gpio;
+ l |= BIT(gpio);
writel_relaxed(l, reg);
}
@@ -390,11 +390,11 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio,
l = readl_relaxed(reg);
if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
- bank->toggle_mask |= 1 << gpio;
+ bank->toggle_mask |= BIT(gpio);
if (trigger & IRQ_TYPE_EDGE_RISING)
- l |= 1 << gpio;
+ l |= BIT(gpio);
else if (trigger & IRQ_TYPE_EDGE_FALLING)
- l &= ~(1 << gpio);
+ l &= ~(BIT(gpio));
else
return -EINVAL;
@@ -411,10 +411,10 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio,
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 2 << (gpio << 1);
if (trigger & IRQ_TYPE_EDGE_FALLING)
- l |= 1 << (gpio << 1);
+ l |= BIT(gpio << 1);
/* Enable wake-up during idle for dynamic tick */
- _gpio_rmw(base, bank->regs->wkup_en, 1 << gpio, trigger);
+ _gpio_rmw(base, bank->regs->wkup_en, BIT(gpio), trigger);
bank->context.wake_en =
readl_relaxed(bank->base + bank->regs->wkup_en);
writel_relaxed(l, reg);
@@ -428,7 +428,7 @@ static void _enable_gpio_module(struct gpio_bank *bank, unsigned offset)
void __iomem *reg = bank->base + bank->regs->pinctrl;
/* Claim the pin for MPU */
- writel_relaxed(readl_relaxed(reg) | (1 << offset), reg);
+ writel_relaxed(readl_relaxed(reg) | (BIT(offset)), reg);
}
if (bank->regs->ctrl && !BANK_USED(bank)) {
@@ -451,7 +451,7 @@ static void _disable_gpio_module(struct gpio_bank *bank, unsigned offset)
!LINE_USED(bank->mod_usage, offset) &&
!LINE_USED(bank->irq_usage, offset)) {
/* Disable wake-up during idle for dynamic tick */
- _gpio_rmw(base, bank->regs->wkup_en, 1 << offset, 0);
+ _gpio_rmw(base, bank->regs->wkup_en, BIT(offset), 0);
bank->context.wake_en =
readl_relaxed(bank->base + bank->regs->wkup_en);
}
@@ -507,12 +507,12 @@ static int gpio_irq_type(struct irq_data *d, unsigned type)
if (!LINE_USED(bank->mod_usage, offset)) {
_enable_gpio_module(bank, offset);
_set_gpio_direction(bank, offset, 1);
- } else if (!gpio_is_input(bank, 1 << offset)) {
+ } else if (!gpio_is_input(bank, BIT(offset))) {
spin_unlock_irqrestore(&bank->lock, flags);
return -EINVAL;
}
- bank->irq_usage |= 1 << GPIO_INDEX(bank, gpio);
+ bank->irq_usage |= BIT(GPIO_INDEX(bank, gpio));
spin_unlock_irqrestore(&bank->lock, flags);
if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
@@ -549,7 +549,7 @@ static u32 _get_gpio_irqbank_mask(struct gpio_bank *bank)
{
void __iomem *reg = bank->base;
u32 l;
- u32 mask = (1 << bank->width) - 1;
+ u32 mask = (BIT(bank->width)) - 1;
reg += bank->regs->irqenable;
l = readl_relaxed(reg);
@@ -681,7 +681,7 @@ static int omap_gpio_request(struct gpio_chip *chip, unsigned offset)
_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);
_enable_gpio_module(bank, offset);
}
- bank->mod_usage |= 1 << offset;
+ bank->mod_usage |= BIT(offset);
spin_unlock_irqrestore(&bank->lock, flags);
return 0;
@@ -693,7 +693,7 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)
unsigned long flags;
spin_lock_irqsave(&bank->lock, flags);
- bank->mod_usage &= ~(1 << offset);
+ bank->mod_usage &= ~(BIT(offset));
_disable_gpio_module(bank, offset);
_reset_gpio(bank, bank->chip.base + offset);
spin_unlock_irqrestore(&bank->lock, flags);
@@ -763,7 +763,7 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
while (isr) {
bit = __ffs(isr);
- isr &= ~(1 << bit);
+ isr &= ~(BIT(bit));
/*
* Some chips can't respond to both rising and falling
@@ -772,7 +772,7 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
* to respond to the IRQ for the opposite direction.
* This will be indicated in the bank toggle_mask.
*/
- if (bank->toggle_mask & (1 << bit))
+ if (bank->toggle_mask & (BIT(bit)))
_toggle_gpio_edge_triggering(bank, bit);
generic_handle_irq(irq_find_mapping(bank->chip.irqdomain,
@@ -798,7 +798,7 @@ static void gpio_irq_shutdown(struct irq_data *d)
spin_lock_irqsave(&bank->lock, flags);
gpio_unlock_as_irq(&bank->chip, offset);
- bank->irq_usage &= ~(1 << offset);
+ bank->irq_usage &= ~(BIT(offset));
_disable_gpio_module(bank, offset);
_reset_gpio(bank, gpio);
spin_unlock_irqrestore(&bank->lock, flags);
@@ -961,7 +961,7 @@ static int gpio_get(struct gpio_chip *chip, unsigned offset)
u32 mask;
bank = container_of(chip, struct gpio_bank, chip);
- mask = (1 << offset);
+ mask = (BIT(offset));
if (gpio_is_input(bank, mask))
return _get_gpio_datain(bank, offset);
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/4] gpio: pl061: use BIT() macro instead manually shifting bits
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
` (2 preceding siblings ...)
2014-04-27 0:00 ` [PATCH 3/4] gpio: omap: " Javier Martinez Canillas
@ 2014-04-27 0:00 ` Javier Martinez Canillas
2014-04-27 10:16 ` [PATCH 0/4] " Alexandre Courbot
2014-05-03 19:15 ` Linus Walleij
5 siblings, 0 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 0:00 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio, inux-omap,
Javier Martinez Canillas
Using the BIT() macro instead of manually shifting bits
makes the code less error prone and also more readable.
Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
---
drivers/gpio/gpio-pl061.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
index 84553d3..84b49cf 100644
--- a/drivers/gpio/gpio-pl061.c
+++ b/drivers/gpio/gpio-pl061.c
@@ -87,7 +87,7 @@ static int pl061_direction_input(struct gpio_chip *gc, unsigned offset)
spin_lock_irqsave(&chip->lock, flags);
gpiodir = readb(chip->base + GPIODIR);
- gpiodir &= ~(1 << offset);
+ gpiodir &= ~(BIT(offset));
writeb(gpiodir, chip->base + GPIODIR);
spin_unlock_irqrestore(&chip->lock, flags);
@@ -105,16 +105,16 @@ static int pl061_direction_output(struct gpio_chip *gc, unsigned offset,
return -EINVAL;
spin_lock_irqsave(&chip->lock, flags);
- writeb(!!value << offset, chip->base + (1 << (offset + 2)));
+ writeb(!!value << offset, chip->base + (BIT(offset + 2)));
gpiodir = readb(chip->base + GPIODIR);
- gpiodir |= 1 << offset;
+ gpiodir |= BIT(offset);
writeb(gpiodir, chip->base + GPIODIR);
/*
* gpio value is set again, because pl061 doesn't allow to set value of
* a gpio pin before configuring it in OUT mode.
*/
- writeb(!!value << offset, chip->base + (1 << (offset + 2)));
+ writeb(!!value << offset, chip->base + (BIT(offset + 2)));
spin_unlock_irqrestore(&chip->lock, flags);
return 0;
@@ -124,14 +124,14 @@ static int pl061_get_value(struct gpio_chip *gc, unsigned offset)
{
struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc);
- return !!readb(chip->base + (1 << (offset + 2)));
+ return !!readb(chip->base + (BIT(offset + 2)));
}
static void pl061_set_value(struct gpio_chip *gc, unsigned offset, int value)
{
struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc);
- writeb(!!value << offset, chip->base + (1 << (offset + 2)));
+ writeb(!!value << offset, chip->base + (BIT(offset + 2)));
}
static int pl061_irq_type(struct irq_data *d, unsigned trigger)
@@ -206,7 +206,7 @@ static void pl061_irq_mask(struct irq_data *d)
{
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc);
- u8 mask = 1 << (irqd_to_hwirq(d) % PL061_GPIO_NR);
+ u8 mask = BIT(irqd_to_hwirq(d) % PL061_GPIO_NR);
u8 gpioie;
spin_lock(&chip->lock);
@@ -219,7 +219,7 @@ static void pl061_irq_unmask(struct irq_data *d)
{
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct pl061_gpio *chip = container_of(gc, struct pl061_gpio, gc);
- u8 mask = 1 << (irqd_to_hwirq(d) % PL061_GPIO_NR);
+ u8 mask = BIT(irqd_to_hwirq(d) % PL061_GPIO_NR);
u8 gpioie;
spin_lock(&chip->lock);
@@ -301,9 +301,9 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id)
for (i = 0; i < PL061_GPIO_NR; i++) {
if (pdata) {
- if (pdata->directions & (1 << i))
+ if (pdata->directions & (BIT(i)))
pl061_direction_output(&chip->gc, i,
- pdata->values & (1 << i));
+ pdata->values & (BIT(i)));
else
pl061_direction_input(&chip->gc, i);
}
@@ -330,7 +330,7 @@ static int pl061_suspend(struct device *dev)
chip->csave_regs.gpio_ie = readb(chip->base + GPIOIE);
for (offset = 0; offset < PL061_GPIO_NR; offset++) {
- if (chip->csave_regs.gpio_dir & (1 << offset))
+ if (chip->csave_regs.gpio_dir & (BIT(offset)))
chip->csave_regs.gpio_data |=
pl061_get_value(&chip->gc, offset) << offset;
}
@@ -344,10 +344,10 @@ static int pl061_resume(struct device *dev)
int offset;
for (offset = 0; offset < PL061_GPIO_NR; offset++) {
- if (chip->csave_regs.gpio_dir & (1 << offset))
+ if (chip->csave_regs.gpio_dir & (BIT(offset)))
pl061_direction_output(&chip->gc, offset,
chip->csave_regs.gpio_data &
- (1 << offset));
+ (BIT(offset)));
else
pl061_direction_input(&chip->gc, offset);
}
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] use BIT() macro instead manually shifting bits
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
` (3 preceding siblings ...)
2014-04-27 0:00 ` [PATCH 4/4] gpio: pl061: " Javier Martinez Canillas
@ 2014-04-27 10:16 ` Alexandre Courbot
2014-04-27 10:46 ` Javier Martinez Canillas
2014-05-03 19:15 ` Linus Walleij
5 siblings, 1 reply; 11+ messages in thread
From: Alexandre Courbot @ 2014-04-27 10:16 UTC (permalink / raw)
To: Javier Martinez Canillas
Cc: Linus Walleij, Santosh Shilimkar, linux-gpio@vger.kernel.org,
inux-omap
On Sun, Apr 27, 2014 at 9:00 AM, Javier Martinez Canillas
<javier@dowhile0.org> wrote:
> Hello Linus and Alexandre,
>
> While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
> split refactoring I wrote this trivial semantic patch that replaces a
> manual bit shift by using the BIT macro from <linux/bitops.h>
>
> @hasbitops@
> @@
>
> #include <linux/bitops.h>
>
> @depends on hasbitops@
> expression E;
> @@
>
> - 1 << E
> + BIT(E)
>
> @depends on hasbitops@
> expression E;
> @@
>
> - BIT((E))
> + BIT(E)
>
> When applying to the drivers/gpio subdirectory I got
> the following clean up patches for some GPIO drivers.
I personally find "1 << n" easier to read than a macro, but you are
right that the macro is less error-prone. Nice use of Coccinelle btw,
I should really spend the time to learn it.
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] use BIT() macro instead manually shifting bits
2014-04-27 10:16 ` [PATCH 0/4] " Alexandre Courbot
@ 2014-04-27 10:46 ` Javier Martinez Canillas
2014-04-27 11:16 ` Alexandre Courbot
0 siblings, 1 reply; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 10:46 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Linus Walleij, Santosh Shilimkar, linux-gpio@vger.kernel.org
Hello Alexandre,
Thanks a lot for your feedback.
On Sun, Apr 27, 2014 at 12:16 PM, Alexandre Courbot <gnurou@gmail.com> wrote:
> On Sun, Apr 27, 2014 at 9:00 AM, Javier Martinez Canillas
> <javier@dowhile0.org> wrote:
>> Hello Linus and Alexandre,
>>
>> While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
>> split refactoring I wrote this trivial semantic patch that replaces a
>> manual bit shift by using the BIT macro from <linux/bitops.h>
>>
>> @hasbitops@
>> @@
>>
>> #include <linux/bitops.h>
>>
>> @depends on hasbitops@
>> expression E;
>> @@
>>
>> - 1 << E
>> + BIT(E)
>>
>> @depends on hasbitops@
>> expression E;
>> @@
>>
>> - BIT((E))
>> + BIT(E)
>>
>> When applying to the drivers/gpio subdirectory I got
>> the following clean up patches for some GPIO drivers.
>
> I personally find "1 << n" easier to read than a macro, but you are
> right that the macro is less error-prone. Nice use of Coccinelle btw,
> I should really spend the time to learn it.
>
> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Yes I agree that the readability is a matter of personal taste. Do you
want me to send a v2 with a better wording on the commit message?
Best regards,
Javier
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] use BIT() macro instead manually shifting bits
2014-04-27 10:46 ` Javier Martinez Canillas
@ 2014-04-27 11:16 ` Alexandre Courbot
2014-04-27 11:48 ` Javier Martinez Canillas
0 siblings, 1 reply; 11+ messages in thread
From: Alexandre Courbot @ 2014-04-27 11:16 UTC (permalink / raw)
To: Javier Martinez Canillas
Cc: Linus Walleij, Santosh Shilimkar, linux-gpio@vger.kernel.org
On Sun, Apr 27, 2014 at 7:46 PM, Javier Martinez Canillas
<javier@dowhile0.org> wrote:
> Hello Alexandre,
>
> Thanks a lot for your feedback.
>
> On Sun, Apr 27, 2014 at 12:16 PM, Alexandre Courbot <gnurou@gmail.com> wrote:
>> On Sun, Apr 27, 2014 at 9:00 AM, Javier Martinez Canillas
>> <javier@dowhile0.org> wrote:
>>> Hello Linus and Alexandre,
>>>
>>> While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
>>> split refactoring I wrote this trivial semantic patch that replaces a
>>> manual bit shift by using the BIT macro from <linux/bitops.h>
>>>
>>> @hasbitops@
>>> @@
>>>
>>> #include <linux/bitops.h>
>>>
>>> @depends on hasbitops@
>>> expression E;
>>> @@
>>>
>>> - 1 << E
>>> + BIT(E)
>>>
>>> @depends on hasbitops@
>>> expression E;
>>> @@
>>>
>>> - BIT((E))
>>> + BIT(E)
>>>
>>> When applying to the drivers/gpio subdirectory I got
>>> the following clean up patches for some GPIO drivers.
>>
>> I personally find "1 << n" easier to read than a macro, but you are
>> right that the macro is less error-prone. Nice use of Coccinelle btw,
>> I should really spend the time to learn it.
>>
>> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
>
> Yes I agree that the readability is a matter of personal taste. Do you
> want me to send a v2 with a better wording on the commit message?
No, I think it's good as it is. Nice usage of Coccinelle btw. I really
should spend some time learning how to use it.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] use BIT() macro instead manually shifting bits
2014-04-27 11:16 ` Alexandre Courbot
@ 2014-04-27 11:48 ` Javier Martinez Canillas
0 siblings, 0 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-04-27 11:48 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Linus Walleij, Santosh Shilimkar, linux-gpio@vger.kernel.org
On Sun, Apr 27, 2014 at 1:16 PM, Alexandre Courbot <gnurou@gmail.com> wrote:
> On Sun, Apr 27, 2014 at 7:46 PM, Javier Martinez Canillas
> <javier@dowhile0.org> wrote:
>> Hello Alexandre,
>>
>> Thanks a lot for your feedback.
>>
>> On Sun, Apr 27, 2014 at 12:16 PM, Alexandre Courbot <gnurou@gmail.com> wrote:
>>> On Sun, Apr 27, 2014 at 9:00 AM, Javier Martinez Canillas
>>> <javier@dowhile0.org> wrote:
>>>> Hello Linus and Alexandre,
>>>>
>>>> While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
>>>> split refactoring I wrote this trivial semantic patch that replaces a
>>>> manual bit shift by using the BIT macro from <linux/bitops.h>
>>>>
>>>> @hasbitops@
>>>> @@
>>>>
>>>> #include <linux/bitops.h>
>>>>
>>>> @depends on hasbitops@
>>>> expression E;
>>>> @@
>>>>
>>>> - 1 << E
>>>> + BIT(E)
>>>>
>>>> @depends on hasbitops@
>>>> expression E;
>>>> @@
>>>>
>>>> - BIT((E))
>>>> + BIT(E)
>>>>
>>>> When applying to the drivers/gpio subdirectory I got
>>>> the following clean up patches for some GPIO drivers.
>>>
>>> I personally find "1 << n" easier to read than a macro, but you are
>>> right that the macro is less error-prone. Nice use of Coccinelle btw,
>>> I should really spend the time to learn it.
>>>
>>> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
>>
>> Yes I agree that the readability is a matter of personal taste. Do you
>> want me to send a v2 with a better wording on the commit message?
>
> No, I think it's good as it is. Nice usage of Coccinelle btw. I really
> should spend some time learning how to use it.
Thanks, now that I understand the basics I will try to write the
semantic patch for the struct gpio_chip refactoring. I expect that to
be a little trickier :-)
Best regards,
Javier
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] use BIT() macro instead manually shifting bits
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
` (4 preceding siblings ...)
2014-04-27 10:16 ` [PATCH 0/4] " Alexandre Courbot
@ 2014-05-03 19:15 ` Linus Walleij
2014-05-05 11:02 ` Javier Martinez Canillas
5 siblings, 1 reply; 11+ messages in thread
From: Linus Walleij @ 2014-05-03 19:15 UTC (permalink / raw)
To: Javier Martinez Canillas
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio@vger.kernel.org,
inux-omap
On Sat, Apr 26, 2014 at 5:00 PM, Javier Martinez Canillas
<javier@dowhile0.org> wrote:
> Hello Linus and Alexandre,
>
> While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
> split refactoring I wrote this trivial semantic patch that replaces a
> manual bit shift by using the BIT macro from <linux/bitops.h>
Nice semantic patch!
And all patches applied with Alex's ACK.
However I will edit the commit messages to remove the word
"manual". This just breaks my heart everytime I see that word
used in code, manual means a person is typing the keys or something
I bet it's still a computer doing the heavy lifting here.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] use BIT() macro instead manually shifting bits
2014-05-03 19:15 ` Linus Walleij
@ 2014-05-05 11:02 ` Javier Martinez Canillas
0 siblings, 0 replies; 11+ messages in thread
From: Javier Martinez Canillas @ 2014-05-05 11:02 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexandre Courbot, Santosh Shilimkar, linux-gpio@vger.kernel.org,
inux-omap
Hello Linus,
On Sat, May 3, 2014 at 9:15 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> On Sat, Apr 26, 2014 at 5:00 PM, Javier Martinez Canillas
> <javier@dowhile0.org> wrote:
>
>> Hello Linus and Alexandre,
>>
>> While learning coccinelle towards doing the big gpio_chip/gpio_chip_ops
>> split refactoring I wrote this trivial semantic patch that replaces a
>> manual bit shift by using the BIT macro from <linux/bitops.h>
>
> Nice semantic patch!
>
Thanks
> And all patches applied with Alex's ACK.
>
> However I will edit the commit messages to remove the word
> "manual". This just breaks my heart everytime I see that word
> used in code, manual means a person is typing the keys or something
> I bet it's still a computer doing the heavy lifting here.
>
Yes, I agree that the wording was not the best. Thanks a lot for
fixing the commit messages.
> Yours,
> Linus Walleij
Best regards,
Javier
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2014-05-05 11:02 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-27 0:00 [PATCH 0/4] use BIT() macro instead manually shifting bits Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 1/4] gpio: em: " Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 2/4] gpio: kempld: " Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 3/4] gpio: omap: " Javier Martinez Canillas
2014-04-27 0:00 ` [PATCH 4/4] gpio: pl061: " Javier Martinez Canillas
2014-04-27 10:16 ` [PATCH 0/4] " Alexandre Courbot
2014-04-27 10:46 ` Javier Martinez Canillas
2014-04-27 11:16 ` Alexandre Courbot
2014-04-27 11:48 ` Javier Martinez Canillas
2014-05-03 19:15 ` Linus Walleij
2014-05-05 11:02 ` Javier Martinez Canillas
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).