Skip to contentSkip to conversation

leds: lm3642: Use regmap_update_bits() in lm3642_chip_init()

PATCH Applied Axel Lin 3 participants 3 messages Sep 22, 2012 – Sep 24, 2012 LED

lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/1 leds: lm3642: Use regmap_update_bits() in lm3642_chip_init()

Use regmap_update_bits() to replace regmap_read() + regmap_write(). With this patch, we only show the error message when regmap_update_bits() fails.

---
 drivers/leds/leds-lm3642.c |   15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)
drivers/leds/leds-lm3642.c +3 -12
index 924853b..3285006 100644
@@ -95,23 +95,14 @@ struct lm3642_chip_data {
 /* chip initialize */
 static int __devinit lm3642_chip_init(struct lm3642_chip_data *chip)
 {
-	unsigned int reg_val;
 	int ret;
 	struct lm3642_platform_data *pdata = chip->pdata;
 
 	/* set enable register */
-	ret = regmap_read(chip->regmap, REG_ENABLE, &reg_val);
+	ret = regmap_update_bits(chip->regmap, REG_ENABLE, EX_PIN_ENABLE_MASK,
+				 pdata->tx_pin);
 	if (ret < 0)
-		goto out;
-
-	reg_val &= (~EX_PIN_ENABLE_MASK);
-	reg_val |= pdata->tx_pin;
-	ret = regmap_write(chip->regmap, REG_ENABLE, reg_val);
-	if (ret < 0)
-		goto out;
-
-out:
-	dev_err(chip->dev, "Failed to read REG_ENABLE Register\n");
+		dev_err(chip->dev, "Failed to update REG_ENABLE Register\n");
 	return ret;
 }
 
Signature · 1 line
1.7.9.5
Acked-by on v1 1/1
#1 lore raw

2012년 09월 22일 15:40, Axel Lin 쓴 글:

Quoted 3 lines

Use regmap_update_bits() to replace regmap_read() + regmap_write(). With this patch, we only show the error message when regmap_update_bits() fails.

Looks good..You're right. Thank you Alex.

Quoted 2 lines
Quoted 35 lines
---
  drivers/leds/leds-lm3642.c |   15 +++------------
  1 file changed, 3 insertions(+), 12 deletions(-)
drivers/leds/leds-lm3642.c +3 -12
index 924853b..3285006 100644
@@ -95,23 +95,14 @@ struct lm3642_chip_data {
  /* chip initialize */
  static int __devinit lm3642_chip_init(struct lm3642_chip_data *chip)
  {
-	unsigned int reg_val;
  	int ret;
  	struct lm3642_platform_data *pdata = chip->pdata;
 
  	/* set enable register */
-	ret = regmap_read(chip->regmap, REG_ENABLE, &reg_val);
+	ret = regmap_update_bits(chip->regmap, REG_ENABLE, EX_PIN_ENABLE_MASK,
+				 pdata->tx_pin);
  	if (ret < 0)
-		goto out;
-
-	reg_val &= (~EX_PIN_ENABLE_MASK);
-	reg_val |= pdata->tx_pin;
-	ret = regmap_write(chip->regmap, REG_ENABLE, reg_val);
-	if (ret < 0)
-		goto out;
-
-out:
-	dev_err(chip->dev, "Failed to read REG_ENABLE Register\n");
+		dev_err(chip->dev, "Failed to update REG_ENABLE Register\n");
  	return ret;
  }
 
Applied
#2 lore raw
Quoted 6 lines · gshark

2012년 09월 22일 15:40, Axel Lin 쓴 글:

Quoted 3 lines

Use regmap_update_bits() to replace regmap_read() + regmap_write(). With this patch, we only show the error message when regmap_update_bits() fails.

Quoted 7 lines

Looks good..You're right. Thank you Alex.

Quoted 3 lines

Thanks, applied to my for-next.

-Bryan

Quoted 38 lines
Quoted 36 lines
---
  drivers/leds/leds-lm3642.c |   15 +++------------
  1 file changed, 3 insertions(+), 12 deletions(-)
drivers/leds/leds-lm3642.c +3 -12
index 924853b..3285006 100644
@@ -95,23 +95,14 @@ struct lm3642_chip_data {
  /* chip initialize */
  static int __devinit lm3642_chip_init(struct lm3642_chip_data *chip)
  {
-       unsigned int reg_val;
        int ret;
        struct lm3642_platform_data *pdata = chip->pdata;
        /* set enable register */
-       ret = regmap_read(chip->regmap, REG_ENABLE, &reg_val);
+       ret = regmap_update_bits(chip->regmap, REG_ENABLE,
 EX_PIN_ENABLE_MASK,
+                                pdata->tx_pin);
        if (ret < 0)
-               goto out;
-
-       reg_val &= (~EX_PIN_ENABLE_MASK);
-       reg_val |= pdata->tx_pin;
-       ret = regmap_write(chip->regmap, REG_ENABLE, reg_val);
-       if (ret < 0)
-               goto out;
-
-out:
-       dev_err(chip->dev, "Failed to read REG_ENABLE Register\n");
+               dev_err(chip->dev, "Failed to update REG_ENABLE
 Register\n");
        return ret;
  }
Signature · 4 lines
Bryan Wu <[email protected]>
Kernel Developer    +86.186-168-78255 Mobile
Canonical Ltd.      www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com