Commit cc58f4db authored by Wei Yongjun's avatar Wei Yongjun Committed by Mauro Carvalho Chehab

[media] media: i2c: lm3560: use correct clientdata in lm3560_remove()

We had set the i2c clientdata to &flash->subdev_led[LM3560_LED1]
after call lm3560_subdev_init(flash, LM3560_LED1, "lm3560-led1"),
but the container_of() in lm3560_remove() return the wrong pointer
to flash.(should be container_of(subdev, struct lm3560_flash,
subdev_led[LM3560_LED_MAX-1])
This patch fix to set i2c clientdata to flash so we can get flash
from clientdata directly.
Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent eed8c3ee
...@@ -448,14 +448,14 @@ static int lm3560_probe(struct i2c_client *client, ...@@ -448,14 +448,14 @@ static int lm3560_probe(struct i2c_client *client,
if (rval < 0) if (rval < 0)
return rval; return rval;
i2c_set_clientdata(client, flash);
return 0; return 0;
} }
static int lm3560_remove(struct i2c_client *client) static int lm3560_remove(struct i2c_client *client)
{ {
struct v4l2_subdev *subdev = i2c_get_clientdata(client); struct lm3560_flash *flash = i2c_get_clientdata(client);
struct lm3560_flash *flash = container_of(subdev, struct lm3560_flash,
subdev_led[LM3560_LED_MAX]);
unsigned int i; unsigned int i;
for (i = LM3560_LED0; i < LM3560_LED_MAX; i++) { for (i = LM3560_LED0; i < LM3560_LED_MAX; i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment