diff options
author | remi schwartz <remi.schwartz@gmail.com> | 2012-05-19 05:11:47 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-05-20 15:05:02 -0400 |
commit | 75c7dbcab43865ea247747ffbf5ab48da75ba5ce (patch) | |
tree | 56e56a7f284dfe2821a4a71f273f772dc7992c45 /drivers/media/video | |
parent | 711e1bfb5b7e77e5317b25fc5a2faf3d47cf5d7b (diff) |
[media] patch for Asus My Cinema PS3-100 (1043:48cd)
Signed-off-by: Remi Schwartz <remi.schwartz@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 51 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 39 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 7 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
4 files changed, 98 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 53aae5968ffb..0d3cfcf7a1fd 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -5080,6 +5080,36 @@ struct saa7134_board saa7134_boards[] = { | |||
5080 | .gpio = 0x0200000, | 5080 | .gpio = 0x0200000, |
5081 | }, | 5081 | }, |
5082 | }, | 5082 | }, |
5083 | [SAA7134_BOARD_ASUSTeK_PS3_100] = { | ||
5084 | .name = "Asus My Cinema PS3-100", | ||
5085 | .audio_clock = 0x00187de7, | ||
5086 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
5087 | .radio_type = UNSET, | ||
5088 | .tuner_addr = ADDR_UNSET, | ||
5089 | .radio_addr = ADDR_UNSET, | ||
5090 | .tuner_config = 2, | ||
5091 | .gpiomask = 1 << 21, | ||
5092 | .mpeg = SAA7134_MPEG_DVB, | ||
5093 | .inputs = {{ | ||
5094 | .name = name_tv, | ||
5095 | .vmux = 1, | ||
5096 | .amux = TV, | ||
5097 | .tv = 1, | ||
5098 | }, { | ||
5099 | .name = name_comp, | ||
5100 | .vmux = 0, | ||
5101 | .amux = LINE2, | ||
5102 | }, { | ||
5103 | .name = name_svideo, | ||
5104 | .vmux = 8, | ||
5105 | .amux = LINE2, | ||
5106 | } }, | ||
5107 | .radio = { | ||
5108 | .name = name_radio, | ||
5109 | .amux = TV, | ||
5110 | .gpio = 0x0200000, | ||
5111 | }, | ||
5112 | }, | ||
5083 | [SAA7134_BOARD_REAL_ANGEL_220] = { | 5113 | [SAA7134_BOARD_REAL_ANGEL_220] = { |
5084 | .name = "Zogis Real Angel 220", | 5114 | .name = "Zogis Real Angel 220", |
5085 | .audio_clock = 0x00187de7, | 5115 | .audio_clock = 0x00187de7, |
@@ -6877,6 +6907,18 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
6877 | .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, | 6907 | .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, |
6878 | }, { | 6908 | }, { |
6879 | .vendor = PCI_VENDOR_ID_PHILIPS, | 6909 | .vendor = PCI_VENDOR_ID_PHILIPS, |
6910 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
6911 | .subvendor = 0x1043, | ||
6912 | .subdevice = 0x48cd, | ||
6913 | .driver_data = SAA7134_BOARD_ASUSTeK_PS3_100, | ||
6914 | }, { | ||
6915 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
6916 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | ||
6917 | .subvendor = 0x17de, | ||
6918 | .subdevice = 0x7128, | ||
6919 | .driver_data = SAA7134_BOARD_ASUSTeK_TIGER_3IN1, | ||
6920 | }, { | ||
6921 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
6880 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 6922 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
6881 | .subvendor = 0x17de, | 6923 | .subvendor = 0x17de, |
6882 | .subdevice = 0x7128, | 6924 | .subdevice = 0x7128, |
@@ -7347,6 +7389,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
7347 | case SAA7134_BOARD_KWORLD_TERMINATOR: | 7389 | case SAA7134_BOARD_KWORLD_TERMINATOR: |
7348 | case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: | 7390 | case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: |
7349 | case SAA7134_BOARD_FLYDVBT_LR301: | 7391 | case SAA7134_BOARD_FLYDVBT_LR301: |
7392 | case SAA7134_BOARD_ASUSTeK_PS3_100: | ||
7350 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: | 7393 | case SAA7134_BOARD_ASUSTeK_P7131_DUAL: |
7351 | case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: | 7394 | case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA: |
7352 | case SAA7134_BOARD_ASUSTeK_P7131_ANALOG: | 7395 | case SAA7134_BOARD_ASUSTeK_P7131_ANALOG: |
@@ -7811,6 +7854,14 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
7811 | i2c_transfer(&dev->i2c_adap, &msg, 1); | 7854 | i2c_transfer(&dev->i2c_adap, &msg, 1); |
7812 | break; | 7855 | break; |
7813 | } | 7856 | } |
7857 | case SAA7134_BOARD_ASUSTeK_PS3_100: | ||
7858 | { | ||
7859 | u8 data[] = { 0x3c, 0x33, 0x60}; | ||
7860 | struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data, | ||
7861 | .len = sizeof(data)}; | ||
7862 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
7863 | break; | ||
7864 | } | ||
7814 | case SAA7134_BOARD_FLYDVB_TRIO: | 7865 | case SAA7134_BOARD_FLYDVB_TRIO: |
7815 | { | 7866 | { |
7816 | u8 temp = 0; | 7867 | u8 temp = 0; |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index aaa5c97a7216..5dfd826d734e 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -881,6 +881,20 @@ static struct tda1004x_config asus_tiger_3in1_config = { | |||
881 | .request_firmware = philips_tda1004x_request_firmware | 881 | .request_firmware = philips_tda1004x_request_firmware |
882 | }; | 882 | }; |
883 | 883 | ||
884 | static struct tda1004x_config asus_ps3_100_config = { | ||
885 | .demod_address = 0x0b, | ||
886 | .invert = 1, | ||
887 | .invert_oclk = 0, | ||
888 | .xtal_freq = TDA10046_XTAL_16M, | ||
889 | .agc_config = TDA10046_AGC_TDA827X, | ||
890 | .gpio_config = TDA10046_GP11_I, | ||
891 | .if_freq = TDA10046_FREQ_045, | ||
892 | .i2c_gate = 0x4b, | ||
893 | .tuner_address = 0x61, | ||
894 | .antenna_switch = 1, | ||
895 | .request_firmware = philips_tda1004x_request_firmware | ||
896 | }; | ||
897 | |||
884 | /* ------------------------------------------------------------------ | 898 | /* ------------------------------------------------------------------ |
885 | * special case: this card uses saa713x GPIO22 for the mode switch | 899 | * special case: this card uses saa713x GPIO22 for the mode switch |
886 | */ | 900 | */ |
@@ -1647,6 +1661,31 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1647 | &dev->i2c_adap, 0, 0) == NULL) { | 1661 | &dev->i2c_adap, 0, 0) == NULL) { |
1648 | wprintk("%s: Asus Tiger 3in1, no lnbp21" | 1662 | wprintk("%s: Asus Tiger 3in1, no lnbp21" |
1649 | " found!\n", __func__); | 1663 | " found!\n", __func__); |
1664 | goto dettach_frontend; | ||
1665 | } | ||
1666 | } | ||
1667 | } | ||
1668 | break; | ||
1669 | case SAA7134_BOARD_ASUSTeK_PS3_100: | ||
1670 | if (!use_frontend) { /* terrestrial */ | ||
1671 | if (configure_tda827x_fe(dev, &asus_ps3_100_config, | ||
1672 | &tda827x_cfg_2) < 0) | ||
1673 | goto dettach_frontend; | ||
1674 | } else { /* satellite */ | ||
1675 | fe0->dvb.frontend = dvb_attach(tda10086_attach, | ||
1676 | &flydvbs, &dev->i2c_adap); | ||
1677 | if (fe0->dvb.frontend) { | ||
1678 | if (dvb_attach(tda826x_attach, | ||
1679 | fe0->dvb.frontend, 0x60, | ||
1680 | &dev->i2c_adap, 0) == NULL) { | ||
1681 | wprintk("%s: Asus My Cinema PS3-100, no " | ||
1682 | "tda826x found!\n", __func__); | ||
1683 | goto dettach_frontend; | ||
1684 | } | ||
1685 | if (dvb_attach(lnbp21_attach, fe0->dvb.frontend, | ||
1686 | &dev->i2c_adap, 0, 0) == NULL) { | ||
1687 | wprintk("%s: Asus My Cinema PS3-100, no lnbp21" | ||
1688 | " found!\n", __func__); | ||
1650 | goto dettach_frontend; | 1689 | goto dettach_frontend; |
1651 | } | 1690 | } |
1652 | } | 1691 | } |
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index 48d2878699b7..05c6e217d8a7 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
@@ -753,6 +753,13 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
753 | mask_keycode = 0xffff; | 753 | mask_keycode = 0xffff; |
754 | raw_decode = true; | 754 | raw_decode = true; |
755 | break; | 755 | break; |
756 | case SAA7134_BOARD_ASUSTeK_PS3_100: | ||
757 | ir_codes = RC_MAP_ASUS_PS3_100; | ||
758 | mask_keydown = 0x0040000; | ||
759 | mask_keyup = 0x0040000; | ||
760 | mask_keycode = 0xffff; | ||
761 | raw_decode = true; | ||
762 | break; | ||
756 | case SAA7134_BOARD_ENCORE_ENLTV: | 763 | case SAA7134_BOARD_ENCORE_ENLTV: |
757 | case SAA7134_BOARD_ENCORE_ENLTV_FM: | 764 | case SAA7134_BOARD_ENCORE_ENLTV_FM: |
758 | ir_codes = RC_MAP_ENCORE_ENLTV; | 765 | ir_codes = RC_MAP_ENCORE_ENLTV; |
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index f625060e6a0f..89c8333736a2 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h | |||
@@ -332,6 +332,7 @@ struct saa7134_card_ir { | |||
332 | #define SAA7134_BOARD_BEHOLD_503FM 187 | 332 | #define SAA7134_BOARD_BEHOLD_503FM 187 |
333 | #define SAA7134_BOARD_SENSORAY811_911 188 | 333 | #define SAA7134_BOARD_SENSORAY811_911 188 |
334 | #define SAA7134_BOARD_KWORLD_PC150U 189 | 334 | #define SAA7134_BOARD_KWORLD_PC150U 189 |
335 | #define SAA7134_BOARD_ASUSTeK_PS3_100 190 | ||
335 | 336 | ||
336 | #define SAA7134_MAXBOARDS 32 | 337 | #define SAA7134_MAXBOARDS 32 |
337 | #define SAA7134_INPUT_MAX 8 | 338 | #define SAA7134_INPUT_MAX 8 |