summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-03-31 08:44:22 +0200
committerGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-03-31 08:44:22 +0200
commit894ef336d9eaaf5528b4e796e4d2c86b45c59b9b (patch)
tree71452f13f122e46cb2827d8abd10c186516896d3
parent2adb7ebfe8e864f77d3f58a65523a9766f86137a (diff)
downloadmediapointer-dvb-s2-894ef336d9eaaf5528b4e796e4d2c86b45c59b9b.tar.gz
mediapointer-dvb-s2-894ef336d9eaaf5528b4e796e4d2c86b45c59b9b.tar.bz2
soc-camera: fix breakage caused by 1fa5ae857bb14f6046205171d98506d8112dd74e
From: Guennadi Liakhovetski <g.liakhovetski@gmx.de> 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> --- drivers/media/video/soc_camera.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
-rw-r--r--linux/drivers/media/video/soc_camera.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/linux/drivers/media/video/soc_camera.c b/linux/drivers/media/video/soc_camera.c
index da6d224eb..9e432d390 100644
--- a/linux/drivers/media/video/soc_camera.c
+++ b/linux/drivers/media/video/soc_camera.c
@@ -765,7 +765,10 @@ static int soc_camera_s_register(struct file *file, void *fh,
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) {
/* Prevent calling device_unregister() */
@@ -1061,7 +1064,6 @@ int soc_camera_device_register(struct soc_camera_device *icd)
icd->devnum = num;
icd->dev.bus = &soc_camera_bus_type;
- dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);
icd->dev.release = dummy_release;
icd->use_count = 0;