diff options
author | Preetham Chandru <pchandru@nvidia.com> | 2011-12-21 22:20:30 +0530 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-22 22:25:56 -0800 |
commit | 1240ef967cd80b873c3947bf81ca684c75fa52b1 (patch) | |
tree | ce6e95aba62297186ba330816c416995751d1273 /drivers/staging/iio/magnetometer | |
parent | 868313eb1f9ec8d035b8878e1a5ffe287202d30a (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/iio/magnetometer')
-rw-r--r-- | drivers/staging/iio/magnetometer/ak8975.c | 13 |
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; |