From: Charles Keepax <ckee...@opensource.wolfsonmicro.com>

As we are using a custom boot sequence we don't need to wait for the
standard boot sequence in device init when the normal write sequence is
disabled.

Signed-off-by: Charles Keepax <ckee...@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broo...@opensource.wolfsonmicro.com>
---
 drivers/mfd/arizona-core.c |   22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 69e9796..2b6a994 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -590,10 +590,24 @@ int arizona_dev_init(struct arizona *arizona)
                }
        }
 
-       ret = arizona_wait_for_boot(arizona);
-       if (ret != 0) {
-               dev_err(arizona->dev, "Device failed initial boot: %d\n", ret);
-               goto err_reset;
+       switch (arizona->type) {
+       case WM5102:
+               ret = regmap_read(arizona->regmap, 0x19, &val);
+               if (ret != 0)
+                       dev_err(dev,
+                               "Failed to check write sequencer state: %d\n",
+                               ret);
+               else if (val & 0x01)
+                       break;
+               /* Fall through */
+       default:
+               ret = arizona_wait_for_boot(arizona);
+               if (ret != 0) {
+                       dev_err(arizona->dev,
+                               "Device failed initial boot: %d\n", ret);
+                       goto err_reset;
+               }
+               break;
        }
 
        if (apply_patch) {
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to