* [PATCH v2 0/5] gpiolib: clean up and potential bug fix @ 2013-12-04 13:42 Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 1/5] gpiolib: unify pr_* messages format Andy Shevchenko ` (5 more replies) 0 siblings, 6 replies; 13+ messages in thread From: Andy Shevchenko @ 2013-12-04 13:42 UTC (permalink / raw) To: Alexandre Courbot, linux-gpio, Linus Walleij, Mika Westerberg Cc: Andy Shevchenko The patch series mostly addressing messaging format and fix for one potential bug. It depends on recent Alex's patch [1] and Mika's patchset [2]. Compile tested and tested on Medfield with SFI. Changes since v1: - applied Acked and Reviewed tags - instead of patch 4/4 create patch 4/5 and 5/5 that don't change functionality, and indentation things moved to patch 1/5 [1] http://www.spinics.net/lists/kernel/msg1645907.html [2] http://www.spinics.net/lists/linux-acpi/msg47572.html Andy Shevchenko (5): gpiolib: unify pr_* messages format gpiolib: introduce chip_* to print with chip->label prefix gpiolib: convert gpiod_lookup description to kernel-doc gpiolib: update commentary at gpiod_get_index() gpiolib: uniform messages in gpiod_find() drivers/gpio/gpiolib.c | 121 ++++++++++++++++++++++++-------------------- include/linux/gpio/driver.h | 26 ++++------ 2 files changed, 75 insertions(+), 72 deletions(-) -- 1.8.4.4 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 1/5] gpiolib: unify pr_* messages format 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko @ 2013-12-04 13:42 ` Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix Andy Shevchenko ` (4 subsequent siblings) 5 siblings, 0 replies; 13+ messages in thread From: Andy Shevchenko @ 2013-12-04 13:42 UTC (permalink / raw) To: Alexandre Courbot, linux-gpio, Linus Walleij, Mika Westerberg Cc: Andy Shevchenko This patch includes the following amendments: 1) use "?" as a label when the last one is not defined in gpiod_*; 2) whenever it's possible gpiod_* are used; 3) print a function name, if it's already used in other messages. Additionally it fixes an indentation in few places. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Alexandre Courbot <acourbot@nvidia.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> --- drivers/gpio/gpiolib.c | 74 +++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index f7af309..7cf3f84 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -86,36 +86,36 @@ static int gpiod_request(struct gpio_desc *desc, const char *label); static void gpiod_free(struct gpio_desc *desc); #ifdef CONFIG_DEBUG_FS -#define gpiod_emerg(desc, fmt, ...) \ - pr_emerg("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label, \ +#define gpiod_emerg(desc, fmt, ...) \ + pr_emerg("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?",\ ##__VA_ARGS__) -#define gpiod_crit(desc, fmt, ...) \ - pr_crit("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label, \ +#define gpiod_crit(desc, fmt, ...) \ + pr_crit("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?", \ ##__VA_ARGS__) -#define gpiod_err(desc, fmt, ...) \ - pr_err("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label, \ +#define gpiod_err(desc, fmt, ...) \ + pr_err("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?", \ ##__VA_ARGS__) -#define gpiod_warn(desc, fmt, ...) \ - pr_warn("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label, \ +#define gpiod_warn(desc, fmt, ...) \ + pr_warn("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?", \ ##__VA_ARGS__) -#define gpiod_info(desc, fmt, ...) \ - pr_info("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label, \ +#define gpiod_info(desc, fmt, ...) \ + pr_info("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?", \ ##__VA_ARGS__) -#define gpiod_dbg(desc, fmt, ...) \ - pr_debug("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label, \ +#define gpiod_dbg(desc, fmt, ...) \ + pr_debug("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?",\ ##__VA_ARGS__) #else -#define gpiod_emerg(desc, fmt, ...) \ +#define gpiod_emerg(desc, fmt, ...) \ pr_emerg("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) -#define gpiod_crit(desc, fmt, ...) \ +#define gpiod_crit(desc, fmt, ...) \ pr_crit("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) -#define gpiod_err(desc, fmt, ...) \ +#define gpiod_err(desc, fmt, ...) \ pr_err("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) -#define gpiod_warn(desc, fmt, ...) \ +#define gpiod_warn(desc, fmt, ...) \ pr_warn("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) -#define gpiod_info(desc, fmt, ...) \ +#define gpiod_info(desc, fmt, ...) \ pr_info("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) -#define gpiod_dbg(desc, fmt, ...) \ +#define gpiod_dbg(desc, fmt, ...) \ pr_debug("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) #endif @@ -188,7 +188,8 @@ static int gpio_ensure_requested(struct gpio_desc *desc) if (WARN(test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0, "autorequest GPIO-%d\n", gpio)) { if (!try_module_get(chip->owner)) { - pr_err("GPIO-%d: module can't be gotten \n", gpio); + gpiod_err(desc, "%s: module can't be gotten\n", + __func__); clear_bit(FLAG_REQUESTED, &desc->flags); /* lose */ return -EIO; @@ -809,8 +810,8 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change) if (!test_bit(FLAG_REQUESTED, &desc->flags) || test_bit(FLAG_EXPORT, &desc->flags)) { spin_unlock_irqrestore(&gpio_lock, flags); - pr_debug("%s: gpio %d unavailable (requested=%d, exported=%d)\n", - __func__, desc_to_gpio(desc), + gpiod_dbg(desc, "%s: unavailable (requested=%d, exported=%d)\n", + __func__, test_bit(FLAG_REQUESTED, &desc->flags), test_bit(FLAG_EXPORT, &desc->flags)); status = -EPERM; @@ -858,8 +859,7 @@ fail_unregister_device: device_unregister(dev); fail_unlock: mutex_unlock(&sysfs_lock); - pr_debug("%s: gpio%d status %d\n", __func__, desc_to_gpio(desc), - status); + gpiod_dbg(desc, "%s: status %d\n", __func__, status); return status; } EXPORT_SYMBOL_GPL(gpiod_export); @@ -907,8 +907,7 @@ int gpiod_export_link(struct device *dev, const char *name, mutex_unlock(&sysfs_lock); if (status) - pr_debug("%s: gpio%d status %d\n", __func__, desc_to_gpio(desc), - status); + gpiod_dbg(desc, "%s: status %d\n", __func__, status); return status; } @@ -952,8 +951,7 @@ unlock: mutex_unlock(&sysfs_lock); if (status) - pr_debug("%s: gpio%d status %d\n", __func__, desc_to_gpio(desc), - status); + gpiod_dbg(desc, "%s: status %d\n", __func__, status); return status; } @@ -995,8 +993,7 @@ void gpiod_unexport(struct gpio_desc *desc) } if (status) - pr_debug("%s: gpio%d status %d\n", __func__, desc_to_gpio(desc), - status); + gpiod_dbg(desc, "%s: status %d\n", __func__, status); } EXPORT_SYMBOL_GPL(gpiod_unexport); @@ -1223,7 +1220,7 @@ int gpiochip_add(struct gpio_chip *chip) if (status) goto fail; - pr_debug("gpiochip_add: registered GPIOs %d to %d on device: %s\n", + pr_debug("%s: registered GPIOs %d to %d on device: %s\n", __func__, chip->base, chip->base + chip->ngpio - 1, chip->label ? : "generic"); @@ -1233,7 +1230,7 @@ unlock: spin_unlock_irqrestore(&gpio_lock, flags); fail: /* failures here can mean systems won't boot... */ - pr_err("gpiochip_add: gpios %d..%d (%s) failed to register\n", + pr_err("%s: GPIOs %d..%d (%s) failed to register\n", __func__, chip->base, chip->base + chip->ngpio - 1, chip->label ? : "generic"); return status; @@ -1502,8 +1499,7 @@ static int gpiod_request(struct gpio_desc *desc, const char *label) } done: if (status) - pr_debug("_gpio_request: gpio-%d (%s) status %d\n", - desc_to_gpio(desc), label ? : "?", status); + gpiod_dbg(desc, "%s: status %d\n", __func__, status); spin_unlock_irqrestore(&gpio_lock, flags); return status; } @@ -1704,7 +1700,7 @@ int gpiod_direction_input(struct gpio_desc *desc) if (!chip->get || !chip->direction_input) { gpiod_warn(desc, "%s: missing get() or direction_input() operations\n", - __func__); + __func__); return -EIO; } @@ -1724,7 +1720,8 @@ int gpiod_direction_input(struct gpio_desc *desc) if (status) { status = chip->request(chip, offset); if (status < 0) { - gpiod_dbg(desc, "chip request fail, %d\n", status); + gpiod_dbg(desc, "%s: chip request fail, %d\n", + __func__, status); /* and it's not available to anyone else ... * gpio_request() is the fully clean solution. */ @@ -1742,7 +1739,7 @@ lose: fail: spin_unlock_irqrestore(&gpio_lock, flags); if (status) - gpiod_dbg(desc, "%s status %d\n", __func__, status); + gpiod_dbg(desc, "%s: status %d\n", __func__, status); return status; } EXPORT_SYMBOL_GPL(gpiod_direction_input); @@ -1809,7 +1806,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) if (status) { status = chip->request(chip, offset); if (status < 0) { - gpiod_dbg(desc, "chip request fail, %d\n", status); + gpiod_dbg(desc, "%s: chip request fail, %d\n", + __func__, status); /* and it's not available to anyone else ... * gpio_request() is the fully clean solution. */ @@ -2450,8 +2448,10 @@ struct gpio_desc *__must_check gpiod_get_index(struct device *dev, */ if (!desc || IS_ERR(desc)) { struct gpio_desc *pdesc; + dev_dbg(dev, "using lookup tables for GPIO lookup"); pdesc = gpiod_find(dev, con_id, idx, &flags); + /* If used as fallback, do not replace the previous error */ if (!IS_ERR(pdesc) || !desc) desc = pdesc; -- 1.8.4.4 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 1/5] gpiolib: unify pr_* messages format Andy Shevchenko @ 2013-12-04 13:42 ` Andy Shevchenko 2013-12-05 2:22 ` Alex Courbot 2013-12-04 13:42 ` [PATCH v2 3/5] gpiolib: convert gpiod_lookup description to kernel-doc Andy Shevchenko ` (3 subsequent siblings) 5 siblings, 1 reply; 13+ messages in thread From: Andy Shevchenko @ 2013-12-04 13:42 UTC (permalink / raw) To: Alexandre Courbot, linux-gpio, Linus Walleij, Mika Westerberg Cc: Andy Shevchenko In several places we are printing messages with prefix based on chip->label. Introduced macros help us to do this easier and in uniform way. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> --- drivers/gpio/gpiolib.c | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 7cf3f84..70e560c 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -85,6 +85,8 @@ static DEFINE_IDR(dirent_idr); static int gpiod_request(struct gpio_desc *desc, const char *label); static void gpiod_free(struct gpio_desc *desc); +/* With descriptor prefix */ + #ifdef CONFIG_DEBUG_FS #define gpiod_emerg(desc, fmt, ...) \ pr_emerg("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?",\ @@ -119,6 +121,21 @@ static void gpiod_free(struct gpio_desc *desc); pr_debug("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) #endif +/* With chip prefix */ + +#define chip_emerg(chip, fmt, ...) \ + pr_emerg("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) +#define chip_crit(chip, fmt, ...) \ + pr_crit("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) +#define chip_err(chip, fmt, ...) \ + pr_err("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) +#define chip_warn(chip, fmt, ...) \ + pr_warn("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) +#define chip_info(chip, fmt, ...) \ + pr_info("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) +#define chip_dbg(chip, fmt, ...) \ + pr_debug("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) + static inline void desc_set_label(struct gpio_desc *d, const char *label) { #ifdef CONFIG_DEBUG_FS @@ -1032,8 +1049,7 @@ static int gpiochip_export(struct gpio_chip *chip) chip->desc[gpio++].chip = NULL; spin_unlock_irqrestore(&gpio_lock, flags); - pr_debug("%s: chip %s status %d\n", __func__, - chip->label, status); + chip_dbg(chip, "%s: status %d\n", __func__, status); } return status; @@ -1056,8 +1072,7 @@ static void gpiochip_unexport(struct gpio_chip *chip) mutex_unlock(&sysfs_lock); if (status) - pr_debug("%s: chip %s status %d\n", __func__, - chip->label, status); + chip_dbg(chip, "%s: status %d\n", __func__, status); } static int __init gpiolib_sysfs_init(void) @@ -1339,8 +1354,7 @@ int gpiochip_add_pingroup_range(struct gpio_chip *chip, pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL); if (!pin_range) { - pr_err("%s: GPIO chip: failed to allocate pin ranges\n", - chip->label); + chip_err(chip, "failed to allocate pin ranges\n"); return -ENOMEM; } @@ -1361,9 +1375,8 @@ int gpiochip_add_pingroup_range(struct gpio_chip *chip, pinctrl_add_gpio_range(pctldev, &pin_range->range); - pr_debug("GPIO chip %s: created GPIO range %d->%d ==> %s PINGRP %s\n", - chip->label, gpio_offset, - gpio_offset + pin_range->range.npins - 1, + chip_dbg(chip, "created GPIO range %d->%d ==> %s PINGRP %s\n", + gpio_offset, gpio_offset + pin_range->range.npins - 1, pinctrl_dev_get_devname(pctldev), pin_group); list_add_tail(&pin_range->node, &chip->pin_ranges); @@ -1390,8 +1403,7 @@ int gpiochip_add_pin_range(struct gpio_chip *chip, const char *pinctl_name, pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL); if (!pin_range) { - pr_err("%s: GPIO chip: failed to allocate pin ranges\n", - chip->label); + chip_err(chip, "failed to allocate pin ranges\n"); return -ENOMEM; } @@ -1406,13 +1418,12 @@ int gpiochip_add_pin_range(struct gpio_chip *chip, const char *pinctl_name, &pin_range->range); if (IS_ERR(pin_range->pctldev)) { ret = PTR_ERR(pin_range->pctldev); - pr_err("%s: GPIO chip: could not create pin range\n", - chip->label); + chip_err(chip, "could not create pin range\n"); kfree(pin_range); return ret; } - pr_debug("GPIO chip %s: created GPIO range %d->%d ==> %s PIN %d->%d\n", - chip->label, gpio_offset, gpio_offset + npins - 1, + chip_dbg(chip, "created GPIO range %d->%d ==> %s PIN %d->%d\n", + gpio_offset, gpio_offset + npins - 1, pinctl_name, pin_offset, pin_offset + npins - 1); -- 1.8.4.4 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix 2013-12-04 13:42 ` [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix Andy Shevchenko @ 2013-12-05 2:22 ` Alex Courbot 2013-12-05 9:09 ` Andy Shevchenko 0 siblings, 1 reply; 13+ messages in thread From: Alex Courbot @ 2013-12-05 2:22 UTC (permalink / raw) To: Andy Shevchenko, linux-gpio@vger.kernel.org, Linus Walleij, Mika Westerberg On 12/04/2013 10:42 PM, Andy Shevchenko wrote: > In several places we are printing messages with prefix based on chip->label. > Introduced macros help us to do this easier and in uniform way. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> > --- > drivers/gpio/gpiolib.c | 41 ++++++++++++++++++++++++++--------------- > 1 file changed, 26 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 7cf3f84..70e560c 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -85,6 +85,8 @@ static DEFINE_IDR(dirent_idr); > static int gpiod_request(struct gpio_desc *desc, const char *label); > static void gpiod_free(struct gpio_desc *desc); > > +/* With descriptor prefix */ > + > #ifdef CONFIG_DEBUG_FS > #define gpiod_emerg(desc, fmt, ...) \ > pr_emerg("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?",\ > @@ -119,6 +121,21 @@ static void gpiod_free(struct gpio_desc *desc); > pr_debug("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) > #endif > > +/* With chip prefix */ > + > +#define chip_emerg(chip, fmt, ...) \ > + pr_emerg("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > +#define chip_crit(chip, fmt, ...) \ > + pr_crit("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > +#define chip_err(chip, fmt, ...) \ > + pr_err("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > +#define chip_warn(chip, fmt, ...) \ > + pr_warn("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > +#define chip_info(chip, fmt, ...) \ > + pr_info("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > +#define chip_dbg(chip, fmt, ...) \ > + pr_debug("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) One last comment on this: how about using "GPIO chip %s: " for message prefix instead? (less ':' and less characters overall). ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix 2013-12-05 2:22 ` Alex Courbot @ 2013-12-05 9:09 ` Andy Shevchenko 0 siblings, 0 replies; 13+ messages in thread From: Andy Shevchenko @ 2013-12-05 9:09 UTC (permalink / raw) To: Alex Courbot; +Cc: linux-gpio@vger.kernel.org, Linus Walleij, Mika Westerberg On Thu, 2013-12-05 at 11:22 +0900, Alex Courbot wrote: > On 12/04/2013 10:42 PM, Andy Shevchenko wrote: > > In several places we are printing messages with prefix based on chip->label. > > Introduced macros help us to do this easier and in uniform way. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> > > --- > > drivers/gpio/gpiolib.c | 41 ++++++++++++++++++++++++++--------------- > > 1 file changed, 26 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > > index 7cf3f84..70e560c 100644 > > --- a/drivers/gpio/gpiolib.c > > +++ b/drivers/gpio/gpiolib.c > > @@ -85,6 +85,8 @@ static DEFINE_IDR(dirent_idr); > > static int gpiod_request(struct gpio_desc *desc, const char *label); > > static void gpiod_free(struct gpio_desc *desc); > > > > +/* With descriptor prefix */ > > + > > #ifdef CONFIG_DEBUG_FS > > #define gpiod_emerg(desc, fmt, ...) \ > > pr_emerg("gpio-%d (%s): " fmt, desc_to_gpio(desc), desc->label ? : "?",\ > > @@ -119,6 +121,21 @@ static void gpiod_free(struct gpio_desc *desc); > > pr_debug("gpio-%d: " fmt, desc_to_gpio(desc), ##__VA_ARGS__) > > #endif > > > > +/* With chip prefix */ > > + > > +#define chip_emerg(chip, fmt, ...) \ > > + pr_emerg("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > > +#define chip_crit(chip, fmt, ...) \ > > + pr_crit("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > > +#define chip_err(chip, fmt, ...) \ > > + pr_err("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > > +#define chip_warn(chip, fmt, ...) \ > > + pr_warn("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > > +#define chip_info(chip, fmt, ...) \ > > + pr_info("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > > +#define chip_dbg(chip, fmt, ...) \ > > + pr_debug("%s: GPIO chip: " fmt, chip->label, ##__VA_ARGS__) > > One last comment on this: how about using "GPIO chip %s: " for message > prefix instead? (less ':' and less characters overall). Agree. Will change this one. -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 3/5] gpiolib: convert gpiod_lookup description to kernel-doc 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 1/5] gpiolib: unify pr_* messages format Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix Andy Shevchenko @ 2013-12-04 13:42 ` Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() Andy Shevchenko ` (2 subsequent siblings) 5 siblings, 0 replies; 13+ messages in thread From: Andy Shevchenko @ 2013-12-04 13:42 UTC (permalink / raw) To: Alexandre Courbot, linux-gpio, Linus Walleij, Mika Westerberg Cc: Andy Shevchenko The patch moves description of the fields to the top of struct definition and converts them to the kernel-doc format. There is no functional change. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Alexandre Courbot <acourbot@nvidia.com> --- include/linux/gpio/driver.h | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index 7193f43..64f2c38 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -136,29 +136,21 @@ enum gpio_lookup_flags { }; /** - * Lookup table for associating GPIOs to specific devices and functions using - * platform data. + * struct gpiod_lookup - lookup table + * @chip_label: name of the chip the GPIO belongs to + * @chip_hwnum: hardware number (i.e. relative to the chip) of the GPIO + * @con_id: name of the GPIO from the device's point of view + * @idx: index of the GPIO in case several GPIOs share the same name + * @flags: mask of GPIO_* values + * + * gpiod_lookup is a lookup table for associating GPIOs to specific devices and + * functions using platform data. */ struct gpiod_lookup { - /* - * name of the chip the GPIO belongs to - */ const char *chip_label; - /* - * hardware number (i.e. relative to the chip) of the GPIO - */ u16 chip_hwnum; - /* - * name of the GPIO from the device's point of view - */ const char *con_id; - /* - * index of the GPIO in case several GPIOs share the same name - */ unsigned int idx; - /* - * mask of GPIO_* values - */ enum gpio_lookup_flags flags; }; -- 1.8.4.4 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko ` (2 preceding siblings ...) 2013-12-04 13:42 ` [PATCH v2 3/5] gpiolib: convert gpiod_lookup description to kernel-doc Andy Shevchenko @ 2013-12-04 13:42 ` Andy Shevchenko 2013-12-05 2:10 ` Alex Courbot 2013-12-04 13:43 ` [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() Andy Shevchenko 2013-12-04 15:18 ` [PATCH v2 0/5] gpiolib: clean up and potential bug fix Mika Westerberg 5 siblings, 1 reply; 13+ messages in thread From: Andy Shevchenko @ 2013-12-04 13:42 UTC (permalink / raw) To: Alexandre Courbot, linux-gpio, Linus Walleij, Mika Westerberg Cc: Andy Shevchenko THe patch just accents that @dev could be NULL. There is no functional change. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/gpio/gpiolib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 70e560c..013e5a5 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -2425,7 +2425,7 @@ EXPORT_SYMBOL_GPL(gpiod_get); /** * gpiod_get_index - obtain a GPIO from a multi-index GPIO function - * @dev: GPIO consumer + * @dev: GPIO consumer, can be NULL for system-global GPIOs * @con_id: function within the GPIO consumer * @idx: index of the GPIO to obtain in the consumer * -- 1.8.4.4 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() 2013-12-04 13:42 ` [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() Andy Shevchenko @ 2013-12-05 2:10 ` Alex Courbot 2013-12-05 9:11 ` Andy Shevchenko 0 siblings, 1 reply; 13+ messages in thread From: Alex Courbot @ 2013-12-05 2:10 UTC (permalink / raw) To: Andy Shevchenko, linux-gpio@vger.kernel.org, Linus Walleij, Mika Westerberg On 12/04/2013 10:42 PM, Andy Shevchenko wrote: > THe patch just accents that @dev could be NULL. s/THe/This Maybe "commentary by" can also be replaced by "description for" or "inline documentation of"? > > There is no functional change. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/gpio/gpiolib.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 70e560c..013e5a5 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -2425,7 +2425,7 @@ EXPORT_SYMBOL_GPL(gpiod_get); > > /** > * gpiod_get_index - obtain a GPIO from a multi-index GPIO function > - * @dev: GPIO consumer > + * @dev: GPIO consumer, can be NULL for system-global GPIOs Looks ok, but could you also perform the same change for gpiod_get() that is just a little bit above since it applies to it as well? ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() 2013-12-05 2:10 ` Alex Courbot @ 2013-12-05 9:11 ` Andy Shevchenko 0 siblings, 0 replies; 13+ messages in thread From: Andy Shevchenko @ 2013-12-05 9:11 UTC (permalink / raw) To: Alex Courbot; +Cc: linux-gpio@vger.kernel.org, Linus Walleij, Mika Westerberg On Thu, 2013-12-05 at 11:10 +0900, Alex Courbot wrote: > On 12/04/2013 10:42 PM, Andy Shevchenko wrote: > > THe patch just accents that @dev could be NULL. > > s/THe/This Will fix. > > Maybe "commentary by" can also be replaced by "description for" or > "inline documentation of"? Okay. > > > > > There is no functional change. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > drivers/gpio/gpiolib.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > > index 70e560c..013e5a5 100644 > > --- a/drivers/gpio/gpiolib.c > > +++ b/drivers/gpio/gpiolib.c > > @@ -2425,7 +2425,7 @@ EXPORT_SYMBOL_GPL(gpiod_get); > > > > /** > > * gpiod_get_index - obtain a GPIO from a multi-index GPIO function > > - * @dev: GPIO consumer > > + * @dev: GPIO consumer, can be NULL for system-global GPIOs > > Looks ok, but could you also perform the same change for gpiod_get() > that is just a little bit above since it applies to it as well? Hmm... I copied that line from description of gpiod_get(). -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko ` (3 preceding siblings ...) 2013-12-04 13:42 ` [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() Andy Shevchenko @ 2013-12-04 13:43 ` Andy Shevchenko 2013-12-05 2:19 ` Alex Courbot 2013-12-04 15:18 ` [PATCH v2 0/5] gpiolib: clean up and potential bug fix Mika Westerberg 5 siblings, 1 reply; 13+ messages in thread From: Andy Shevchenko @ 2013-12-04 13:43 UTC (permalink / raw) To: Alexandre Courbot, linux-gpio, Linus Walleij, Mika Westerberg Cc: Andy Shevchenko This patch uniforms messages in gpiod_find() to follow what chip_* do. There is no functional change. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/gpio/gpiolib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 013e5a5..cbd7b34 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -2391,13 +2391,13 @@ static struct gpio_desc *gpiod_find(struct device *dev, const char *con_id, chip = find_chip_by_name(p->chip_label); if (!chip) { - dev_warn(dev, "cannot find GPIO chip %s\n", + dev_warn(dev, "%s: GPIO chip: cannot find\n", p->chip_label); continue; } if (chip->ngpio <= p->chip_hwnum) { - dev_warn(dev, "GPIO chip %s has %d GPIOs\n", + dev_warn(dev, "%s: GPIO chip: has %d GPIOs\n", chip->label, chip->ngpio); continue; } -- 1.8.4.4 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() 2013-12-04 13:43 ` [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() Andy Shevchenko @ 2013-12-05 2:19 ` Alex Courbot 2013-12-05 9:13 ` Andy Shevchenko 0 siblings, 1 reply; 13+ messages in thread From: Alex Courbot @ 2013-12-05 2:19 UTC (permalink / raw) To: Andy Shevchenko, linux-gpio@vger.kernel.org, Linus Walleij, Mika Westerberg On 12/04/2013 10:43 PM, Andy Shevchenko wrote: > This patch uniforms messages in gpiod_find() to follow what chip_* do. > > There is no functional change. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/gpio/gpiolib.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 013e5a5..cbd7b34 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -2391,13 +2391,13 @@ static struct gpio_desc *gpiod_find(struct device *dev, const char *con_id, > chip = find_chip_by_name(p->chip_label); > > if (!chip) { > - dev_warn(dev, "cannot find GPIO chip %s\n", > + dev_warn(dev, "%s: GPIO chip: cannot find\n", > p->chip_label); Changing the format of the message makes it look like the chip has already been resolved while this is not the case yet. > continue; > } > > if (chip->ngpio <= p->chip_hwnum) { > - dev_warn(dev, "GPIO chip %s has %d GPIOs\n", > + dev_warn(dev, "%s: GPIO chip: has %d GPIOs\n", > chip->label, chip->ngpio); > continue; > } The message is going to look something like: foo.0: gpiochip.0: GPIO chip: has X GPIOs ... which seems kind of confusing. All in all I'm not convinced this patch is necessary. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() 2013-12-05 2:19 ` Alex Courbot @ 2013-12-05 9:13 ` Andy Shevchenko 0 siblings, 0 replies; 13+ messages in thread From: Andy Shevchenko @ 2013-12-05 9:13 UTC (permalink / raw) To: Alex Courbot; +Cc: linux-gpio@vger.kernel.org, Linus Walleij, Mika Westerberg On Thu, 2013-12-05 at 11:19 +0900, Alex Courbot wrote: > On 12/04/2013 10:43 PM, Andy Shevchenko wrote: > > This patch uniforms messages in gpiod_find() to follow what chip_* do. > > > > There is no functional change. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > drivers/gpio/gpiolib.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > > index 013e5a5..cbd7b34 100644 > > --- a/drivers/gpio/gpiolib.c > > +++ b/drivers/gpio/gpiolib.c > > @@ -2391,13 +2391,13 @@ static struct gpio_desc *gpiod_find(struct device *dev, const char *con_id, > > chip = find_chip_by_name(p->chip_label); > > > > if (!chip) { > > - dev_warn(dev, "cannot find GPIO chip %s\n", > > + dev_warn(dev, "%s: GPIO chip: cannot find\n", > > p->chip_label); > > Changing the format of the message makes it look like the chip has > already been resolved while this is not the case yet. > > > continue; > > } > > > > if (chip->ngpio <= p->chip_hwnum) { > > - dev_warn(dev, "GPIO chip %s has %d GPIOs\n", > > + dev_warn(dev, "%s: GPIO chip: has %d GPIOs\n", > > chip->label, chip->ngpio); > > continue; > > } > > The message is going to look something like: > > foo.0: gpiochip.0: GPIO chip: has X GPIOs > > ... which seems kind of confusing. > > All in all I'm not convinced this patch is necessary. Okay, will drop it away. -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/5] gpiolib: clean up and potential bug fix 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko ` (4 preceding siblings ...) 2013-12-04 13:43 ` [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() Andy Shevchenko @ 2013-12-04 15:18 ` Mika Westerberg 5 siblings, 0 replies; 13+ messages in thread From: Mika Westerberg @ 2013-12-04 15:18 UTC (permalink / raw) To: Andy Shevchenko; +Cc: Alexandre Courbot, linux-gpio, Linus Walleij On Wed, Dec 04, 2013 at 03:42:55PM +0200, Andy Shevchenko wrote: > The patch series mostly addressing messaging format and fix for one potential > bug. It depends on recent Alex's patch [1] and Mika's patchset [2]. > > Compile tested and tested on Medfield with SFI. > > Changes since v1: > - applied Acked and Reviewed tags > - instead of patch 4/4 create patch 4/5 and 5/5 that don't change > functionality, and indentation things moved to patch 1/5 > > [1] http://www.spinics.net/lists/kernel/msg1645907.html > [2] http://www.spinics.net/lists/linux-acpi/msg47572.html > > Andy Shevchenko (5): > gpiolib: unify pr_* messages format > gpiolib: introduce chip_* to print with chip->label prefix > gpiolib: convert gpiod_lookup description to kernel-doc > gpiolib: update commentary at gpiod_get_index() > gpiolib: uniform messages in gpiod_find() For the series, Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2013-12-05 9:14 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-12-04 13:42 [PATCH v2 0/5] gpiolib: clean up and potential bug fix Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 1/5] gpiolib: unify pr_* messages format Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 2/5] gpiolib: introduce chip_* to print with chip->label prefix Andy Shevchenko 2013-12-05 2:22 ` Alex Courbot 2013-12-05 9:09 ` Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 3/5] gpiolib: convert gpiod_lookup description to kernel-doc Andy Shevchenko 2013-12-04 13:42 ` [PATCH v2 4/5] gpiolib: update commentary at gpiod_get_index() Andy Shevchenko 2013-12-05 2:10 ` Alex Courbot 2013-12-05 9:11 ` Andy Shevchenko 2013-12-04 13:43 ` [PATCH v2 5/5] gpiolib: uniform messages in gpiod_find() Andy Shevchenko 2013-12-05 2:19 ` Alex Courbot 2013-12-05 9:13 ` Andy Shevchenko 2013-12-04 15:18 ` [PATCH v2 0/5] gpiolib: clean up and potential bug fix Mika Westerberg
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).