diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-cards.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 065d0f6be4a0..53aae5968ffb 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include "tea5767.h" | 33 | #include "tea5767.h" |
34 | #include "tda18271.h" | 34 | #include "tda18271.h" |
35 | #include "xc5000.h" | 35 | #include "xc5000.h" |
36 | #include "s5h1411.h" | ||
36 | 37 | ||
37 | /* commly used strings */ | 38 | /* commly used strings */ |
38 | static char name_mute[] = "mute"; | 39 | static char name_mute[] = "mute"; |
@@ -5712,6 +5713,36 @@ struct saa7134_board saa7134_boards[] = { | |||
5712 | .amux = LINE1, | 5713 | .amux = LINE1, |
5713 | } }, | 5714 | } }, |
5714 | }, | 5715 | }, |
5716 | [SAA7134_BOARD_KWORLD_PC150U] = { | ||
5717 | .name = "Kworld PC150-U", | ||
5718 | .audio_clock = 0x00187de7, | ||
5719 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
5720 | .radio_type = UNSET, | ||
5721 | .tuner_addr = ADDR_UNSET, | ||
5722 | .radio_addr = ADDR_UNSET, | ||
5723 | .mpeg = SAA7134_MPEG_DVB, | ||
5724 | .gpiomask = 1 << 21, | ||
5725 | .ts_type = SAA7134_MPEG_TS_PARALLEL, | ||
5726 | .inputs = { { | ||
5727 | .name = name_tv, | ||
5728 | .vmux = 1, | ||
5729 | .amux = TV, | ||
5730 | .tv = 1, | ||
5731 | }, { | ||
5732 | .name = name_comp, | ||
5733 | .vmux = 3, | ||
5734 | .amux = LINE1, | ||
5735 | }, { | ||
5736 | .name = name_svideo, | ||
5737 | .vmux = 8, | ||
5738 | .amux = LINE2, | ||
5739 | } }, | ||
5740 | .radio = { | ||
5741 | .name = name_radio, | ||
5742 | .amux = TV, | ||
5743 | .gpio = 0x0000000, | ||
5744 | }, | ||
5745 | }, | ||
5715 | 5746 | ||
5716 | }; | 5747 | }; |
5717 | 5748 | ||
@@ -6306,6 +6337,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
6306 | .driver_data = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */ | 6337 | .driver_data = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */ |
6307 | },{ | 6338 | },{ |
6308 | .vendor = PCI_VENDOR_ID_PHILIPS, | 6339 | .vendor = PCI_VENDOR_ID_PHILIPS, |
6340 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */ | ||
6341 | .subvendor = 0x17de, | ||
6342 | .subdevice = 0xa134, | ||
6343 | .driver_data = SAA7134_BOARD_KWORLD_PC150U, | ||
6344 | }, { | ||
6345 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
6309 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 6346 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
6310 | .subvendor = 0x1461, | 6347 | .subvendor = 0x1461, |
6311 | .subdevice = 0x7360, | 6348 | .subdevice = 0x7360, |
@@ -7134,6 +7171,23 @@ static inline int saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev *dev, | |||
7134 | return 0; | 7171 | return 0; |
7135 | } | 7172 | } |
7136 | 7173 | ||
7174 | static int saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev *dev, | ||
7175 | enum tda18271_mode mode) | ||
7176 | { | ||
7177 | switch (mode) { | ||
7178 | case TDA18271_ANALOG: | ||
7179 | saa7134_set_gpio(dev, 18, 0); | ||
7180 | break; | ||
7181 | case TDA18271_DIGITAL: | ||
7182 | saa7134_set_gpio(dev, 18, 1); | ||
7183 | msleep(30); | ||
7184 | break; | ||
7185 | default: | ||
7186 | return -EINVAL; | ||
7187 | } | ||
7188 | return 0; | ||
7189 | } | ||
7190 | |||
7137 | static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev, | 7191 | static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev, |
7138 | int command, int arg) | 7192 | int command, int arg) |
7139 | { | 7193 | { |
@@ -7150,6 +7204,9 @@ static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev, | |||
7150 | case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG: | 7204 | case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG: |
7151 | ret = saa7134_kworld_sbtvd_toggle_agc(dev, arg); | 7205 | ret = saa7134_kworld_sbtvd_toggle_agc(dev, arg); |
7152 | break; | 7206 | break; |
7207 | case SAA7134_BOARD_KWORLD_PC150U: | ||
7208 | ret = saa7134_kworld_pc150u_toggle_agc(dev, arg); | ||
7209 | break; | ||
7153 | default: | 7210 | default: |
7154 | break; | 7211 | break; |
7155 | } | 7212 | } |
@@ -7171,6 +7228,7 @@ static int saa7134_tda8290_callback(struct saa7134_dev *dev, | |||
7171 | case SAA7134_BOARD_HAUPPAUGE_HVR1120: | 7228 | case SAA7134_BOARD_HAUPPAUGE_HVR1120: |
7172 | case SAA7134_BOARD_AVERMEDIA_M733A: | 7229 | case SAA7134_BOARD_AVERMEDIA_M733A: |
7173 | case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG: | 7230 | case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG: |
7231 | case SAA7134_BOARD_KWORLD_PC150U: | ||
7174 | case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2: | 7232 | case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2: |
7175 | /* tda8290 + tda18271 */ | 7233 | /* tda8290 + tda18271 */ |
7176 | ret = saa7134_tda8290_18271_callback(dev, command, arg); | 7234 | ret = saa7134_tda8290_18271_callback(dev, command, arg); |
@@ -7452,6 +7510,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
7452 | case SAA7134_BOARD_BEHOLD_X7: | 7510 | case SAA7134_BOARD_BEHOLD_X7: |
7453 | case SAA7134_BOARD_BEHOLD_H7: | 7511 | case SAA7134_BOARD_BEHOLD_H7: |
7454 | case SAA7134_BOARD_BEHOLD_A7: | 7512 | case SAA7134_BOARD_BEHOLD_A7: |
7513 | case SAA7134_BOARD_KWORLD_PC150U: | ||
7455 | dev->has_remote = SAA7134_REMOTE_I2C; | 7514 | dev->has_remote = SAA7134_REMOTE_I2C; |
7456 | break; | 7515 | break; |
7457 | case SAA7134_BOARD_AVERMEDIA_A169_B: | 7516 | case SAA7134_BOARD_AVERMEDIA_A169_B: |