diff options
Diffstat (limited to 'drivers/media/video/saa7134')
-rw-r--r-- | drivers/media/video/saa7134/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/saa7134/Makefile | 6 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 66 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-core.c | 3 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 4 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
6 files changed, 74 insertions, 7 deletions
diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig index 86671a43e769..e1c1805df1fb 100644 --- a/drivers/media/video/saa7134/Kconfig +++ b/drivers/media/video/saa7134/Kconfig | |||
@@ -39,6 +39,7 @@ config VIDEO_SAA7134_DVB | |||
39 | tristate "DVB/ATSC Support for saa7134 based TV cards" | 39 | tristate "DVB/ATSC Support for saa7134 based TV cards" |
40 | depends on VIDEO_SAA7134 && DVB_CORE | 40 | depends on VIDEO_SAA7134 && DVB_CORE |
41 | select VIDEO_BUF_DVB | 41 | select VIDEO_BUF_DVB |
42 | select FW_LOADER | ||
42 | ---help--- | 43 | ---help--- |
43 | This adds support for DVB cards based on the | 44 | This adds support for DVB cards based on the |
44 | Philips saa7134 chip. | 45 | Philips saa7134 chip. |
diff --git a/drivers/media/video/saa7134/Makefile b/drivers/media/video/saa7134/Makefile index 1ba998424bbd..be7b9ee697d6 100644 --- a/drivers/media/video/saa7134/Makefile +++ b/drivers/media/video/saa7134/Makefile | |||
@@ -11,9 +11,9 @@ obj-$(CONFIG_VIDEO_SAA7134_OSS) += saa7134-oss.o | |||
11 | 11 | ||
12 | obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o | 12 | obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o |
13 | 13 | ||
14 | EXTRA_CFLAGS += -I$(src)/.. | 14 | EXTRA_CFLAGS += -Idrivers/media/video |
15 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core | 15 | EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core |
16 | EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends | 16 | EXTRA_CFLAGS += -Idrivers/media/dvb/frontends |
17 | 17 | ||
18 | extra-cflags-$(CONFIG_VIDEO_BUF_DVB) += -DHAVE_VIDEO_BUF_DVB=1 | 18 | extra-cflags-$(CONFIG_VIDEO_BUF_DVB) += -DHAVE_VIDEO_BUF_DVB=1 |
19 | extra-cflags-$(CONFIG_DVB_MT352) += -DHAVE_MT352=1 | 19 | extra-cflags-$(CONFIG_DVB_MT352) += -DHAVE_MT352=1 |
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index fdd7f48f3b76..e666a4465ca4 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -208,7 +208,7 @@ struct saa7134_board saa7134_boards[] = { | |||
208 | [SAA7134_BOARD_FLYTVPLATINUM_FM] = { | 208 | [SAA7134_BOARD_FLYTVPLATINUM_FM] = { |
209 | /* LifeView FlyTV Platinum FM (LR214WF) */ | 209 | /* LifeView FlyTV Platinum FM (LR214WF) */ |
210 | /* "Peter Missel <peter.missel@onlinehome.de> */ | 210 | /* "Peter Missel <peter.missel@onlinehome.de> */ |
211 | .name = "LifeView FlyTV Platinum FM", | 211 | .name = "LifeView FlyTV Platinum FM / Gold", |
212 | .audio_clock = 0x00200000, | 212 | .audio_clock = 0x00200000, |
213 | .tuner_type = TUNER_PHILIPS_TDA8290, | 213 | .tuner_type = TUNER_PHILIPS_TDA8290, |
214 | .radio_type = UNSET, | 214 | .radio_type = UNSET, |
@@ -2660,7 +2660,7 @@ struct saa7134_board saa7134_boards[] = { | |||
2660 | .mpeg = SAA7134_MPEG_DVB, | 2660 | .mpeg = SAA7134_MPEG_DVB, |
2661 | .inputs = {{ | 2661 | .inputs = {{ |
2662 | .name = name_comp1, | 2662 | .name = name_comp1, |
2663 | .vmux = 0, | 2663 | .vmux = 1, |
2664 | .amux = LINE1, | 2664 | .amux = LINE1, |
2665 | },{ | 2665 | },{ |
2666 | .name = name_svideo, | 2666 | .name = name_svideo, |
@@ -2671,7 +2671,7 @@ struct saa7134_board saa7134_boards[] = { | |||
2671 | [SAA7134_BOARD_FLYDVBT_LR301] = { | 2671 | [SAA7134_BOARD_FLYDVBT_LR301] = { |
2672 | /* LifeView FlyDVB-T */ | 2672 | /* LifeView FlyDVB-T */ |
2673 | /* Giampiero Giancipoli <gianci@libero.it> */ | 2673 | /* Giampiero Giancipoli <gianci@libero.it> */ |
2674 | .name = "LifeView FlyDVB-T", | 2674 | .name = "LifeView FlyDVB-T / Genius VideoWonder DVB-T", |
2675 | .audio_clock = 0x00200000, | 2675 | .audio_clock = 0x00200000, |
2676 | .tuner_type = TUNER_ABSENT, | 2676 | .tuner_type = TUNER_ABSENT, |
2677 | .radio_type = UNSET, | 2677 | .radio_type = UNSET, |
@@ -2808,6 +2808,40 @@ struct saa7134_board saa7134_boards[] = { | |||
2808 | .tuner_addr = ADDR_UNSET, | 2808 | .tuner_addr = ADDR_UNSET, |
2809 | .radio_addr = ADDR_UNSET, | 2809 | .radio_addr = ADDR_UNSET, |
2810 | }, | 2810 | }, |
2811 | [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = { | ||
2812 | .name = "LifeView FlyDVB-T Hybrid Cardbus", | ||
2813 | .audio_clock = 0x00200000, | ||
2814 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2815 | .radio_type = UNSET, | ||
2816 | .tuner_addr = ADDR_UNSET, | ||
2817 | .radio_addr = ADDR_UNSET, | ||
2818 | .mpeg = SAA7134_MPEG_DVB, | ||
2819 | .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */ | ||
2820 | .inputs = {{ | ||
2821 | .name = name_tv, | ||
2822 | .vmux = 1, | ||
2823 | .amux = TV, | ||
2824 | .gpio = 0x200000, /* GPIO21=High for TV input */ | ||
2825 | .tv = 1, | ||
2826 | },{ | ||
2827 | .name = name_svideo, /* S-Video signal on S-Video input */ | ||
2828 | .vmux = 8, | ||
2829 | .amux = LINE2, | ||
2830 | },{ | ||
2831 | .name = name_comp1, /* Composite signal on S-Video input */ | ||
2832 | .vmux = 0, | ||
2833 | .amux = LINE2, | ||
2834 | },{ | ||
2835 | .name = name_comp2, /* Composite input */ | ||
2836 | .vmux = 3, | ||
2837 | .amux = LINE2, | ||
2838 | }}, | ||
2839 | .radio = { | ||
2840 | .name = name_radio, | ||
2841 | .amux = TV, | ||
2842 | .gpio = 0x000000, /* GPIO21=Low for FM radio antenna */ | ||
2843 | }, | ||
2844 | }, | ||
2811 | }; | 2845 | }; |
2812 | 2846 | ||
2813 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2847 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -3333,6 +3367,30 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
3333 | .subdevice = 0x0005, | 3367 | .subdevice = 0x0005, |
3334 | .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2, | 3368 | .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2, |
3335 | },{ | 3369 | },{ |
3370 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3371 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
3372 | .subvendor = 0x1489, | ||
3373 | .subdevice = 0x0301, | ||
3374 | .driver_data = SAA7134_BOARD_FLYDVBT_LR301, | ||
3375 | },{ | ||
3376 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3377 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3378 | .subvendor = 0x5168, /* Animation Technologies (LifeView) */ | ||
3379 | .subdevice = 0x0304, | ||
3380 | .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM, | ||
3381 | },{ | ||
3382 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3383 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3384 | .subvendor = 0x5168, | ||
3385 | .subdevice = 0x3306, | ||
3386 | .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS, | ||
3387 | },{ | ||
3388 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3389 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3390 | .subvendor = 0x5168, | ||
3391 | .subdevice = 0x3502, /* whats the difference to 0x3306 ?*/ | ||
3392 | .driver_data = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS, | ||
3393 | },{ | ||
3336 | /* --- boards without eeprom + subsystem ID --- */ | 3394 | /* --- boards without eeprom + subsystem ID --- */ |
3337 | .vendor = PCI_VENDOR_ID_PHILIPS, | 3395 | .vendor = PCI_VENDOR_ID_PHILIPS, |
3338 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 3396 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -3462,6 +3520,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3462 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); | 3520 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); |
3463 | break; | 3521 | break; |
3464 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | 3522 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: |
3523 | case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS: | ||
3465 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | 3524 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); |
3466 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00); | 3525 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00); |
3467 | break; | 3526 | break; |
@@ -3633,6 +3692,7 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
3633 | } | 3692 | } |
3634 | break; | 3693 | break; |
3635 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | 3694 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: |
3695 | case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS: | ||
3636 | /* make the tda10046 find its eeprom */ | 3696 | /* make the tda10046 find its eeprom */ |
3637 | { | 3697 | { |
3638 | u8 data[] = { 0x3c, 0x33, 0x62}; | 3698 | u8 data[] = { 0x3c, 0x33, 0x62}; |
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index c98571c9d5a6..13de05532e0a 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/interrupt.h> | 32 | #include <linux/interrupt.h> |
33 | #include <linux/delay.h> | 33 | #include <linux/delay.h> |
34 | #include <linux/mutex.h> | 34 | #include <linux/mutex.h> |
35 | #include <linux/dma-mapping.h> | ||
35 | 36 | ||
36 | #include "saa7134-reg.h" | 37 | #include "saa7134-reg.h" |
37 | #include "saa7134.h" | 38 | #include "saa7134.h" |
@@ -870,7 +871,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
870 | pci_name(pci_dev), dev->pci_rev, pci_dev->irq, | 871 | pci_name(pci_dev), dev->pci_rev, pci_dev->irq, |
871 | dev->pci_lat,pci_resource_start(pci_dev,0)); | 872 | dev->pci_lat,pci_resource_start(pci_dev,0)); |
872 | pci_set_master(pci_dev); | 873 | pci_set_master(pci_dev); |
873 | if (!pci_dma_supported(pci_dev,0xffffffff)) { | 874 | if (!pci_dma_supported(pci_dev, DMA_32BIT_MASK)) { |
874 | printk("%s: Oops: no 32bit PCI DMA ???\n",dev->name); | 875 | printk("%s: Oops: no 32bit PCI DMA ???\n",dev->name); |
875 | err = -EIO; | 876 | err = -EIO; |
876 | goto fail1; | 877 | goto fail1; |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index 86cfdb8514cb..222a36c38917 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -1064,6 +1064,10 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1064 | dev->dvb.frontend = tda10046_attach(&tevion_dvbt220rf_config, | 1064 | dev->dvb.frontend = tda10046_attach(&tevion_dvbt220rf_config, |
1065 | &dev->i2c_adap); | 1065 | &dev->i2c_adap); |
1066 | break; | 1066 | break; |
1067 | case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS: | ||
1068 | dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config, | ||
1069 | &dev->i2c_adap); | ||
1070 | break; | ||
1067 | #endif | 1071 | #endif |
1068 | #ifdef HAVE_NXT200X | 1072 | #ifdef HAVE_NXT200X |
1069 | case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: | 1073 | case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 31ba293854c1..353af3a8b766 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -220,6 +220,7 @@ struct saa7134_format { | |||
220 | #define SAA7134_BOARD_AVERMEDIA_A169_B 91 | 220 | #define SAA7134_BOARD_AVERMEDIA_A169_B 91 |
221 | #define SAA7134_BOARD_AVERMEDIA_A169_B1 92 | 221 | #define SAA7134_BOARD_AVERMEDIA_A169_B1 92 |
222 | #define SAA7134_BOARD_MD7134_BRIDGE_2 93 | 222 | #define SAA7134_BOARD_MD7134_BRIDGE_2 93 |
223 | #define SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS 94 | ||
223 | 224 | ||
224 | #define SAA7134_MAXBOARDS 8 | 225 | #define SAA7134_MAXBOARDS 8 |
225 | #define SAA7134_INPUT_MAX 8 | 226 | #define SAA7134_INPUT_MAX 8 |