summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorPreetham Chandru <pchandru@nvidia.com>2011-12-21 22:20:30 +0530
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-22 22:25:56 -0800
commit1240ef967cd80b873c3947bf81ca684c75fa52b1 (patch)
treece6e95aba62297186ba330816c416995751d1273 /drivers/staging
parent868313eb1f9ec8d035b8878e1a5ffe287202d30a (diff)
staging: iio: magnetometer: ak8975: set I2c client data
Set i2c client data before we call ak8975_setup() in the probe function because ak8975_setup() is making a call to ak8975_write_data() which in turn calls i2c_get_clientdata(). If this is not done then i2c_get_clientdata() returns NULL pointer. Bug: 918820 Signed-off-by: Preetham Chandru <pchandru@nvidia.com> Change-Id: I36316fb508d196a32b26853c377921175f94dde6 Reviewed-on: http://git-master/r/71775 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/iio/magnetometer/ak8975.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c
index 33919e87e7ce..c3481a560375 100644
--- a/drivers/staging/iio/magnetometer/ak8975.c
+++ b/drivers/staging/iio/magnetometer/ak8975.c
@@ -517,12 +517,6 @@ static int ak8975_probe(struct i2c_client *client,
goto exit_gpio;
}
data = iio_priv(indio_dev);
- /* Perform some basic start-of-day setup of the device. */
- err = ak8975_setup(client);
- if (err < 0) {
- dev_err(&client->dev, "AK8975 initialization fails\n");
- goto exit_gpio;
- }
i2c_set_clientdata(client, indio_dev);
data->client = client;
@@ -533,6 +527,13 @@ static int ak8975_probe(struct i2c_client *client,
indio_dev->info = &ak8975_info;
indio_dev->modes = INDIO_DIRECT_MODE;
+ /* Perform some basic start-of-day setup of the device. */
+ err = ak8975_setup(client);
+ if (err < 0) {
+ dev_err(&client->dev, "AK8975 initialization fails\n");
+ goto exit_gpio;
+ }
+
err = iio_device_register(indio_dev);
if (err < 0)
goto exit_free_iio;