diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb/vp7045.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/vp7045.c | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c index 02ecc9a8e3b6..5adc5d69ec84 100644 --- a/drivers/media/dvb/dvb-usb/vp7045.c +++ b/drivers/media/dvb/dvb-usb/vp7045.c | |||
@@ -44,7 +44,7 @@ int vp7045_usb_op(struct dvb_usb_device *d, u8 cmd, u8 *out, int outlen, u8 *in, | |||
44 | if (usb_control_msg(d->udev, | 44 | if (usb_control_msg(d->udev, |
45 | usb_sndctrlpipe(d->udev,0), | 45 | usb_sndctrlpipe(d->udev,0), |
46 | TH_COMMAND_OUT, USB_TYPE_VENDOR | USB_DIR_OUT, 0, 0, | 46 | TH_COMMAND_OUT, USB_TYPE_VENDOR | USB_DIR_OUT, 0, 0, |
47 | outbuf, 20, 2*HZ) != 20) { | 47 | outbuf, 20, 2000) != 20) { |
48 | err("USB control message 'out' went wrong."); | 48 | err("USB control message 'out' went wrong."); |
49 | ret = -EIO; | 49 | ret = -EIO; |
50 | goto unlock; | 50 | goto unlock; |
@@ -55,7 +55,7 @@ int vp7045_usb_op(struct dvb_usb_device *d, u8 cmd, u8 *out, int outlen, u8 *in, | |||
55 | if (usb_control_msg(d->udev, | 55 | if (usb_control_msg(d->udev, |
56 | usb_rcvctrlpipe(d->udev,0), | 56 | usb_rcvctrlpipe(d->udev,0), |
57 | TH_COMMAND_IN, USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, | 57 | TH_COMMAND_IN, USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, |
58 | inbuf, 12, 2*HZ) != 12) { | 58 | inbuf, 12, 2000) != 12) { |
59 | err("USB control message 'in' went wrong."); | 59 | err("USB control message 'in' went wrong."); |
60 | ret = -EIO; | 60 | ret = -EIO; |
61 | goto unlock; | 61 | goto unlock; |
@@ -94,13 +94,38 @@ static int vp7045_power_ctrl(struct dvb_usb_device *d, int onoff) | |||
94 | /* The keymapping struct. Somehow this should be loaded to the driver, but | 94 | /* The keymapping struct. Somehow this should be loaded to the driver, but |
95 | * currently it is hardcoded. */ | 95 | * currently it is hardcoded. */ |
96 | static struct dvb_usb_rc_key vp7045_rc_keys[] = { | 96 | static struct dvb_usb_rc_key vp7045_rc_keys[] = { |
97 | /* insert the keys like this. to make the raw keys visible, enable | 97 | { 0x00, 0x16, KEY_POWER }, |
98 | * debug=0x04 when loading dvb-usb-vp7045. */ | 98 | { 0x00, 0x10, KEY_MUTE }, |
99 | 99 | { 0x00, 0x03, KEY_1 }, | |
100 | /* these keys are probably wrong. I don't have a working IR-receiver on my | 100 | { 0x00, 0x01, KEY_2 }, |
101 | * vp7045, so I can't test it. Patches are welcome. */ | 101 | { 0x00, 0x06, KEY_3 }, |
102 | { 0x00, 0x01, KEY_1 }, | 102 | { 0x00, 0x09, KEY_4 }, |
103 | { 0x00, 0x02, KEY_2 }, | 103 | { 0x00, 0x1d, KEY_5 }, |
104 | { 0x00, 0x1f, KEY_6 }, | ||
105 | { 0x00, 0x0d, KEY_7 }, | ||
106 | { 0x00, 0x19, KEY_8 }, | ||
107 | { 0x00, 0x1b, KEY_9 }, | ||
108 | { 0x00, 0x15, KEY_0 }, | ||
109 | { 0x00, 0x05, KEY_CHANNELUP }, | ||
110 | { 0x00, 0x02, KEY_CHANNELDOWN }, | ||
111 | { 0x00, 0x1e, KEY_VOLUMEUP }, | ||
112 | { 0x00, 0x0a, KEY_VOLUMEDOWN }, | ||
113 | { 0x00, 0x11, KEY_RECORD }, | ||
114 | { 0x00, 0x17, KEY_FAVORITES }, /* Heart symbol - Channel list. */ | ||
115 | { 0x00, 0x14, KEY_PLAY }, | ||
116 | { 0x00, 0x1a, KEY_STOP }, | ||
117 | { 0x00, 0x40, KEY_REWIND }, | ||
118 | { 0x00, 0x12, KEY_FASTFORWARD }, | ||
119 | { 0x00, 0x0e, KEY_PREVIOUS }, /* Recall - Previous channel. */ | ||
120 | { 0x00, 0x4c, KEY_PAUSE }, | ||
121 | { 0x00, 0x4d, KEY_SCREEN }, /* Full screen mode. */ | ||
122 | { 0x00, 0x54, KEY_AUDIO }, /* MTS - Switch to secondary audio. */ | ||
123 | { 0x00, 0x0c, KEY_CANCEL }, /* Cancel */ | ||
124 | { 0x00, 0x1c, KEY_EPG }, /* EPG */ | ||
125 | { 0x00, 0x00, KEY_TAB }, /* Tab */ | ||
126 | { 0x00, 0x48, KEY_INFO }, /* Preview */ | ||
127 | { 0x00, 0x04, KEY_LIST }, /* RecordList */ | ||
128 | { 0x00, 0x0f, KEY_TEXT } /* Teletext */ | ||
104 | }; | 129 | }; |
105 | 130 | ||
106 | static int vp7045_rc_query(struct dvb_usb_device *d, u32 *key_buf, int *state) | 131 | static int vp7045_rc_query(struct dvb_usb_device *d, u32 *key_buf, int *state) |
@@ -230,7 +255,7 @@ static struct dvb_usb_properties vp7045_properties = { | |||
230 | /* usb specific object needed to register this driver with the usb subsystem */ | 255 | /* usb specific object needed to register this driver with the usb subsystem */ |
231 | static struct usb_driver vp7045_usb_driver = { | 256 | static struct usb_driver vp7045_usb_driver = { |
232 | .owner = THIS_MODULE, | 257 | .owner = THIS_MODULE, |
233 | .name = "dvb-usb-vp7045", | 258 | .name = "dvb_usb_vp7045", |
234 | .probe = vp7045_usb_probe, | 259 | .probe = vp7045_usb_probe, |
235 | .disconnect = dvb_usb_device_exit, | 260 | .disconnect = dvb_usb_device_exit, |
236 | .id_table = vp7045_usb_table, | 261 | .id_table = vp7045_usb_table, |