aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-04-24 11:53:51 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 17:20:43 -0400
commit594bb46dbc63934bc65fa95743f83204bd26a641 (patch)
tree7901c5c70a18777d74276784219848b4e32abb80 /include/media
parent84d728c3df9931d1937e4a76324838ce065c521e (diff)
V4L/DVB (11607): soc-camera: add a free_bus method to struct soc_camera_link
Currently pcm990 camera bus-width management functions request a GPIO and never free it again. With this approach the GPIO extender driver cannot be unloaded once camera drivers have been loaded, also unloading theb i2c-pxa bus driver produces errors, because the GPIO extender driver cannot unregister properly. Another problem is, that if camera drivers are once loaded before the GPIO extender driver, the platform code marks the GPIO unavailable and only a reboot helps to recover. Adding an explicit free_bus method and using it in mt9m001 and mt9v022 drivers fixes these problems. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/soc_camera.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
index 37013688af44..396c32550e04 100644
--- a/include/media/soc_camera.h
+++ b/include/media/soc_camera.h
@@ -107,6 +107,7 @@ struct soc_camera_link {
107 */ 107 */
108 int (*set_bus_param)(struct soc_camera_link *, unsigned long flags); 108 int (*set_bus_param)(struct soc_camera_link *, unsigned long flags);
109 unsigned long (*query_bus_param)(struct soc_camera_link *); 109 unsigned long (*query_bus_param)(struct soc_camera_link *);
110 void (*free_bus)(struct soc_camera_link *);
110}; 111};
111 112
112static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev) 113static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev)