aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2008-10-11 11:25:25 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-17 16:24:32 -0400
commitd782ffa24fc6ce01b3308a0bec5aa5d9d666b568 (patch)
treebd4b3be3f2756a544eb039e4bc2bf2c6a102e304 /drivers/media/video/cx23885
parent63248f2664d89cc22cc5a13ec6c76e92f7d5ca39 (diff)
V4L/DVB (9230): cx23885: MFE related OOPS fix
Bug: the tree generated an oops when the cx23885 was laoded. This avoids the oops by ensuring the mutex is correctly initialised before it's used. Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r--drivers/media/video/cx23885/cx23885-core.c4
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c5
2 files changed, 4 insertions, 5 deletions
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index beb3e61669a3..7f4b61297175 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -643,6 +643,10 @@ static int cx23885_init_tsport(struct cx23885_dev *dev, struct cx23885_tsport *p
643 port->mpegq.timeout.data = (unsigned long)port; 643 port->mpegq.timeout.data = (unsigned long)port;
644 init_timer(&port->mpegq.timeout); 644 init_timer(&port->mpegq.timeout);
645 645
646 mutex_init(&port->frontends.lock);
647 INIT_LIST_HEAD(&port->frontends.frontend.felist);
648 port->frontends.active_fe_id = 0;
649
646 switch(portno) { 650 switch(portno) {
647 case 1: 651 case 1:
648 port->reg_gpcnt = VID_B_GPCNT; 652 port->reg_gpcnt = VID_B_GPCNT;
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 78851526db68..d779b8dd180a 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -314,11 +314,6 @@ static int dvb_register(struct cx23885_tsport *port)
314 struct cx23885_i2c *i2c_bus = NULL; 314 struct cx23885_i2c *i2c_bus = NULL;
315 struct videobuf_dvb_frontend *fe0; 315 struct videobuf_dvb_frontend *fe0;
316 316
317 /* FIXME: add support for multi-frontend */
318 mutex_init(&port->frontends.lock);
319 INIT_LIST_HEAD(&port->frontends.frontend.felist);
320 port->frontends.active_fe_id = 0;
321
322 printk(KERN_INFO "%s() allocating 1 frontend\n", __func__); 317 printk(KERN_INFO "%s() allocating 1 frontend\n", __func__);
323 318
324 if (videobuf_dvb_alloc_frontend(dev, &port->frontends, 1) == NULL) { 319 if (videobuf_dvb_alloc_frontend(dev, &port->frontends, 1) == NULL) {