* [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data()
@ 2019-08-01 17:39 Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 2/4] gpio: pca953x: Use GENMASK() consistently Andy Shevchenko
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Andy Shevchenko @ 2019-08-01 17:39 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, linux-gpio, Marek Vasut
Cc: Andy Shevchenko
Instead of open coded variants, switch to direct use of
device_get_match_data().
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/gpio/gpio-pca953x.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index 378b206d2dc9..54cf01901320 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -949,19 +949,15 @@ static int pca953x_probe(struct i2c_client *client,
if (i2c_id) {
chip->driver_data = i2c_id->driver_data;
} else {
- const struct acpi_device_id *acpi_id;
- struct device *dev = &client->dev;
-
- chip->driver_data = (uintptr_t)of_device_get_match_data(dev);
- if (!chip->driver_data) {
- acpi_id = acpi_match_device(pca953x_acpi_ids, dev);
- if (!acpi_id) {
- ret = -ENODEV;
- goto err_exit;
- }
-
- chip->driver_data = acpi_id->driver_data;
+ const void *match;
+
+ match = device_get_match_data(&client->dev);
+ if (!match) {
+ ret = -ENODEV;
+ goto err_exit;
}
+
+ chip->driver_data = (uintptr_t)match;
}
i2c_set_clientdata(client, chip);
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 2/4] gpio: pca953x: Use GENMASK() consistently
2019-08-01 17:39 [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Andy Shevchenko
@ 2019-08-01 17:39 ` Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 3/4] gpio: pca953x: Remove explicit comparison with 0 Andy Shevchenko
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2019-08-01 17:39 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, linux-gpio, Marek Vasut
Cc: Andy Shevchenko
Use GENMASK() macro for all definitions where it's appropriate.
No functional change intended.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/gpio/gpio-pca953x.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index 54cf01901320..aaba0b394d2f 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -9,6 +9,7 @@
*/
#include <linux/acpi.h>
+#include <linux/bits.h>
#include <linux/gpio/driver.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
@@ -28,9 +29,9 @@
#define PCA953X_INVERT 0x02
#define PCA953X_DIRECTION 0x03
-#define REG_ADDR_MASK 0x3f
-#define REG_ADDR_EXT 0x40
-#define REG_ADDR_AI 0x80
+#define REG_ADDR_MASK GENMASK(5, 0)
+#define REG_ADDR_EXT BIT(6)
+#define REG_ADDR_AI BIT(7)
#define PCA957X_IN 0x00
#define PCA957X_INVRT 0x01
@@ -55,17 +56,17 @@
#define PCAL6524_OUT_INDCONF 0x2c
#define PCAL6524_DEBOUNCE 0x2d
-#define PCA_GPIO_MASK 0x00FF
+#define PCA_GPIO_MASK GENMASK(7, 0)
-#define PCAL_GPIO_MASK 0x1f
-#define PCAL_PINCTRL_MASK 0x60
+#define PCAL_GPIO_MASK GENMASK(4, 0)
+#define PCAL_PINCTRL_MASK GENMASK(6, 5)
-#define PCA_INT 0x0100
-#define PCA_PCAL 0x0200
+#define PCA_INT BIT(8)
+#define PCA_PCAL BIT(9)
#define PCA_LATCH_INT (PCA_PCAL | PCA_INT)
-#define PCA953X_TYPE 0x1000
-#define PCA957X_TYPE 0x2000
-#define PCA_TYPE_MASK 0xF000
+#define PCA953X_TYPE BIT(12)
+#define PCA957X_TYPE BIT(13)
+#define PCA_TYPE_MASK GENMASK(15, 12)
#define PCA_CHIP_TYPE(x) ((x) & PCA_TYPE_MASK)
@@ -565,7 +566,7 @@ static void pca953x_irq_mask(struct irq_data *d)
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct pca953x_chip *chip = gpiochip_get_data(gc);
- chip->irq_mask[d->hwirq / BANK_SZ] &= ~(1 << (d->hwirq % BANK_SZ));
+ chip->irq_mask[d->hwirq / BANK_SZ] &= ~BIT(d->hwirq % BANK_SZ);
}
static void pca953x_irq_unmask(struct irq_data *d)
@@ -573,7 +574,7 @@ static void pca953x_irq_unmask(struct irq_data *d)
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct pca953x_chip *chip = gpiochip_get_data(gc);
- chip->irq_mask[d->hwirq / BANK_SZ] |= 1 << (d->hwirq % BANK_SZ);
+ chip->irq_mask[d->hwirq / BANK_SZ] |= BIT(d->hwirq % BANK_SZ);
}
static int pca953x_irq_set_wake(struct irq_data *d, unsigned int on)
@@ -641,7 +642,7 @@ static int pca953x_irq_set_type(struct irq_data *d, unsigned int type)
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct pca953x_chip *chip = gpiochip_get_data(gc);
int bank_nb = d->hwirq / BANK_SZ;
- u8 mask = 1 << (d->hwirq % BANK_SZ);
+ u8 mask = BIT(d->hwirq % BANK_SZ);
if (!(type & IRQ_TYPE_EDGE_BOTH)) {
dev_err(&chip->client->dev, "irq %d: unsupported type %d\n",
@@ -666,7 +667,7 @@ static void pca953x_irq_shutdown(struct irq_data *d)
{
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct pca953x_chip *chip = gpiochip_get_data(gc);
- u8 mask = 1 << (d->hwirq % BANK_SZ);
+ u8 mask = BIT(d->hwirq % BANK_SZ);
chip->irq_trig_raise[d->hwirq / BANK_SZ] &= ~mask;
chip->irq_trig_fall[d->hwirq / BANK_SZ] &= ~mask;
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 3/4] gpio: pca953x: Remove explicit comparison with 0
2019-08-01 17:39 [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 2/4] gpio: pca953x: Use GENMASK() consistently Andy Shevchenko
@ 2019-08-01 17:39 ` Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 4/4] gpio: pca953x: Drop %s for constant string literals Andy Shevchenko
2019-08-02 7:51 ` [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Bartosz Golaszewski
3 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2019-08-01 17:39 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, linux-gpio, Marek Vasut
Cc: Andy Shevchenko
There is no need to explicitly compare return code with 0.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/gpio/gpio-pca953x.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index aaba0b394d2f..454bbe2fb41f 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -850,12 +850,12 @@ static int device_pca95xx_init(struct pca953x_chip *chip, u32 invert)
ret = regcache_sync_region(chip->regmap, chip->regs->output,
chip->regs->output + NBANK(chip));
- if (ret != 0)
+ if (ret)
goto out;
ret = regcache_sync_region(chip->regmap, chip->regs->direction,
chip->regs->direction + NBANK(chip));
- if (ret != 0)
+ if (ret)
goto out;
/* set platform specific polarity inversion */
@@ -1061,14 +1061,14 @@ static int pca953x_regcache_sync(struct device *dev)
*/
ret = regcache_sync_region(chip->regmap, chip->regs->direction,
chip->regs->direction + NBANK(chip));
- if (ret != 0) {
+ if (ret) {
dev_err(dev, "Failed to sync GPIO dir registers: %d\n", ret);
return ret;
}
ret = regcache_sync_region(chip->regmap, chip->regs->output,
chip->regs->output + NBANK(chip));
- if (ret != 0) {
+ if (ret) {
dev_err(dev, "Failed to sync GPIO out registers: %d\n", ret);
return ret;
}
@@ -1077,7 +1077,7 @@ static int pca953x_regcache_sync(struct device *dev)
if (chip->driver_data & PCA_PCAL) {
ret = regcache_sync_region(chip->regmap, PCAL953X_IN_LATCH,
PCAL953X_IN_LATCH + NBANK(chip));
- if (ret != 0) {
+ if (ret) {
dev_err(dev, "Failed to sync INT latch registers: %d\n",
ret);
return ret;
@@ -1085,7 +1085,7 @@ static int pca953x_regcache_sync(struct device *dev)
ret = regcache_sync_region(chip->regmap, PCAL953X_INT_MASK,
PCAL953X_INT_MASK + NBANK(chip));
- if (ret != 0) {
+ if (ret) {
dev_err(dev, "Failed to sync INT mask registers: %d\n",
ret);
return ret;
@@ -1117,7 +1117,7 @@ static int pca953x_resume(struct device *dev)
if (!atomic_read(&chip->wakeup_path)) {
ret = regulator_enable(chip->regulator);
- if (ret != 0) {
+ if (ret) {
dev_err(dev, "Failed to enable regulator: %d\n", ret);
return 0;
}
@@ -1130,7 +1130,7 @@ static int pca953x_resume(struct device *dev)
return ret;
ret = regcache_sync(chip->regmap);
- if (ret != 0) {
+ if (ret) {
dev_err(dev, "Failed to restore register map: %d\n", ret);
return ret;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 4/4] gpio: pca953x: Drop %s for constant string literals
2019-08-01 17:39 [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 2/4] gpio: pca953x: Use GENMASK() consistently Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 3/4] gpio: pca953x: Remove explicit comparison with 0 Andy Shevchenko
@ 2019-08-01 17:39 ` Andy Shevchenko
2019-08-02 7:51 ` [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Bartosz Golaszewski
3 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2019-08-01 17:39 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, linux-gpio, Marek Vasut
Cc: Andy Shevchenko
There is no need to use %s for constant string literals
w/o special characters inside.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/gpio/gpio-pca953x.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index 454bbe2fb41f..64d02ca60f53 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -1038,8 +1038,7 @@ static int pca953x_remove(struct i2c_client *client)
ret = pdata->teardown(client, chip->gpio_chip.base,
chip->gpio_chip.ngpio, pdata->context);
if (ret < 0)
- dev_err(&client->dev, "%s failed, %d\n",
- "teardown", ret);
+ dev_err(&client->dev, "teardown failed, %d\n", ret);
} else {
ret = 0;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data()
2019-08-01 17:39 [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Andy Shevchenko
` (2 preceding siblings ...)
2019-08-01 17:39 ` [PATCH v1 4/4] gpio: pca953x: Drop %s for constant string literals Andy Shevchenko
@ 2019-08-02 7:51 ` Bartosz Golaszewski
3 siblings, 0 replies; 5+ messages in thread
From: Bartosz Golaszewski @ 2019-08-02 7:51 UTC (permalink / raw)
To: Andy Shevchenko; +Cc: Linus Walleij, linux-gpio, Marek Vasut
czw., 1 sie 2019 o 19:39 Andy Shevchenko
<andriy.shevchenko@linux.intel.com> napisał(a):
>
> Instead of open coded variants, switch to direct use of
> device_get_match_data().
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/gpio/gpio-pca953x.c | 20 ++++++++------------
> 1 file changed, 8 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
> index 378b206d2dc9..54cf01901320 100644
> --- a/drivers/gpio/gpio-pca953x.c
> +++ b/drivers/gpio/gpio-pca953x.c
> @@ -949,19 +949,15 @@ static int pca953x_probe(struct i2c_client *client,
> if (i2c_id) {
> chip->driver_data = i2c_id->driver_data;
> } else {
> - const struct acpi_device_id *acpi_id;
> - struct device *dev = &client->dev;
> -
> - chip->driver_data = (uintptr_t)of_device_get_match_data(dev);
> - if (!chip->driver_data) {
> - acpi_id = acpi_match_device(pca953x_acpi_ids, dev);
> - if (!acpi_id) {
> - ret = -ENODEV;
> - goto err_exit;
> - }
> -
> - chip->driver_data = acpi_id->driver_data;
> + const void *match;
> +
> + match = device_get_match_data(&client->dev);
> + if (!match) {
> + ret = -ENODEV;
> + goto err_exit;
> }
> +
> + chip->driver_data = (uintptr_t)match;
> }
>
> i2c_set_clientdata(client, chip);
> --
> 2.20.1
>
Excellent work, all four applied.
Bart
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-08-02 7:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-01 17:39 [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 2/4] gpio: pca953x: Use GENMASK() consistently Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 3/4] gpio: pca953x: Remove explicit comparison with 0 Andy Shevchenko
2019-08-01 17:39 ` [PATCH v1 4/4] gpio: pca953x: Drop %s for constant string literals Andy Shevchenko
2019-08-02 7:51 ` [PATCH v1 1/4] gpio: pca953x: Switch to use device_get_match_data() Bartosz Golaszewski
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).