|
@@ -1240,21 +1240,25 @@ static int kxcjk1013_probe(struct i2c_client *client,
|
|
KXCJK1013_IRQ_NAME,
|
|
KXCJK1013_IRQ_NAME,
|
|
indio_dev);
|
|
indio_dev);
|
|
if (ret)
|
|
if (ret)
|
|
- return ret;
|
|
|
|
|
|
+ goto err_poweroff;
|
|
|
|
|
|
data->dready_trig = devm_iio_trigger_alloc(&client->dev,
|
|
data->dready_trig = devm_iio_trigger_alloc(&client->dev,
|
|
"%s-dev%d",
|
|
"%s-dev%d",
|
|
indio_dev->name,
|
|
indio_dev->name,
|
|
indio_dev->id);
|
|
indio_dev->id);
|
|
- if (!data->dready_trig)
|
|
|
|
- return -ENOMEM;
|
|
|
|
|
|
+ if (!data->dready_trig) {
|
|
|
|
+ ret = -ENOMEM;
|
|
|
|
+ goto err_poweroff;
|
|
|
|
+ }
|
|
|
|
|
|
data->motion_trig = devm_iio_trigger_alloc(&client->dev,
|
|
data->motion_trig = devm_iio_trigger_alloc(&client->dev,
|
|
"%s-any-motion-dev%d",
|
|
"%s-any-motion-dev%d",
|
|
indio_dev->name,
|
|
indio_dev->name,
|
|
indio_dev->id);
|
|
indio_dev->id);
|
|
- if (!data->motion_trig)
|
|
|
|
- return -ENOMEM;
|
|
|
|
|
|
+ if (!data->motion_trig) {
|
|
|
|
+ ret = -ENOMEM;
|
|
|
|
+ goto err_poweroff;
|
|
|
|
+ }
|
|
|
|
|
|
data->dready_trig->dev.parent = &client->dev;
|
|
data->dready_trig->dev.parent = &client->dev;
|
|
data->dready_trig->ops = &kxcjk1013_trigger_ops;
|
|
data->dready_trig->ops = &kxcjk1013_trigger_ops;
|
|
@@ -1263,7 +1267,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
|
|
iio_trigger_get(indio_dev->trig);
|
|
iio_trigger_get(indio_dev->trig);
|
|
ret = iio_trigger_register(data->dready_trig);
|
|
ret = iio_trigger_register(data->dready_trig);
|
|
if (ret)
|
|
if (ret)
|
|
- return ret;
|
|
|
|
|
|
+ goto err_poweroff;
|
|
|
|
|
|
data->motion_trig->dev.parent = &client->dev;
|
|
data->motion_trig->dev.parent = &client->dev;
|
|
data->motion_trig->ops = &kxcjk1013_trigger_ops;
|
|
data->motion_trig->ops = &kxcjk1013_trigger_ops;
|
|
@@ -1312,6 +1316,8 @@ err_trigger_unregister:
|
|
iio_trigger_unregister(data->dready_trig);
|
|
iio_trigger_unregister(data->dready_trig);
|
|
if (data->motion_trig)
|
|
if (data->motion_trig)
|
|
iio_trigger_unregister(data->motion_trig);
|
|
iio_trigger_unregister(data->motion_trig);
|
|
|
|
+err_poweroff:
|
|
|
|
+ kxcjk1013_set_mode(data, STANDBY);
|
|
|
|
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|