diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-cards.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index 65e9d8096b74..e61102dc8ad7 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -885,6 +885,12 @@ struct cx88_board cx88_boards[] = { | |||
885 | .input = {{ | 885 | .input = {{ |
886 | .type = CX88_VMUX_DVB, | 886 | .type = CX88_VMUX_DVB, |
887 | .vmux = 0, | 887 | .vmux = 0, |
888 | },{ | ||
889 | .type = CX88_VMUX_COMPOSITE1, | ||
890 | .vmux = 1, | ||
891 | },{ | ||
892 | .type = CX88_VMUX_SVIDEO, | ||
893 | .vmux = 2, | ||
888 | }}, | 894 | }}, |
889 | .mpeg = CX88_MPEG_DVB, | 895 | .mpeg = CX88_MPEG_DVB, |
890 | }, | 896 | }, |
@@ -1537,10 +1543,10 @@ struct cx88_subid cx88_subids[] = { | |||
1537 | },{ | 1543 | },{ |
1538 | .subvendor = 0x17de, | 1544 | .subvendor = 0x17de, |
1539 | .subdevice = 0x0840, | 1545 | .subdevice = 0x0840, |
1540 | .card = CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT, | 1546 | .card = CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT, |
1541 | },{ | 1547 | },{ |
1542 | .subvendor = 0x1421, | 1548 | .subvendor = 0x1421, |
1543 | .subdevice = 0x0305, | 1549 | .subdevice = 0x0305, |
1544 | .card = CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT, | 1550 | .card = CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT, |
1545 | },{ | 1551 | },{ |
1546 | .subvendor = 0x18ac, | 1552 | .subvendor = 0x18ac, |
@@ -1631,6 +1637,10 @@ struct cx88_subid cx88_subids[] = { | |||
1631 | .subvendor = 0x0070, | 1637 | .subvendor = 0x0070, |
1632 | .subdevice = 0x1402, | 1638 | .subdevice = 0x1402, |
1633 | .card = CX88_BOARD_HAUPPAUGE_HVR3000, | 1639 | .card = CX88_BOARD_HAUPPAUGE_HVR3000, |
1640 | },{ | ||
1641 | .subvendor = 0x1421, | ||
1642 | .subdevice = 0x0341, /* ADS Tech InstantTV DVB-S */ | ||
1643 | .card = CX88_BOARD_KWORLD_DVBS_100, | ||
1634 | }, | 1644 | }, |
1635 | }; | 1645 | }; |
1636 | const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); | 1646 | const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); |
@@ -1786,7 +1796,7 @@ static void dvico_fusionhdtv_hybrid_init(struct cx88_core *core) | |||
1786 | { 0x03, 0x0C }, | 1796 | { 0x03, 0x0C }, |
1787 | }; | 1797 | }; |
1788 | 1798 | ||
1789 | for (i = 0; i < 13; i++) { | 1799 | for (i = 0; i < ARRAY_SIZE(init_bufs); i++) { |
1790 | msg.buf = init_bufs[i]; | 1800 | msg.buf = init_bufs[i]; |
1791 | msg.len = (i != 12 ? 5 : 2); | 1801 | msg.len = (i != 12 ? 5 : 2); |
1792 | err = i2c_transfer(&core->i2c_adap, &msg, 1); | 1802 | err = i2c_transfer(&core->i2c_adap, &msg, 1); |
@@ -1913,12 +1923,21 @@ void cx88_card_setup(struct cx88_core *core) | |||
1913 | if (0 == core->i2c_rc) { | 1923 | if (0 == core->i2c_rc) { |
1914 | /* enable tuner */ | 1924 | /* enable tuner */ |
1915 | int i; | 1925 | int i; |
1916 | static const u8 buffer [] = { 0x10,0x12,0x13,0x04,0x16,0x00,0x14,0x04,0x017,0x00 }; | 1926 | static const u8 buffer [][2] = { |
1927 | {0x10,0x12}, | ||
1928 | {0x13,0x04}, | ||
1929 | {0x16,0x00}, | ||
1930 | {0x14,0x04}, | ||
1931 | {0x17,0x00} | ||
1932 | }; | ||
1917 | core->i2c_client.addr = 0x0a; | 1933 | core->i2c_client.addr = 0x0a; |
1918 | 1934 | ||
1919 | for (i = 0; i < 5; i++) | 1935 | for (i = 0; i < ARRAY_SIZE(buffer); i++) |
1920 | if (2 != i2c_master_send(&core->i2c_client,&buffer[i*2],2)) | 1936 | if (2 != i2c_master_send(&core->i2c_client, |
1921 | printk(KERN_WARNING "%s: Unable to enable tuner(%i).\n", | 1937 | buffer[i],2)) |
1938 | printk(KERN_WARNING | ||
1939 | "%s: Unable to enable " | ||
1940 | "tuner(%i).\n", | ||
1922 | core->name, i); | 1941 | core->name, i); |
1923 | } | 1942 | } |
1924 | break; | 1943 | break; |