linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).