diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb')
-rw-r--r-- | drivers/media/dvb/dvb-usb/cxusb.c | 54 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dtt200u.c | 47 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 2 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/vp702x-fe.c | 5 |
4 files changed, 105 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index a14e737ec848..7edd6362b9cc 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c | |||
@@ -233,6 +233,45 @@ static struct dvb_usb_rc_key dvico_mce_rc_keys[] = { | |||
233 | { 0xfe, 0x4e, KEY_POWER }, | 233 | { 0xfe, 0x4e, KEY_POWER }, |
234 | }; | 234 | }; |
235 | 235 | ||
236 | static struct dvb_usb_rc_key dvico_portable_rc_keys[] = { | ||
237 | { 0xfc, 0x02, KEY_SETUP }, /* Profile */ | ||
238 | { 0xfc, 0x43, KEY_POWER2 }, | ||
239 | { 0xfc, 0x06, KEY_EPG }, | ||
240 | { 0xfc, 0x5a, KEY_BACK }, | ||
241 | { 0xfc, 0x05, KEY_MENU }, | ||
242 | { 0xfc, 0x47, KEY_INFO }, | ||
243 | { 0xfc, 0x01, KEY_TAB }, | ||
244 | { 0xfc, 0x42, KEY_PREVIOUSSONG },/* Replay */ | ||
245 | { 0xfc, 0x49, KEY_VOLUMEUP }, | ||
246 | { 0xfc, 0x09, KEY_VOLUMEDOWN }, | ||
247 | { 0xfc, 0x54, KEY_CHANNELUP }, | ||
248 | { 0xfc, 0x0b, KEY_CHANNELDOWN }, | ||
249 | { 0xfc, 0x16, KEY_CAMERA }, | ||
250 | { 0xfc, 0x40, KEY_TUNER }, /* ATV/DTV */ | ||
251 | { 0xfc, 0x45, KEY_OPEN }, | ||
252 | { 0xfc, 0x19, KEY_1 }, | ||
253 | { 0xfc, 0x18, KEY_2 }, | ||
254 | { 0xfc, 0x1b, KEY_3 }, | ||
255 | { 0xfc, 0x1a, KEY_4 }, | ||
256 | { 0xfc, 0x58, KEY_5 }, | ||
257 | { 0xfc, 0x59, KEY_6 }, | ||
258 | { 0xfc, 0x15, KEY_7 }, | ||
259 | { 0xfc, 0x14, KEY_8 }, | ||
260 | { 0xfc, 0x17, KEY_9 }, | ||
261 | { 0xfc, 0x44, KEY_ANGLE }, /* Aspect */ | ||
262 | { 0xfc, 0x55, KEY_0 }, | ||
263 | { 0xfc, 0x07, KEY_ZOOM }, | ||
264 | { 0xfc, 0x0a, KEY_REWIND }, | ||
265 | { 0xfc, 0x08, KEY_PLAYPAUSE }, | ||
266 | { 0xfc, 0x4b, KEY_FASTFORWARD }, | ||
267 | { 0xfc, 0x5b, KEY_MUTE }, | ||
268 | { 0xfc, 0x04, KEY_STOP }, | ||
269 | { 0xfc, 0x56, KEY_RECORD }, | ||
270 | { 0xfc, 0x57, KEY_POWER }, | ||
271 | { 0xfc, 0x41, KEY_UNKNOWN }, /* INPUT */ | ||
272 | { 0xfc, 0x00, KEY_UNKNOWN }, /* HD */ | ||
273 | }; | ||
274 | |||
236 | static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) | 275 | static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) |
237 | { | 276 | { |
238 | static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x28 }; | 277 | static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x28 }; |
@@ -511,6 +550,11 @@ static struct dvb_usb_properties cxusb_bluebird_lgh064f_properties = { | |||
511 | 550 | ||
512 | .i2c_algo = &cxusb_i2c_algo, | 551 | .i2c_algo = &cxusb_i2c_algo, |
513 | 552 | ||
553 | .rc_interval = 100, | ||
554 | .rc_key_map = dvico_portable_rc_keys, | ||
555 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | ||
556 | .rc_query = cxusb_rc_query, | ||
557 | |||
514 | .generic_bulk_ctrl_endpoint = 0x01, | 558 | .generic_bulk_ctrl_endpoint = 0x01, |
515 | /* parameter for the MPEG2-data transfer */ | 559 | /* parameter for the MPEG2-data transfer */ |
516 | .urb = { | 560 | .urb = { |
@@ -600,6 +644,11 @@ static struct dvb_usb_properties cxusb_bluebird_lgz201_properties = { | |||
600 | 644 | ||
601 | .i2c_algo = &cxusb_i2c_algo, | 645 | .i2c_algo = &cxusb_i2c_algo, |
602 | 646 | ||
647 | .rc_interval = 100, | ||
648 | .rc_key_map = dvico_portable_rc_keys, | ||
649 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | ||
650 | .rc_query = cxusb_rc_query, | ||
651 | |||
603 | .generic_bulk_ctrl_endpoint = 0x01, | 652 | .generic_bulk_ctrl_endpoint = 0x01, |
604 | /* parameter for the MPEG2-data transfer */ | 653 | /* parameter for the MPEG2-data transfer */ |
605 | .urb = { | 654 | .urb = { |
@@ -640,6 +689,11 @@ static struct dvb_usb_properties cxusb_bluebird_dtt7579_properties = { | |||
640 | 689 | ||
641 | .i2c_algo = &cxusb_i2c_algo, | 690 | .i2c_algo = &cxusb_i2c_algo, |
642 | 691 | ||
692 | .rc_interval = 100, | ||
693 | .rc_key_map = dvico_portable_rc_keys, | ||
694 | .rc_key_map_size = ARRAY_SIZE(dvico_portable_rc_keys), | ||
695 | .rc_query = cxusb_rc_query, | ||
696 | |||
643 | .generic_bulk_ctrl_endpoint = 0x01, | 697 | .generic_bulk_ctrl_endpoint = 0x01, |
644 | /* parameter for the MPEG2-data transfer */ | 698 | /* parameter for the MPEG2-data transfer */ |
645 | .urb = { | 699 | .urb = { |
diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c index 12ebaf8bddca..70afcfd141ca 100644 --- a/drivers/media/dvb/dvb-usb/dtt200u.c +++ b/drivers/media/dvb/dvb-usb/dtt200u.c | |||
@@ -94,12 +94,14 @@ static int dtt200u_frontend_attach(struct dvb_usb_device *d) | |||
94 | 94 | ||
95 | static struct dvb_usb_properties dtt200u_properties; | 95 | static struct dvb_usb_properties dtt200u_properties; |
96 | static struct dvb_usb_properties wt220u_properties; | 96 | static struct dvb_usb_properties wt220u_properties; |
97 | static struct dvb_usb_properties wt220u_zl0353_properties; | ||
97 | 98 | ||
98 | static int dtt200u_usb_probe(struct usb_interface *intf, | 99 | static int dtt200u_usb_probe(struct usb_interface *intf, |
99 | const struct usb_device_id *id) | 100 | const struct usb_device_id *id) |
100 | { | 101 | { |
101 | if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 || | 102 | if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 || |
102 | dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0) | 103 | dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0 || |
104 | dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0) | ||
103 | return 0; | 105 | return 0; |
104 | 106 | ||
105 | return -ENODEV; | 107 | return -ENODEV; |
@@ -110,6 +112,8 @@ static struct usb_device_id dtt200u_usb_table [] = { | |||
110 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_DTT200U_WARM) }, | 112 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_DTT200U_WARM) }, |
111 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_COLD) }, | 113 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_COLD) }, |
112 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_WARM) }, | 114 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_WARM) }, |
115 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZL0353_COLD) }, | ||
116 | { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZL0353_WARM) }, | ||
113 | { 0 }, | 117 | { 0 }, |
114 | }; | 118 | }; |
115 | MODULE_DEVICE_TABLE(usb, dtt200u_usb_table); | 119 | MODULE_DEVICE_TABLE(usb, dtt200u_usb_table); |
@@ -196,6 +200,47 @@ static struct dvb_usb_properties wt220u_properties = { | |||
196 | } | 200 | } |
197 | }; | 201 | }; |
198 | 202 | ||
203 | static struct dvb_usb_properties wt220u_zl0353_properties = { | ||
204 | .caps = DVB_USB_HAS_PID_FILTER | DVB_USB_NEED_PID_FILTERING, | ||
205 | .pid_filter_count = 15, | ||
206 | |||
207 | .usb_ctrl = CYPRESS_FX2, | ||
208 | .firmware = "dvb-usb-wt220u-zl0353-01.fw", | ||
209 | |||
210 | .power_ctrl = dtt200u_power_ctrl, | ||
211 | .streaming_ctrl = dtt200u_streaming_ctrl, | ||
212 | .pid_filter = dtt200u_pid_filter, | ||
213 | .frontend_attach = dtt200u_frontend_attach, | ||
214 | |||
215 | .rc_interval = 300, | ||
216 | .rc_key_map = dtt200u_rc_keys, | ||
217 | .rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys), | ||
218 | .rc_query = dtt200u_rc_query, | ||
219 | |||
220 | .generic_bulk_ctrl_endpoint = 0x01, | ||
221 | |||
222 | /* parameter for the MPEG2-data transfer */ | ||
223 | .urb = { | ||
224 | .type = DVB_USB_BULK, | ||
225 | .count = 7, | ||
226 | .endpoint = 0x02, | ||
227 | .u = { | ||
228 | .bulk = { | ||
229 | .buffersize = 4096, | ||
230 | } | ||
231 | } | ||
232 | }, | ||
233 | |||
234 | .num_device_descs = 1, | ||
235 | .devices = { | ||
236 | { .name = "WideView WT-220U PenType Receiver (based on ZL353)", | ||
237 | .cold_ids = { &dtt200u_usb_table[4], NULL }, | ||
238 | .warm_ids = { &dtt200u_usb_table[5], NULL }, | ||
239 | }, | ||
240 | { NULL }, | ||
241 | } | ||
242 | }; | ||
243 | |||
199 | /* usb specific object needed to register this driver with the usb subsystem */ | 244 | /* usb specific object needed to register this driver with the usb subsystem */ |
200 | static struct usb_driver dtt200u_usb_driver = { | 245 | static struct usb_driver dtt200u_usb_driver = { |
201 | .name = "dvb_usb_dtt200u", | 246 | .name = "dvb_usb_dtt200u", |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h index 4a1b9e77e339..cb239049b098 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | |||
@@ -83,6 +83,8 @@ | |||
83 | #define USB_PID_DTT200U_WARM 0x0301 | 83 | #define USB_PID_DTT200U_WARM 0x0301 |
84 | #define USB_PID_WT220U_COLD 0x0222 | 84 | #define USB_PID_WT220U_COLD 0x0222 |
85 | #define USB_PID_WT220U_WARM 0x0221 | 85 | #define USB_PID_WT220U_WARM 0x0221 |
86 | #define USB_PID_WT220U_ZL0353_COLD 0x022a | ||
87 | #define USB_PID_WT220U_ZL0353_WARM 0x022b | ||
86 | #define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300 | 88 | #define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300 |
87 | #define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 | 89 | #define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 |
88 | #define USB_PID_NEBULA_DIGITV 0x0201 | 90 | #define USB_PID_NEBULA_DIGITV 0x0201 |
diff --git a/drivers/media/dvb/dvb-usb/vp702x-fe.c b/drivers/media/dvb/dvb-usb/vp702x-fe.c index b6d95e1c9c52..2a89f8c5da99 100644 --- a/drivers/media/dvb/dvb-usb/vp702x-fe.c +++ b/drivers/media/dvb/dvb-usb/vp702x-fe.c | |||
@@ -147,8 +147,9 @@ static int vp702x_fe_set_frontend(struct dvb_frontend* fe, | |||
147 | cmd[4] = (sr >> 4) & 0xff; | 147 | cmd[4] = (sr >> 4) & 0xff; |
148 | cmd[5] = (sr << 4) & 0xf0; | 148 | cmd[5] = (sr << 4) & 0xf0; |
149 | 149 | ||
150 | deb_fe("setting frontend to: %u -> %u (%x) LNB-based GHz, symbolrate: %d -> %Lu (%Lx)\n", | 150 | deb_fe("setting frontend to: %u -> %u (%x) LNB-based GHz, symbolrate: %d -> %lu (%lx)\n", |
151 | fep->frequency,freq,freq, fep->u.qpsk.symbol_rate, sr, sr); | 151 | fep->frequency,freq,freq, fep->u.qpsk.symbol_rate, |
152 | (unsigned long) sr, (unsigned long) sr); | ||
152 | 153 | ||
153 | /* if (fep->inversion == INVERSION_ON) | 154 | /* if (fep->inversion == INVERSION_ON) |
154 | cmd[6] |= 0x80; */ | 155 | cmd[6] |= 0x80; */ |