From 1240ef967cd80b873c3947bf81ca684c75fa52b1 Mon Sep 17 00:00:00 2001 From: Preetham Chandru Date: Wed, 21 Dec 2011 22:20:30 +0530 Subject: 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 Change-Id: I36316fb508d196a32b26853c377921175f94dde6 Reviewed-on: http://git-master/r/71775 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam Reviewed-by: Bharat Nihalani --- drivers/staging/iio/magnetometer/ak8975.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'drivers/staging') 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; -- cgit v1.2.3