2005-06-23 22:02:35 -07:00
/* DVB USB compliant linux driver for mobile DVB-T USB devices based on
* reference designs made by DiBcom ( http : //www.dibcom.fr/) (DiB3000M-C/P)
*
* Copyright ( C ) 2004 - 5 Patrick Boettcher ( patrick . boettcher @ desy . de )
*
* based on GPL code from DiBcom , which has
* Copyright ( C ) 2004 Amaury Demol for DiBcom ( ademol @ dibcom . fr )
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation , version 2.
*
* see Documentation / dvb / README . dvb - usb for more information
*/
# include "dibusb.h"
2008-04-09 19:13:13 -03:00
DVB_DEFINE_MOD_OPT_ADAPTER_NR ( adapter_nr ) ;
2005-06-23 22:02:35 -07:00
/* USB Driver stuff */
2006-09-30 06:53:48 -03:00
static struct dvb_usb_device_properties dibusb_mc_properties ;
2005-06-23 22:02:35 -07:00
static int dibusb_mc_probe ( struct usb_interface * intf ,
const struct usb_device_id * id )
{
2008-04-09 19:13:13 -03:00
return dvb_usb_device_init ( intf , & dibusb_mc_properties , THIS_MODULE ,
NULL , adapter_nr ) ;
2005-06-23 22:02:35 -07:00
}
/* do not change the order of the ID table */
static struct usb_device_id dibusb_dib3000mc_table [ ] = {
/* 00 */ { USB_DEVICE ( USB_VID_DIBCOM , USB_PID_DIBCOM_MOD3001_COLD ) } ,
/* 01 */ { USB_DEVICE ( USB_VID_DIBCOM , USB_PID_DIBCOM_MOD3001_WARM ) } ,
/* 02 */ { USB_DEVICE ( USB_VID_ULTIMA_ELECTRONIC , USB_PID_ULTIMA_TVBOX_USB2_COLD ) } ,
2006-08-08 15:48:09 -03:00
/* 03 */ { USB_DEVICE ( USB_VID_ULTIMA_ELECTRONIC , USB_PID_ULTIMA_TVBOX_USB2_WARM ) } , // ( ? )
/* 04 */ { USB_DEVICE ( USB_VID_LITEON , USB_PID_LITEON_DVB_T_COLD ) } ,
/* 05 */ { USB_DEVICE ( USB_VID_LITEON , USB_PID_LITEON_DVB_T_WARM ) } ,
/* 06 */ { USB_DEVICE ( USB_VID_EMPIA , USB_PID_DIGIVOX_MINI_SL_COLD ) } ,
/* 07 */ { USB_DEVICE ( USB_VID_EMPIA , USB_PID_DIGIVOX_MINI_SL_WARM ) } ,
2006-08-08 15:48:09 -03:00
/* 08 */ { USB_DEVICE ( USB_VID_GRANDTEC , USB_PID_GRANDTEC_DVBT_USB2_COLD ) } ,
/* 09 */ { USB_DEVICE ( USB_VID_GRANDTEC , USB_PID_GRANDTEC_DVBT_USB2_WARM ) } ,
2006-03-31 18:48:39 -03:00
/* 10 */ { USB_DEVICE ( USB_VID_ULTIMA_ELECTRONIC , USB_PID_ARTEC_T14_COLD ) } ,
/* 11 */ { USB_DEVICE ( USB_VID_ULTIMA_ELECTRONIC , USB_PID_ARTEC_T14_WARM ) } ,
2006-08-08 15:48:09 -03:00
/* 12 */ { USB_DEVICE ( USB_VID_LEADTEK , USB_PID_WINFAST_DTV_DONGLE_COLD ) } ,
/* 13 */ { USB_DEVICE ( USB_VID_LEADTEK , USB_PID_WINFAST_DTV_DONGLE_WARM ) } ,
2009-07-12 11:51:10 -03:00
/* 14 */ { USB_DEVICE ( USB_VID_HUMAX_COEX , USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD ) } ,
/* 15 */ { USB_DEVICE ( USB_VID_HUMAX_COEX , USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM ) } ,
2005-06-23 22:02:35 -07:00
{ } /* Terminating entry */
} ;
MODULE_DEVICE_TABLE ( usb , dibusb_dib3000mc_table ) ;
2006-09-30 06:53:48 -03:00
static struct dvb_usb_device_properties dibusb_mc_properties = {
. caps = DVB_USB_IS_AN_I2C_ADAPTER ,
2005-06-23 22:02:35 -07:00
. usb_ctrl = CYPRESS_FX2 ,
. firmware = " dvb-usb-dibusb-6.0.0.8.fw " ,
2006-09-30 06:53:48 -03:00
. num_adapters = 1 ,
. adapter = {
{
2011-09-06 09:31:57 -03:00
. num_frontends = 1 ,
. fe = { {
2006-09-30 06:53:48 -03:00
. caps = DVB_USB_ADAP_HAS_PID_FILTER | DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF ,
. pid_filter_count = 32 ,
2006-10-13 11:34:46 -03:00
. streaming_ctrl = dibusb2_0_streaming_ctrl ,
. pid_filter = dibusb_pid_filter ,
. pid_filter_ctrl = dibusb_pid_filter_ctrl ,
. frontend_attach = dibusb_dib3000mc_frontend_attach ,
. tuner_attach = dibusb_dib3000mc_tuner_attach ,
2005-06-23 22:02:35 -07:00
/* parameter for the MPEG2-data transfer */
2006-09-30 06:53:48 -03:00
. stream = {
. type = USB_BULK ,
2009-07-12 11:51:10 -03:00
. count = 8 ,
2006-10-13 11:34:46 -03:00
. endpoint = 0x06 ,
. u = {
. bulk = {
. buffersize = 4096 ,
}
}
} ,
2011-09-06 09:31:57 -03:00
} } ,
2006-09-30 06:53:48 -03:00
. size_of_priv = sizeof ( struct dibusb_state ) ,
}
} ,
. power_ctrl = dibusb2_0_power_ctrl ,
2010-07-31 18:04:09 -03:00
. rc . legacy = {
. rc_interval = DEFAULT_RC_INTERVAL ,
[media] rc: Name RC keymap tables as rc_map_table
Remote keytables had different names all over the place. Part of the fault
is due to a bad naming when rc subsystem was created, but there were lots
of old names that were still here.
Use a common standard for everything.
Patch generated by this script:
for i in `find drivers/staging -type f -name *.[ch]` `find include/media -type f -name *.[ch]` `find drivers/media -type f -name *.[ch]`; do sed s,ir_scancode,rc_map_table,g <$i >a && mv a $i; done
for i in `find drivers/staging -type f -name *.[ch]` `find include/media -type f -name *.[ch]` `find drivers/media -type f -name *.[ch]`; do sed s,ir_codes_,rc_map_,g <$i >a && mv a $i; done
for i in `find drivers/staging -type f -name *.[ch]` `find include/media -type f -name *.[ch]` `find drivers/media -type f -name *.[ch]`; do sed s,rc_key_map,rc_map_table,g <$i >a && mv a $i; done
for i in `find drivers/staging -type f -name *.[ch]` `find include/media -type f -name *.[ch]` `find drivers/media -type f -name *.[ch]`; do sed s,rc_map_table_size,rc_map_size,g <$i >a && mv a $i; done
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-11-17 15:46:09 -03:00
. rc_map_table = rc_map_dibusb_table ,
. rc_map_size = 111 , /* FIXME */
2010-07-31 18:04:09 -03:00
. rc_query = dibusb_rc_query ,
} ,
2006-09-30 06:53:48 -03:00
. i2c_algo = & dibusb_i2c_algo ,
. generic_bulk_ctrl_endpoint = 0x01 ,
2005-06-23 22:02:35 -07:00
2009-07-12 11:51:10 -03:00
. num_device_descs = 8 ,
2005-06-23 22:02:35 -07:00
. devices = {
{ " DiBcom USB2.0 DVB-T reference design (MOD3000P) " ,
{ & dibusb_dib3000mc_table [ 0 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 1 ] , NULL } ,
} ,
2006-08-08 15:48:09 -03:00
{ " Artec T1 USB2.0 TVBOX (please check the warm ID) " ,
2005-06-23 22:02:35 -07:00
{ & dibusb_dib3000mc_table [ 2 ] , NULL } ,
2006-08-08 15:48:09 -03:00
{ & dibusb_dib3000mc_table [ 3 ] , NULL } ,
2005-06-23 22:02:35 -07:00
} ,
2006-08-08 15:48:09 -03:00
{ " LITE-ON USB2.0 DVB-T Tuner " ,
/* Also rebranded as Intuix S800, Toshiba */
{ & dibusb_dib3000mc_table [ 4 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 5 ] , NULL } ,
} ,
{ " MSI Digivox Mini SL " ,
{ & dibusb_dib3000mc_table [ 6 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 7 ] , NULL } ,
} ,
{ " GRAND - USB2.0 DVB-T adapter " ,
{ & dibusb_dib3000mc_table [ 8 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 9 ] , NULL } ,
} ,
2006-03-31 18:48:39 -03:00
{ " Artec T14 - USB2.0 DVB-T " ,
{ & dibusb_dib3000mc_table [ 10 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 11 ] , NULL } ,
} ,
2006-08-08 15:48:09 -03:00
{ " Leadtek - USB2.0 Winfast DTV dongle " ,
{ & dibusb_dib3000mc_table [ 12 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 13 ] , NULL } ,
} ,
2009-07-12 11:51:10 -03:00
{ " Humax/Coex DVB-T USB Stick 2.0 High Speed " ,
{ & dibusb_dib3000mc_table [ 14 ] , NULL } ,
{ & dibusb_dib3000mc_table [ 15 ] , NULL } ,
} ,
2006-08-08 15:48:09 -03:00
{ NULL } ,
2005-06-23 22:02:35 -07:00
}
} ;
static struct usb_driver dibusb_mc_driver = {
2005-07-07 17:58:30 -07:00
. name = " dvb_usb_dibusb_mc " ,
2005-06-23 22:02:35 -07:00
. probe = dibusb_mc_probe ,
. disconnect = dvb_usb_device_exit ,
. id_table = dibusb_dib3000mc_table ,
} ;
2011-11-18 09:46:12 -08:00
module_usb_driver ( dibusb_mc_driver ) ;
2005-06-23 22:02:35 -07:00
MODULE_AUTHOR ( " Patrick Boettcher <patrick.boettcher@desy.de> " ) ;
MODULE_DESCRIPTION ( " Driver for DiBcom USB2.0 DVB-T (DiB3000M-C/P based) devices " ) ;
MODULE_VERSION ( " 1.0 " ) ;
MODULE_LICENSE ( " GPL " ) ;