aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/soc_camera.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-03-31 02:44:22 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-04-06 20:43:48 -0400
commiteee1663fa71e32b146a584cb9a7c22bb6302ec14 (patch)
tree794f79a826c6a826884cc151838e284c24979755 /drivers/media/video/soc_camera.c
parent6cb2c0009e8f27abad514c44d60b58913189b8c6 (diff)
V4L/DVB (11325): soc-camera: fix breakage caused by 1fa5ae857bb14f6046205171d98506d8112dd74e
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: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/soc_camera.c')
-rw-r--r--drivers/media/video/soc_camera.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c
index 6d8bfd4d97e2..0e890cc23377 100644
--- a/drivers/media/video/soc_camera.c
+++ b/drivers/media/video/soc_camera.c
@@ -764,7 +764,10 @@ static int soc_camera_s_register(struct file *file, void *fh,
764 764
765static int device_register_link(struct soc_camera_device *icd) 765static int device_register_link(struct soc_camera_device *icd)
766{ 766{
767 int ret = device_register(&icd->dev); 767 int ret = dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
768
769 if (!ret)
770 ret = device_register(&icd->dev);
768 771
769 if (ret < 0) { 772 if (ret < 0) {
770 /* Prevent calling device_unregister() */ 773 /* Prevent calling device_unregister() */
@@ -1060,7 +1063,6 @@ int soc_camera_device_register(struct soc_camera_device *icd)
1060 1063
1061 icd->devnum = num; 1064 icd->devnum = num;
1062 icd->dev.bus = &soc_camera_bus_type; 1065 icd->dev.bus = &soc_camera_bus_type;
1063 dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
1064 1066
1065 icd->dev.release = dummy_release; 1067 icd->dev.release = dummy_release;
1066 icd->use_count = 0; 1068 icd->use_count = 0;