diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dw2102.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dw2102.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c index 6286fbbe7fb5..c65f273ff313 100644 --- a/drivers/media/dvb/dvb-usb/dw2102.c +++ b/drivers/media/dvb/dvb-usb/dw2102.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | * see Documentation/dvb/README.dvb-usb for more information | 10 | * see Documentation/dvb/README.dvb-usb for more information |
11 | */ | 11 | */ |
12 | #include <linux/version.h> | ||
13 | #include "dw2102.h" | 12 | #include "dw2102.h" |
14 | #include "si21xx.h" | 13 | #include "si21xx.h" |
15 | #include "stv0299.h" | 14 | #include "stv0299.h" |
@@ -27,6 +26,10 @@ | |||
27 | #define USB_PID_DW2104 0x2104 | 26 | #define USB_PID_DW2104 0x2104 |
28 | #endif | 27 | #endif |
29 | 28 | ||
29 | #ifndef USB_PID_CINERGY_S | ||
30 | #define USB_PID_CINERGY_S 0x0064 | ||
31 | #endif | ||
32 | |||
30 | #define DW210X_READ_MSG 0 | 33 | #define DW210X_READ_MSG 0 |
31 | #define DW210X_WRITE_MSG 1 | 34 | #define DW210X_WRITE_MSG 1 |
32 | 35 | ||
@@ -578,6 +581,7 @@ static struct usb_device_id dw2102_table[] = { | |||
578 | {USB_DEVICE(USB_VID_CYPRESS, 0x2101)}, | 581 | {USB_DEVICE(USB_VID_CYPRESS, 0x2101)}, |
579 | {USB_DEVICE(USB_VID_CYPRESS, 0x2104)}, | 582 | {USB_DEVICE(USB_VID_CYPRESS, 0x2104)}, |
580 | {USB_DEVICE(0x9022, 0xd650)}, | 583 | {USB_DEVICE(0x9022, 0xd650)}, |
584 | {USB_DEVICE(USB_VID_TERRATEC, USB_PID_CINERGY_S)}, | ||
581 | { } | 585 | { } |
582 | }; | 586 | }; |
583 | 587 | ||
@@ -647,6 +651,7 @@ static int dw2102_load_firmware(struct usb_device *dev, | |||
647 | dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0, | 651 | dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0, |
648 | DW210X_WRITE_MSG); | 652 | DW210X_WRITE_MSG); |
649 | break; | 653 | break; |
654 | case USB_PID_CINERGY_S: | ||
650 | case USB_PID_DW2102: | 655 | case USB_PID_DW2102: |
651 | dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0, | 656 | dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0, |
652 | DW210X_WRITE_MSG); | 657 | DW210X_WRITE_MSG); |
@@ -655,7 +660,7 @@ static int dw2102_load_firmware(struct usb_device *dev, | |||
655 | /* check STV0299 frontend */ | 660 | /* check STV0299 frontend */ |
656 | dw210x_op_rw(dev, 0xb5, 0, 0, &reset16[0], 2, | 661 | dw210x_op_rw(dev, 0xb5, 0, 0, &reset16[0], 2, |
657 | DW210X_READ_MSG); | 662 | DW210X_READ_MSG); |
658 | if (reset16[0] == 0xa1) { | 663 | if ((reset16[0] == 0xa1) || (reset16[0] == 0x80)) { |
659 | dw2102_properties.i2c_algo = &dw2102_i2c_algo; | 664 | dw2102_properties.i2c_algo = &dw2102_i2c_algo; |
660 | dw2102_properties.adapter->tuner_attach = &dw2102_tuner_attach; | 665 | dw2102_properties.adapter->tuner_attach = &dw2102_tuner_attach; |
661 | break; | 666 | break; |
@@ -726,7 +731,7 @@ static struct dvb_usb_device_properties dw2102_properties = { | |||
726 | }, | 731 | }, |
727 | } | 732 | } |
728 | }, | 733 | }, |
729 | .num_device_descs = 2, | 734 | .num_device_descs = 3, |
730 | .devices = { | 735 | .devices = { |
731 | {"DVBWorld DVB-S 2102 USB2.0", | 736 | {"DVBWorld DVB-S 2102 USB2.0", |
732 | {&dw2102_table[0], NULL}, | 737 | {&dw2102_table[0], NULL}, |
@@ -736,6 +741,10 @@ static struct dvb_usb_device_properties dw2102_properties = { | |||
736 | {&dw2102_table[1], NULL}, | 741 | {&dw2102_table[1], NULL}, |
737 | {NULL}, | 742 | {NULL}, |
738 | }, | 743 | }, |
744 | {"TerraTec Cinergy S USB", | ||
745 | {&dw2102_table[4], NULL}, | ||
746 | {NULL}, | ||
747 | }, | ||
739 | } | 748 | } |
740 | }; | 749 | }; |
741 | 750 | ||