From 8b46cee43505dc24d744647f09aca01d8113c842 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Tue, 7 Aug 2012 15:16:51 +0530 Subject: mfd: tps65090: initialize regmap before accessing register The regmap should be initialized before irq initialization happen as register are accessed during irq init. Change-Id: I301e8b84596a9075209901cbaff1dc42a944e163 Signed-off-by: Laxman Dewangan Reviewed-on: http://git-master/r/121623 Reviewed-by: Venu Byravarasu --- drivers/mfd/tps65090.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'drivers') diff --git a/drivers/mfd/tps65090.c b/drivers/mfd/tps65090.c index 1071f6cc0f34..25f463de1513 100644 --- a/drivers/mfd/tps65090.c +++ b/drivers/mfd/tps65090.c @@ -234,22 +234,22 @@ static int __devinit tps65090_i2c_probe(struct i2c_client *client, tps65090->dev = &client->dev; i2c_set_clientdata(client, tps65090); + tps65090->rmap = devm_regmap_init_i2c(client, &tps65090_regmap_config); + if (IS_ERR(tps65090->rmap)) { + ret = PTR_ERR(tps65090->rmap); + dev_err(&client->dev, "regmap_init failed with err: %d\n", ret); + return ret; + } + if (client->irq) { ret = tps65090_irq_init(tps65090, client->irq, pdata->irq_base); if (ret) { dev_err(&client->dev, "IRQ init failed with err: %d\n", ret); - goto err_exit; + return ret; } } - tps65090->rmap = devm_regmap_init_i2c(client, &tps65090_regmap_config); - if (IS_ERR(tps65090->rmap)) { - ret = PTR_ERR(tps65090->rmap); - dev_err(&client->dev, "regmap_init failed with err: %d\n", ret); - goto err_irq_exit; - } - ret = mfd_add_devices(tps65090->dev, -1, tps65090s, ARRAY_SIZE(tps65090s), NULL, 0); if (ret) { @@ -263,7 +263,6 @@ static int __devinit tps65090_i2c_probe(struct i2c_client *client, err_irq_exit: if (client->irq) free_irq(client->irq, tps65090); -err_exit: return ret; } -- cgit v1.2.3