mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
media: ov2740: identify module after subdev initialisation
[ Upstream commit54ade663d4
] The module identifying will try to get the sub device data which will be ready after sub device initialisation, so if try to use the subdev data to deference the client will cause NULL pointer dereference, this patch move the module identification after v4l2_i2c_subdev_init() to fix this issue, it also fixes duplicate module idendification. Fixes:ada2c4f54d
("media: ov2740: support device probe in non-zero ACPI D state") Signed-off-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
5b3b0b7d6e
commit
d183fe6836
1 changed files with 1 additions and 7 deletions
|
@ -1162,6 +1162,7 @@ static int ov2740_probe(struct i2c_client *client)
|
|||
if (!ov2740)
|
||||
return -ENOMEM;
|
||||
|
||||
v4l2_i2c_subdev_init(&ov2740->sd, client, &ov2740_subdev_ops);
|
||||
full_power = acpi_dev_state_d0(&client->dev);
|
||||
if (full_power) {
|
||||
ret = ov2740_identify_module(ov2740);
|
||||
|
@ -1171,13 +1172,6 @@ static int ov2740_probe(struct i2c_client *client)
|
|||
}
|
||||
}
|
||||
|
||||
v4l2_i2c_subdev_init(&ov2740->sd, client, &ov2740_subdev_ops);
|
||||
ret = ov2740_identify_module(ov2740);
|
||||
if (ret) {
|
||||
dev_err(&client->dev, "failed to find sensor: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
mutex_init(&ov2740->mutex);
|
||||
ov2740->cur_mode = &supported_modes[0];
|
||||
ret = ov2740_init_controls(ov2740);
|
||||
|
|
Loading…
Reference in a new issue