[PATCH] dvb: usb: fix ADSTech Instant TV DVB-T USB2.0 support
Fixed support for the ADSTech Instant TV DVB-T USB (2.0 version). Thanks to Gerolf Wendland for his support. Signed-off-by: Patrick Boettcher <pb@linuxtv.org> Signed-off-by: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
68293ddbab
commit
8945c8c3d2
|
@ -31,10 +31,17 @@ static int dibusb_dib3000mb_frontend_attach(struct dvb_usb_device *d)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* some of the dibusb 1.1 device aren't equipped with the default tuner
|
static int dibusb_thomson_tuner_attach(struct dvb_usb_device *d)
|
||||||
|
{
|
||||||
|
d->pll_addr = 0x61;
|
||||||
|
d->pll_desc = &dvb_pll_tua6010xs;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Some of the Artec 1.1 device aren't equipped with the default tuner
|
||||||
* (Thomson Cable), but with a Panasonic ENV77H11D5. This function figures
|
* (Thomson Cable), but with a Panasonic ENV77H11D5. This function figures
|
||||||
* this out. */
|
* this out. */
|
||||||
static int dibusb_dib3000mb_tuner_attach (struct dvb_usb_device *d)
|
static int dibusb_tuner_probe_and_attach(struct dvb_usb_device *d)
|
||||||
{
|
{
|
||||||
u8 b[2] = { 0,0 }, b2[1];
|
u8 b[2] = { 0,0 }, b2[1];
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
@ -59,8 +66,7 @@ static int dibusb_dib3000mb_tuner_attach (struct dvb_usb_device *d)
|
||||||
|
|
||||||
if (b2[0] == 0xfe) {
|
if (b2[0] == 0xfe) {
|
||||||
info("this device has the Thomson Cable onboard. Which is default.");
|
info("this device has the Thomson Cable onboard. Which is default.");
|
||||||
d->pll_addr = 0x61;
|
dibusb_thomson_tuner_attach(d);
|
||||||
d->pll_desc = &dvb_pll_tua6010xs;
|
|
||||||
} else {
|
} else {
|
||||||
u8 bpll[4] = { 0x0b, 0xf5, 0x85, 0xab };
|
u8 bpll[4] = { 0x0b, 0xf5, 0x85, 0xab };
|
||||||
info("this device has the Panasonic ENV77H11D5 onboard.");
|
info("this device has the Panasonic ENV77H11D5 onboard.");
|
||||||
|
@ -114,6 +120,8 @@ static struct usb_device_id dibusb_dib3000mb_table [] = {
|
||||||
/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_COLD) },
|
/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_COLD) },
|
||||||
/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_WARM) },
|
/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_WARM) },
|
||||||
/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_COLD) },
|
/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_COLD) },
|
||||||
|
|
||||||
|
/* device ID with default DIBUSB2_0-firmware and with the hacked firmware */
|
||||||
/* 24 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_WARM) },
|
/* 24 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_WARM) },
|
||||||
|
|
||||||
// #define DVB_USB_DIBUSB_MB_FAULTY_USB_IDs
|
// #define DVB_USB_DIBUSB_MB_FAULTY_USB_IDs
|
||||||
|
@ -140,7 +148,7 @@ static struct dvb_usb_properties dibusb1_1_properties = {
|
||||||
.pid_filter_ctrl = dibusb_pid_filter_ctrl,
|
.pid_filter_ctrl = dibusb_pid_filter_ctrl,
|
||||||
.power_ctrl = dibusb_power_ctrl,
|
.power_ctrl = dibusb_power_ctrl,
|
||||||
.frontend_attach = dibusb_dib3000mb_frontend_attach,
|
.frontend_attach = dibusb_dib3000mb_frontend_attach,
|
||||||
.tuner_attach = dibusb_dib3000mb_tuner_attach,
|
.tuner_attach = dibusb_tuner_probe_and_attach,
|
||||||
|
|
||||||
.rc_interval = DEFAULT_RC_INTERVAL,
|
.rc_interval = DEFAULT_RC_INTERVAL,
|
||||||
.rc_key_map = dibusb_rc_keys,
|
.rc_key_map = dibusb_rc_keys,
|
||||||
|
@ -212,7 +220,7 @@ static struct dvb_usb_properties dibusb1_1_an2235_properties = {
|
||||||
.pid_filter_ctrl = dibusb_pid_filter_ctrl,
|
.pid_filter_ctrl = dibusb_pid_filter_ctrl,
|
||||||
.power_ctrl = dibusb_power_ctrl,
|
.power_ctrl = dibusb_power_ctrl,
|
||||||
.frontend_attach = dibusb_dib3000mb_frontend_attach,
|
.frontend_attach = dibusb_dib3000mb_frontend_attach,
|
||||||
.tuner_attach = dibusb_dib3000mb_tuner_attach,
|
.tuner_attach = dibusb_tuner_probe_and_attach,
|
||||||
|
|
||||||
.rc_interval = DEFAULT_RC_INTERVAL,
|
.rc_interval = DEFAULT_RC_INTERVAL,
|
||||||
.rc_key_map = dibusb_rc_keys,
|
.rc_key_map = dibusb_rc_keys,
|
||||||
|
@ -257,7 +265,7 @@ static struct dvb_usb_properties dibusb2_0b_properties = {
|
||||||
.caps = DVB_USB_HAS_PID_FILTER | DVB_USB_PID_FILTER_CAN_BE_TURNED_OFF | DVB_USB_IS_AN_I2C_ADAPTER,
|
.caps = DVB_USB_HAS_PID_FILTER | DVB_USB_PID_FILTER_CAN_BE_TURNED_OFF | DVB_USB_IS_AN_I2C_ADAPTER,
|
||||||
.usb_ctrl = CYPRESS_FX2,
|
.usb_ctrl = CYPRESS_FX2,
|
||||||
|
|
||||||
.firmware = "dvb-usb-adstech-usb2-01.fw",
|
.firmware = "dvb-usb-adstech-usb2-02.fw",
|
||||||
|
|
||||||
.size_of_priv = sizeof(struct dibusb_state),
|
.size_of_priv = sizeof(struct dibusb_state),
|
||||||
|
|
||||||
|
@ -266,7 +274,7 @@ static struct dvb_usb_properties dibusb2_0b_properties = {
|
||||||
.pid_filter_ctrl = dibusb_pid_filter_ctrl,
|
.pid_filter_ctrl = dibusb_pid_filter_ctrl,
|
||||||
.power_ctrl = dibusb2_0_power_ctrl,
|
.power_ctrl = dibusb2_0_power_ctrl,
|
||||||
.frontend_attach = dibusb_dib3000mb_frontend_attach,
|
.frontend_attach = dibusb_dib3000mb_frontend_attach,
|
||||||
.tuner_attach = dibusb_dib3000mb_tuner_attach,
|
.tuner_attach = dibusb_thomson_tuner_attach,
|
||||||
|
|
||||||
.rc_interval = DEFAULT_RC_INTERVAL,
|
.rc_interval = DEFAULT_RC_INTERVAL,
|
||||||
.rc_key_map = dibusb_rc_keys,
|
.rc_key_map = dibusb_rc_keys,
|
||||||
|
@ -288,11 +296,11 @@ static struct dvb_usb_properties dibusb2_0b_properties = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
.num_device_descs = 2,
|
.num_device_descs = 1,
|
||||||
.devices = {
|
.devices = {
|
||||||
{ "KWorld/ADSTech Instant DVB-T USB 2.0",
|
{ "KWorld/ADSTech Instant DVB-T USB 2.0",
|
||||||
{ &dibusb_dib3000mb_table[23], NULL },
|
{ &dibusb_dib3000mb_table[23], NULL },
|
||||||
{ &dibusb_dib3000mb_table[24], NULL }, /* device ID with default DIBUSB2_0-firmware */
|
{ &dibusb_dib3000mb_table[24], NULL },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue