diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-24 20:35:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-24 20:35:10 -0500 |
commit | 21fbd5809ad126b949206d78e0a0e07ec872ea11 (patch) | |
tree | a824045df99fc1f0690095a925cceb50207e332b /drivers/media/pci/cx88 | |
parent | d9978ec5680059d727b39d6c706777c6973587f2 (diff) | |
parent | ed72d37a33fdf43dc47787fe220532cdec9da528 (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/Kconfig | 2 | ||||
-rw-r--r-- | drivers/media/pci/cx88/Makefile | 1 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88-cards.c | 2 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88-core.c | 2 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88-dvb.c | 15 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88-i2c.c | 3 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88-vp3054-i2c.c | 3 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88-vp3054-i2c.h | 2 | ||||
-rw-r--r-- | drivers/media/pci/cx88/cx88.h | 10 |
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 | |||
11 | obj-$(CONFIG_VIDEO_CX88_VP3054) += cx88-vp3054-i2c.o | 11 | obj-$(CONFIG_VIDEO_CX88_VP3054) += cx88-vp3054-i2c.o |
12 | 12 | ||
13 | ccflags-y += -Idrivers/media/i2c | 13 | ccflags-y += -Idrivers/media/i2c |
14 | ccflags-y += -Idrivers/media/common | ||
14 | ccflags-y += -Idrivers/media/tuners | 15 | ccflags-y += -Idrivers/media/tuners |
15 | ccflags-y += -Idrivers/media/dvb-core | 16 | ccflags-y += -Idrivers/media/dvb-core |
16 | ccflags-y += -Idrivers/media/dvb-frontends | 17 | ccflags-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 | ||
63 | MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); | 64 | MODULE_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) |
268 | static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe) | 269 | static 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 | ||
704 | static struct ts2020_config tevii_ts2020_config = { | ||
705 | .tuner_address = 0x60, | ||
706 | .clk_out_div = 1, | ||
707 | }; | ||
708 | |||
703 | static const struct stv0900_config prof_7301_stv0900_config = { | 709 | static 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) |
34 | int vp3054_i2c_probe(struct cx8802_dev *dev); | 34 | int vp3054_i2c_probe(struct cx8802_dev *dev); |
35 | void vp3054_i2c_remove(struct cx8802_dev *dev); | 35 | void 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 |