diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2008-06-13 11:11:01 +0200 |
---|---|---|
committer | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2008-06-13 11:11:01 +0200 |
commit | 218eafef6b0f3f2eac0db3fd932b534ed760658d (patch) | |
tree | 6d31519e184b3357afc4c6e41cad8ed772a8d619 /linux/drivers/media/video/soc_camera.c | |
parent | 83b46b2828f77904f8de457d557382b8b16cae0e (diff) | |
download | mediapointer-dvb-s2-218eafef6b0f3f2eac0db3fd932b534ed760658d.tar.gz mediapointer-dvb-s2-218eafef6b0f3f2eac0db3fd932b534ed760658d.tar.bz2 |
soc-camera: remove soc_camera_host_class class
From: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de>
Devices can either be class devices or bus devices, not both at the
same time. Soc-camera host devices usually have a platform device as
their parent. Trying to also register them with a class crashes the
kernel, when linked statically. Interestingly, it works when built
as a module. Thanks to Paulius Zaleckas for reporting.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de>
Diffstat (limited to 'linux/drivers/media/video/soc_camera.c')
-rw-r--r-- | linux/drivers/media/video/soc_camera.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/linux/drivers/media/video/soc_camera.c b/linux/drivers/media/video/soc_camera.c index 208ed5278..8ae2d9916 100644 --- a/linux/drivers/media/video/soc_camera.c +++ b/linux/drivers/media/video/soc_camera.c @@ -763,15 +763,6 @@ static struct device_driver ic_drv = { .owner = THIS_MODULE, }; -/* - * Image capture host - this is a host device, not a bus device, so, - * no bus reference, no probing. - */ -static struct class soc_camera_host_class = { - .owner = THIS_MODULE, - .name = "camera_host", -}; - static void dummy_release(struct device *dev) { } @@ -801,7 +792,6 @@ int soc_camera_host_register(struct soc_camera_host *ici) /* Number might be equal to the platform device ID */ sprintf(ici->dev.bus_id, "camera_host%d", ici->nr); - ici->dev.class = &soc_camera_host_class; mutex_lock(&list_lock); list_for_each_entry(ix, &hosts, list) { @@ -1003,14 +993,9 @@ static int __init soc_camera_init(void) ret = driver_register(&ic_drv); if (ret) goto edrvr; - ret = class_register(&soc_camera_host_class); - if (ret) - goto eclr; return 0; -eclr: - driver_unregister(&ic_drv); edrvr: bus_unregister(&soc_camera_bus_type); return ret; @@ -1018,7 +1003,6 @@ edrvr: static void __exit soc_camera_exit(void) { - class_unregister(&soc_camera_host_class); driver_unregister(&ic_drv); bus_unregister(&soc_camera_bus_type); } |