aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c5
-rw-r--r--drivers/media/video/cx23885/cx23885-core.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-video.c16
-rw-r--r--drivers/media/video/cx23885/cx23885.h2
5 files changed, 13 insertions, 14 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index 5e4b7e790d9..a3c0565be1a 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -739,9 +739,10 @@ void cx23885_card_setup(struct cx23885_dev *dev)
739 case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: 739 case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H:
740 case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: 740 case CX23885_BOARD_COMPRO_VIDEOMATE_E650F:
741 case CX23885_BOARD_NETUP_DUAL_DVBS2_CI: 741 case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
742 dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->i2c_bus[2].i2c_adap, 742 dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
743 &dev->i2c_bus[2].i2c_adap,
743 "cx25840", "cx25840", 0x88 >> 1); 744 "cx25840", "cx25840", 0x88 >> 1);
744 v4l2_subdev_call(dev->sd_cx25840, core, init, 0); 745 v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
745 break; 746 break;
746 } 747 }
747 748
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index dc7fff22cfd..beda42925ce 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -875,7 +875,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
875 cx23885_i2c_register(&dev->i2c_bus[1]); 875 cx23885_i2c_register(&dev->i2c_bus[1]);
876 cx23885_i2c_register(&dev->i2c_bus[2]); 876 cx23885_i2c_register(&dev->i2c_bus[2]);
877 cx23885_card_setup(dev); 877 cx23885_card_setup(dev);
878 call_all(dev, core, s_standby, 0); 878 call_all(dev, tuner, s_standby);
879 cx23885_ir_init(dev); 879 cx23885_ir_init(dev);
880 880
881 if (cx23885_boards[dev->board].porta == CX23885_ANALOG_VIDEO) { 881 if (cx23885_boards[dev->board].porta == CX23885_ANALOG_VIDEO) {
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index d43c7439676..f48454ab390 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -673,7 +673,7 @@ static int dvb_register(struct cx23885_tsport *port)
673 fe0->dvb.frontend->callback = cx23885_tuner_callback; 673 fe0->dvb.frontend->callback = cx23885_tuner_callback;
674 674
675 /* Put the analog decoder in standby to keep it quiet */ 675 /* Put the analog decoder in standby to keep it quiet */
676 call_all(dev, core, s_standby, 0); 676 call_all(dev, tuner, s_standby);
677 677
678 if (fe0->dvb.frontend->ops.analog_ops.standby) 678 if (fe0->dvb.frontend->ops.analog_ops.standby)
679 fe0->dvb.frontend->ops.analog_ops.standby(fe0->dvb.frontend); 679 fe0->dvb.frontend->ops.analog_ops.standby(fe0->dvb.frontend);
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c
index f0ac62c5dc8..68068c6d098 100644
--- a/drivers/media/video/cx23885/cx23885-video.c
+++ b/drivers/media/video/cx23885/cx23885-video.c
@@ -299,7 +299,7 @@ static int cx23885_set_tvnorm(struct cx23885_dev *dev, v4l2_std_id norm)
299 299
300 dev->tvnorm = norm; 300 dev->tvnorm = norm;
301 301
302 call_all(dev, tuner, s_std, norm); 302 call_all(dev, core, s_std, norm);
303 303
304 return 0; 304 return 0;
305} 305}
@@ -393,9 +393,6 @@ static void res_free(struct cx23885_dev *dev, struct cx23885_fh *fh,
393 393
394static int cx23885_video_mux(struct cx23885_dev *dev, unsigned int input) 394static int cx23885_video_mux(struct cx23885_dev *dev, unsigned int input)
395{ 395{
396 struct v4l2_routing route;
397 memset(&route, 0, sizeof(route));
398
399 dprintk(1, "%s() video_mux: %d [vmux=%d, gpio=0x%x,0x%x,0x%x,0x%x]\n", 396 dprintk(1, "%s() video_mux: %d [vmux=%d, gpio=0x%x,0x%x,0x%x,0x%x]\n",
400 __func__, 397 __func__,
401 input, INPUT(input)->vmux, 398 input, INPUT(input)->vmux,
@@ -403,10 +400,9 @@ static int cx23885_video_mux(struct cx23885_dev *dev, unsigned int input)
403 INPUT(input)->gpio2, INPUT(input)->gpio3); 400 INPUT(input)->gpio2, INPUT(input)->gpio3);
404 dev->input = input; 401 dev->input = input;
405 402
406 route.input = INPUT(input)->vmux;
407
408 /* Tell the internal A/V decoder */ 403 /* Tell the internal A/V decoder */
409 v4l2_subdev_call(dev->sd_cx25840, video, s_routing, &route); 404 v4l2_subdev_call(dev->sd_cx25840, video, s_routing,
405 INPUT(input)->vmux, 0, 0);
410 406
411 return 0; 407 return 0;
412} 408}
@@ -1523,10 +1519,12 @@ int cx23885_video_register(struct cx23885_dev *dev)
1523 struct v4l2_subdev *sd = NULL; 1519 struct v4l2_subdev *sd = NULL;
1524 1520
1525 if (dev->tuner_addr) 1521 if (dev->tuner_addr)
1526 sd = v4l2_i2c_new_subdev(&dev->i2c_bus[1].i2c_adap, 1522 sd = v4l2_i2c_new_subdev(&dev->v4l2_dev,
1523 &dev->i2c_bus[1].i2c_adap,
1527 "tuner", "tuner", dev->tuner_addr); 1524 "tuner", "tuner", dev->tuner_addr);
1528 else 1525 else
1529 sd = v4l2_i2c_new_probed_subdev(&dev->i2c_bus[1].i2c_adap, 1526 sd = v4l2_i2c_new_probed_subdev(&dev->v4l2_dev,
1527 &dev->i2c_bus[1].i2c_adap,
1530 "tuner", "tuner", v4l2_i2c_tuner_addrs(ADDRS_TV)); 1528 "tuner", "tuner", v4l2_i2c_tuner_addrs(ADDRS_TV));
1531 if (sd) { 1529 if (sd) {
1532 struct tuner_setup tun_setup; 1530 struct tuner_setup tun_setup;
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 02d980a2996..85642831ea8 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -37,7 +37,7 @@
37#include <linux/version.h> 37#include <linux/version.h>
38#include <linux/mutex.h> 38#include <linux/mutex.h>
39 39
40#define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 1) 40#define CX23885_VERSION_CODE KERNEL_VERSION(0, 0, 2)
41 41
42#define UNSET (-1U) 42#define UNSET (-1U)
43 43