* [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
* [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
* [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 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
* 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 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 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
* 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
* 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
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).