ASoC: wm2000: Remove wm2000_read helper function
authorLucas Tanure <tanureal@opensource.cirrus.com>
Fri, 19 Oct 2018 16:44:22 +0000 (17:44 +0100)
committerMark Brown <broonie@kernel.org>
Sun, 21 Oct 2018 11:04:38 +0000 (12:04 +0100)
The return type "unsigned int" was used by the wm2000_read()
function despite of the aspect that it will eventually return
a negative error code.
The resulting function doesn't add much to the code, so replace
wm2000_read with regmap_read.

Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm2000.c

index c5ae072..bba330e 100644 (file)
@@ -88,19 +88,6 @@ static int wm2000_write(struct i2c_client *i2c, unsigned int reg,
        return regmap_write(wm2000->regmap, reg, value);
 }
 
-static unsigned int wm2000_read(struct i2c_client *i2c, unsigned int r)
-{
-       struct wm2000_priv *wm2000 = i2c_get_clientdata(i2c);
-       unsigned int val;
-       int ret;
-
-       ret = regmap_read(wm2000->regmap, r, &val);
-       if (ret < 0)
-               return -1;
-
-       return val;
-}
-
 static void wm2000_reset(struct wm2000_priv *wm2000)
 {
        struct i2c_client *i2c = wm2000->i2c;
@@ -115,14 +102,15 @@ static void wm2000_reset(struct wm2000_priv *wm2000)
 static int wm2000_poll_bit(struct i2c_client *i2c,
                           unsigned int reg, u8 mask)
 {
+       struct wm2000_priv *wm2000 = i2c_get_clientdata(i2c);
        int timeout = 4000;
-       int val;
+       unsigned int val;
 
-       val = wm2000_read(i2c, reg);
+       regmap_read(wm2000->regmap, reg, &val);
 
        while (!(val & mask) && --timeout) {
                msleep(1);
-               val = wm2000_read(i2c, reg);
+               regmap_read(wm2000->regmap, reg, &val);
        }
 
        if (timeout == 0)
@@ -135,6 +123,7 @@ static int wm2000_power_up(struct i2c_client *i2c, int analogue)
 {
        struct wm2000_priv *wm2000 = dev_get_drvdata(&i2c->dev);
        unsigned long rate;
+       unsigned int val;
        int ret;
 
        if (WARN_ON(wm2000->anc_mode != ANC_OFF))
@@ -213,12 +202,17 @@ static int wm2000_power_up(struct i2c_client *i2c, int analogue)
                             WM2000_MODE_THERMAL_ENABLE);
        }
 
-       ret = wm2000_read(i2c, WM2000_REG_SPEECH_CLARITY);
+       ret = regmap_read(wm2000->regmap, WM2000_REG_SPEECH_CLARITY, &val);
+       if (ret != 0) {
+               dev_err(&i2c->dev, "Unable to read Speech Clarity: %d\n", ret);
+               regulator_bulk_disable(WM2000_NUM_SUPPLIES, wm2000->supplies);
+               return ret;
+       }
        if (wm2000->speech_clarity)
-               ret |= WM2000_SPEECH_CLARITY;
+               val |= WM2000_SPEECH_CLARITY;
        else
-               ret &= ~WM2000_SPEECH_CLARITY;
-       wm2000_write(i2c, WM2000_REG_SPEECH_CLARITY, ret);
+               val &= ~WM2000_SPEECH_CLARITY;
+       wm2000_write(i2c, WM2000_REG_SPEECH_CLARITY, val);
 
        wm2000_write(i2c, WM2000_REG_SYS_START0, 0x33);
        wm2000_write(i2c, WM2000_REG_SYS_START1, 0x02);
@@ -824,7 +818,7 @@ static int wm2000_i2c_probe(struct i2c_client *i2c,
        const char *filename;
        const struct firmware *fw = NULL;
        int ret, i;
-       int reg;
+       unsigned int reg;
        u16 id;
 
        wm2000 = devm_kzalloc(&i2c->dev, sizeof(*wm2000), GFP_KERNEL);
@@ -860,9 +854,17 @@ static int wm2000_i2c_probe(struct i2c_client *i2c,
        }
 
        /* Verify that this is a WM2000 */
-       reg = wm2000_read(i2c, WM2000_REG_ID1);
+       ret = regmap_read(wm2000->regmap, WM2000_REG_ID1, &reg);
+       if (ret != 0) {
+               dev_err(&i2c->dev, "Unable to read ID1: %d\n", ret);
+               return ret;
+       }
        id = reg << 8;
-       reg = wm2000_read(i2c, WM2000_REG_ID2);
+       ret = regmap_read(wm2000->regmap, WM2000_REG_ID2, &reg);
+       if (ret != 0) {
+               dev_err(&i2c->dev, "Unable to read ID2: %d\n", ret);
+               return ret;
+       }
        id |= reg & 0xff;
 
        if (id != 0x2000) {
@@ -871,7 +873,11 @@ static int wm2000_i2c_probe(struct i2c_client *i2c,
                goto err_supplies;
        }
 
-       reg = wm2000_read(i2c, WM2000_REG_REVISON);
+       ret = regmap_read(wm2000->regmap, WM2000_REG_REVISON, &reg);
+       if (ret != 0) {
+               dev_err(&i2c->dev, "Unable to read Revision: %d\n", ret);
+               return ret;
+       }
        dev_info(&i2c->dev, "revision %c\n", reg + 'A');
 
        wm2000->mclk = devm_clk_get(&i2c->dev, "MCLK");