aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/pci/cx88
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-24 20:35:10 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-24 20:35:10 -0500
commit21fbd5809ad126b949206d78e0a0e07ec872ea11 (patch)
treea824045df99fc1f0690095a925cceb50207e332b /drivers/media/pci/cx88
parentd9978ec5680059d727b39d6c706777c6973587f2 (diff)
parented72d37a33fdf43dc47787fe220532cdec9da528 (diff)
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - Some cleanups at V4L2 documentation - new drivers: ts2020 frontend, ov9650 sensor, s5c73m3 sensor, sh-mobile veu mem2mem driver, radio-ma901, davinci_vpfe staging driver - Lots of missing MAINTAINERS entries added - several em28xx driver improvements, including its conversion to videobuf2 - several fixups on drivers to make them to better comply with the API - DVB core: add support for DVBv5 stats, allowing the implementation of statistics for new standards like ISDB - mb86a20s: add statistics to the driver - lots of new board additions, cleanups, and driver improvements. * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (596 commits) [media] media: Add 0x3009 USB PID to ttusb2 driver (fixed diff) [media] rtl28xxu: Add USB IDs for Compro VideoMate U620F [media] em28xx: add usb id for terratec h5 rev. 3 [media] media: rc: gpio-ir-recv: add support for device tree parsing [media] mceusb: move check earlier to make smatch happy [media] radio-si470x doc: add info about v4l2-ctl and sox+alsa [media] staging: media: Remove unnecessary OOM messages [media] sh_vou: Use vou_dev instead of vou_file wherever possible [media] sh_vou: Use video_drvdata() [media] drivers/media/platform/soc_camera/pxa_camera.c: use devm_ functions [media] mt9t112: mt9t111 format set up differs from mt9t112 [media] sh-mobile-ceu-camera: fix SHARPNESS control default Revert "[media] fc0011: Return early, if the frequency is already tuned" [media] cx18/ivtv: fix regression: remove __init from a non-init function [media] em28xx: fix analog streaming with USB bulk transfers [media] stv0900: remove unnecessary null pointer check [media] fc0011: Return early, if the frequency is already tuned [media] fc0011: Add some sanity checks and cleanups [media] fc0011: Fix xin value clamping Revert "[media] [PATH,1/2] mxl5007 move reset to attach" ...
Diffstat (limited to 'drivers/media/pci/cx88')
-rw-r--r--drivers/media/pci/cx88/Kconfig2
-rw-r--r--drivers/media/pci/cx88/Makefile1
-rw-r--r--drivers/media/pci/cx88/cx88-cards.c2
-rw-r--r--drivers/media/pci/cx88/cx88-core.c2
-rw-r--r--drivers/media/pci/cx88/cx88-dvb.c15
-rw-r--r--drivers/media/pci/cx88/cx88-i2c.c3
-rw-r--r--drivers/media/pci/cx88/cx88-vp3054-i2c.c3
-rw-r--r--drivers/media/pci/cx88/cx88-vp3054-i2c.h2
-rw-r--r--drivers/media/pci/cx88/cx88.h10
9 files changed, 24 insertions, 16 deletions
diff --git a/drivers/media/pci/cx88/Kconfig b/drivers/media/pci/cx88/Kconfig
index d27fccbf03c4..bb05eca2da29 100644
--- a/drivers/media/pci/cx88/Kconfig
+++ b/drivers/media/pci/cx88/Kconfig
@@ -62,6 +62,8 @@ config VIDEO_CX88_DVB
62 select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT 62 select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT
63 select DVB_STV0900 if MEDIA_SUBDRV_AUTOSELECT 63 select DVB_STV0900 if MEDIA_SUBDRV_AUTOSELECT
64 select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT 64 select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT
65 select DVB_DS3000 if MEDIA_SUBDRV_AUTOSELECT
66 select DVB_TS2020 if MEDIA_SUBDRV_AUTOSELECT
65 select MEDIA_TUNER_SIMPLE if MEDIA_SUBDRV_AUTOSELECT 67 select MEDIA_TUNER_SIMPLE if MEDIA_SUBDRV_AUTOSELECT
66 ---help--- 68 ---help---
67 This adds support for DVB/ATSC cards based on the 69 This adds support for DVB/ATSC cards based on the
diff --git a/drivers/media/pci/cx88/Makefile b/drivers/media/pci/cx88/Makefile
index d3679c3ee248..8619c1becee2 100644
--- a/drivers/media/pci/cx88/Makefile
+++ b/drivers/media/pci/cx88/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_VIDEO_CX88_DVB) += cx88-dvb.o
11obj-$(CONFIG_VIDEO_CX88_VP3054) += cx88-vp3054-i2c.o 11obj-$(CONFIG_VIDEO_CX88_VP3054) += cx88-vp3054-i2c.o
12 12
13ccflags-y += -Idrivers/media/i2c 13ccflags-y += -Idrivers/media/i2c
14ccflags-y += -Idrivers/media/common
14ccflags-y += -Idrivers/media/tuners 15ccflags-y += -Idrivers/media/tuners
15ccflags-y += -Idrivers/media/dvb-core 16ccflags-y += -Idrivers/media/dvb-core
16ccflags-y += -Idrivers/media/dvb-frontends 17ccflags-y += -Idrivers/media/dvb-frontends
diff --git a/drivers/media/pci/cx88/cx88-cards.c b/drivers/media/pci/cx88/cx88-cards.c
index 0c255248cbcd..e2e0b8faf7a4 100644
--- a/drivers/media/pci/cx88/cx88-cards.c
+++ b/drivers/media/pci/cx88/cx88-cards.c
@@ -3743,7 +3743,7 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
3743 cx88_card_list(core, pci); 3743 cx88_card_list(core, pci);
3744 } 3744 }
3745 3745
3746 memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board)); 3746 core->board = cx88_boards[core->boardnr];
3747 3747
3748 if (!core->board.num_frontends && (core->board.mpeg & CX88_MPEG_DVB)) 3748 if (!core->board.num_frontends && (core->board.mpeg & CX88_MPEG_DVB))
3749 core->board.num_frontends = 1; 3749 core->board.num_frontends = 1;
diff --git a/drivers/media/pci/cx88/cx88-core.c b/drivers/media/pci/cx88/cx88-core.c
index 19a58754c6e1..39f095c37ffd 100644
--- a/drivers/media/pci/cx88/cx88-core.c
+++ b/drivers/media/pci/cx88/cx88-core.c
@@ -549,7 +549,7 @@ void cx88_wakeup(struct cx88_core *core,
549 * up to 32767 buffers in flight... */ 549 * up to 32767 buffers in flight... */
550 if ((s16) (count - buf->count) < 0) 550 if ((s16) (count - buf->count) < 0)
551 break; 551 break;
552 do_gettimeofday(&buf->vb.ts); 552 v4l2_get_timestamp(&buf->vb.ts);
553 dprintk(2,"[%p/%d] wakeup reg=%d buf=%d\n",buf,buf->vb.i, 553 dprintk(2,"[%p/%d] wakeup reg=%d buf=%d\n",buf,buf->vb.i,
554 count, buf->count); 554 count, buf->count);
555 buf->vb.state = VIDEOBUF_DONE; 555 buf->vb.state = VIDEOBUF_DONE;
diff --git a/drivers/media/pci/cx88/cx88-dvb.c b/drivers/media/pci/cx88/cx88-dvb.c
index 666f83b2f3c0..672b267a2d3e 100644
--- a/drivers/media/pci/cx88/cx88-dvb.c
+++ b/drivers/media/pci/cx88/cx88-dvb.c
@@ -58,6 +58,7 @@
58#include "stb6100.h" 58#include "stb6100.h"
59#include "stb6100_proc.h" 59#include "stb6100_proc.h"
60#include "mb86a16.h" 60#include "mb86a16.h"
61#include "ts2020.h"
61#include "ds3000.h" 62#include "ds3000.h"
62 63
63MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); 64MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
@@ -264,7 +265,7 @@ static struct mb86a16_config twinhan_vp1027 = {
264 .demod_address = 0x08, 265 .demod_address = 0x08,
265}; 266};
266 267
267#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) 268#if IS_ENABLED(CONFIG_VIDEO_CX88_VP3054)
268static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe) 269static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)
269{ 270{
270 static const u8 clock_config [] = { 0x89, 0x38, 0x38 }; 271 static const u8 clock_config [] = { 0x89, 0x38, 0x38 };
@@ -700,6 +701,11 @@ static struct ds3000_config tevii_ds3000_config = {
700 .set_ts_params = ds3000_set_ts_param, 701 .set_ts_params = ds3000_set_ts_param,
701}; 702};
702 703
704static struct ts2020_config tevii_ts2020_config = {
705 .tuner_address = 0x60,
706 .clk_out_div = 1,
707};
708
703static const struct stv0900_config prof_7301_stv0900_config = { 709static const struct stv0900_config prof_7301_stv0900_config = {
704 .demod_address = 0x6a, 710 .demod_address = 0x6a,
705/* demod_mode = 0,*/ 711/* demod_mode = 0,*/
@@ -1121,7 +1127,7 @@ static int dvb_register(struct cx8802_dev *dev)
1121 } 1127 }
1122 break; 1128 break;
1123 case CX88_BOARD_DNTV_LIVE_DVB_T_PRO: 1129 case CX88_BOARD_DNTV_LIVE_DVB_T_PRO:
1124#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) 1130#if IS_ENABLED(CONFIG_VIDEO_CX88_VP3054)
1125 /* MT352 is on a secondary I2C bus made from some GPIO lines */ 1131 /* MT352 is on a secondary I2C bus made from some GPIO lines */
1126 fe0->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config, 1132 fe0->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config,
1127 &dev->vp3054->adap); 1133 &dev->vp3054->adap);
@@ -1466,9 +1472,12 @@ static int dvb_register(struct cx8802_dev *dev)
1466 fe0->dvb.frontend = dvb_attach(ds3000_attach, 1472 fe0->dvb.frontend = dvb_attach(ds3000_attach,
1467 &tevii_ds3000_config, 1473 &tevii_ds3000_config,
1468 &core->i2c_adap); 1474 &core->i2c_adap);
1469 if (fe0->dvb.frontend != NULL) 1475 if (fe0->dvb.frontend != NULL) {
1476 dvb_attach(ts2020_attach, fe0->dvb.frontend,
1477 &tevii_ts2020_config, &core->i2c_adap);
1470 fe0->dvb.frontend->ops.set_voltage = 1478 fe0->dvb.frontend->ops.set_voltage =
1471 tevii_dvbs_set_voltage; 1479 tevii_dvbs_set_voltage;
1480 }
1472 break; 1481 break;
1473 case CX88_BOARD_OMICOM_SS4_PCI: 1482 case CX88_BOARD_OMICOM_SS4_PCI:
1474 case CX88_BOARD_TBS_8920: 1483 case CX88_BOARD_TBS_8920:
diff --git a/drivers/media/pci/cx88/cx88-i2c.c b/drivers/media/pci/cx88/cx88-i2c.c
index de0f1af74e41..cf2d69615838 100644
--- a/drivers/media/pci/cx88/cx88-i2c.c
+++ b/drivers/media/pci/cx88/cx88-i2c.c
@@ -139,8 +139,7 @@ int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci)
139 if (i2c_udelay<5) 139 if (i2c_udelay<5)
140 i2c_udelay=5; 140 i2c_udelay=5;
141 141
142 memcpy(&core->i2c_algo, &cx8800_i2c_algo_template, 142 core->i2c_algo = cx8800_i2c_algo_template;
143 sizeof(core->i2c_algo));
144 143
145 144
146 core->i2c_adap.dev.parent = &pci->dev; 145 core->i2c_adap.dev.parent = &pci->dev;
diff --git a/drivers/media/pci/cx88/cx88-vp3054-i2c.c b/drivers/media/pci/cx88/cx88-vp3054-i2c.c
index d77f8ecab9d7..deede6e25d94 100644
--- a/drivers/media/pci/cx88/cx88-vp3054-i2c.c
+++ b/drivers/media/pci/cx88/cx88-vp3054-i2c.c
@@ -118,8 +118,7 @@ int vp3054_i2c_probe(struct cx8802_dev *dev)
118 return -ENOMEM; 118 return -ENOMEM;
119 dev->vp3054 = vp3054_i2c; 119 dev->vp3054 = vp3054_i2c;
120 120
121 memcpy(&vp3054_i2c->algo, &vp3054_i2c_algo_template, 121 vp3054_i2c->algo = vp3054_i2c_algo_template;
122 sizeof(vp3054_i2c->algo));
123 122
124 vp3054_i2c->adap.dev.parent = &dev->pci->dev; 123 vp3054_i2c->adap.dev.parent = &dev->pci->dev;
125 strlcpy(vp3054_i2c->adap.name, core->name, 124 strlcpy(vp3054_i2c->adap.name, core->name,
diff --git a/drivers/media/pci/cx88/cx88-vp3054-i2c.h b/drivers/media/pci/cx88/cx88-vp3054-i2c.h
index be99c931dc3e..95d0c60a35e1 100644
--- a/drivers/media/pci/cx88/cx88-vp3054-i2c.h
+++ b/drivers/media/pci/cx88/cx88-vp3054-i2c.h
@@ -30,7 +30,7 @@ struct vp3054_i2c_state {
30}; 30};
31 31
32/* ----------------------------------------------------------------------- */ 32/* ----------------------------------------------------------------------- */
33#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) 33#if IS_ENABLED(CONFIG_VIDEO_CX88_VP3054)
34int vp3054_i2c_probe(struct cx8802_dev *dev); 34int vp3054_i2c_probe(struct cx8802_dev *dev);
35void vp3054_i2c_remove(struct cx8802_dev *dev); 35void vp3054_i2c_remove(struct cx8802_dev *dev);
36#else 36#else
diff --git a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h
index ba0dba4a4d22..feff53c0a251 100644
--- a/drivers/media/pci/cx88/cx88.h
+++ b/drivers/media/pci/cx88/cx88.h
@@ -363,7 +363,7 @@ struct cx88_core {
363 unsigned int tuner_formats; 363 unsigned int tuner_formats;
364 364
365 /* config info -- dvb */ 365 /* config info -- dvb */
366#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE) 366#if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
367 int (*prev_set_voltage)(struct dvb_frontend *fe, fe_sec_voltage_t voltage); 367 int (*prev_set_voltage)(struct dvb_frontend *fe, fe_sec_voltage_t voltage);
368#endif 368#endif
369 void (*gate_ctrl)(struct cx88_core *core, int open); 369 void (*gate_ctrl)(struct cx88_core *core, int open);
@@ -562,8 +562,7 @@ struct cx8802_dev {
562 562
563 /* for blackbird only */ 563 /* for blackbird only */
564 struct list_head devlist; 564 struct list_head devlist;
565#if defined(CONFIG_VIDEO_CX88_BLACKBIRD) || \ 565#if IS_ENABLED(CONFIG_VIDEO_CX88_BLACKBIRD)
566 defined(CONFIG_VIDEO_CX88_BLACKBIRD_MODULE)
567 struct video_device *mpeg_dev; 566 struct video_device *mpeg_dev;
568 u32 mailbox; 567 u32 mailbox;
569 int width; 568 int width;
@@ -574,13 +573,12 @@ struct cx8802_dev {
574 struct cx2341x_handler cxhdl; 573 struct cx2341x_handler cxhdl;
575#endif 574#endif
576 575
577#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE) 576#if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
578 /* for dvb only */ 577 /* for dvb only */
579 struct videobuf_dvb_frontends frontends; 578 struct videobuf_dvb_frontends frontends;
580#endif 579#endif
581 580
582#if defined(CONFIG_VIDEO_CX88_VP3054) || \ 581#if IS_ENABLED(CONFIG_VIDEO_CX88_VP3054)
583 defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
584 /* For VP3045 secondary I2C bus support */ 582 /* For VP3045 secondary I2C bus support */
585 struct vp3054_i2c_state *vp3054; 583 struct vp3054_i2c_state *vp3054;
586#endif 584#endif