aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorremi schwartz <remi.schwartz@gmail.com>2012-05-19 05:11:47 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-20 15:05:02 -0400
commit75c7dbcab43865ea247747ffbf5ab48da75ba5ce (patch)
tree56e56a7f284dfe2821a4a71f273f772dc7992c45 /drivers/media/video
parent711e1bfb5b7e77e5317b25fc5a2faf3d47cf5d7b (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.c51
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c39
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c7
-rw-r--r--drivers/media/video/saa7134/saa7134.h1
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
884static 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