Commit eee1663f authored by Guennadi Liakhovetski's avatar Guennadi Liakhovetski Committed by Mauro Carvalho Chehab

V4L/DVB (11325): soc-camera: fix breakage caused by 1fa5ae85

soc-camera re-uses struct devices multiple times in calls to device_register(),
therefore it has to reset the embedded struct kobject to avoid the "tried to
init an initialized object" error, which then also erases its name. Now with
the transition to kobject's name for device names, we have to re-initialise the
name before each call to device_register().
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 6cb2c000
...@@ -764,7 +764,10 @@ static int soc_camera_s_register(struct file *file, void *fh, ...@@ -764,7 +764,10 @@ static int soc_camera_s_register(struct file *file, void *fh,
static int device_register_link(struct soc_camera_device *icd) static int device_register_link(struct soc_camera_device *icd)
{ {
int ret = device_register(&icd->dev); int ret = dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
if (!ret)
ret = device_register(&icd->dev);
if (ret < 0) { if (ret < 0) {
/* Prevent calling device_unregister() */ /* Prevent calling device_unregister() */
...@@ -1060,7 +1063,6 @@ int soc_camera_device_register(struct soc_camera_device *icd) ...@@ -1060,7 +1063,6 @@ int soc_camera_device_register(struct soc_camera_device *icd)
icd->devnum = num; icd->devnum = num;
icd->dev.bus = &soc_camera_bus_type; icd->dev.bus = &soc_camera_bus_type;
dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
icd->dev.release = dummy_release; icd->dev.release = dummy_release;
icd->use_count = 0; icd->use_count = 0;
......
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