Kconfig option to enable faulty Artec DVB-T USB devices, cleanups, documentation
PATCH 1/1 Kconfig option to enable faulty Artec DVB-T USB devices, cleanups, documentation
The following patch adds a Kconfig option in the DVB-T USB section that enables a user to select wether some faulty Artec devices may be supported due to an invalid EEPROM. Some googling stated that some people had problems getting the device to be detected by the driver (though the device was stated to be supported by the module on various sites). As not anyone is into changing source code a Kconfig option would be appropriate for these users. Patrick Boettcher also suggested a Kconfig would make sense. Moreover, one may share the option in his/her .config accross several kernels instead of uncommenting the #define on any -git checkout or new kernel release. It was simply annoying. :)
Moreover, there's some cleanup on indentation and such, added some explanation to the faulty UDB IDs code, re-ordered the list of supported devices in Kconfig to match out alphabet ;)
The #ifdef-fing of dibusb-mc functions was removed due to Adrian Bunks' hint.
Patrick Boettcher and the Linux DVB Maintainers are CC'ed...
The patch is against the current -git but should cause no problems on the recent releases.
Regards,
marc
media/dvb/dvb-usb/a800.c renamed from media/dvb/dvb-usb.orig/a800.c +1 -0
@@ -140,6 +140,7 @@ { &a800_table[0], NULL }, { &a800_table[1], NULL }, }, + { NULL }, } };
media/dvb/dvb-usb/cxusb.c renamed from media/dvb/dvb-usb.orig/cxusb.c +1 -0
@@ -237,6 +237,7 @@ { NULL }, { &cxusb_table[0], NULL }, }, + { NULL }, } };
media/dvb/dvb-usb/cxusb.h renamed from media/dvb/dvb-usb.orig/cxusb.h +1 -1
@@ -13,7 +13,7 @@#define CMD_GPIO_READ 0x0d#define CMD_GPIO_WRITE 0x0e -#define GPIO_TUNER 0x02 +#define GPIO_TUNER 0x02#define CMD_POWER_OFF 0xdc#define CMD_POWER_ON 0xde
media/dvb/dvb-usb/dibusb.h renamed from media/dvb/dvb-usb.orig/dibusb.h +2 -0
@@ -104,8 +104,10 @@extern struct i2c_algorithm dibusb_i2c_algo; +#ifdef CONFIG_DVB_USB_DIBUSB_MC extern int dibusb_dib3000mc_frontend_attach (struct dvb_usb_device *);extern int dibusb_dib3000mc_tuner_attach (struct dvb_usb_device *); +#endif extern int dibusb_streaming_ctrl (struct dvb_usb_device *,int );extern int dibusb_pid_filter (struct dvb_usb_device *,int ,u16 ,int );
media/dvb/dvb-usb/dibusb-mb.c renamed from media/dvb/dvb-usb.orig/dibusb-mb.c +28 -18
111 lines not on this page · raw message
Dateien drivers/media/dvb/dvb-usb.orig/dibusb-mb.o und drivers/media/dvb/dvb-usb/dibusb-mb.o sind verschieden.
media/dvb/dvb-usb/.dibusb-mb.o.cmd renamed from media/dvb/dvb-usb.orig/.dibusb-mb.o.cmd +1 -0
@@ -2,6 +2,7 @@ deps_drivers/media/dvb/dvb-usb/dibusb-mb.o := \ drivers/media/dvb/dvb-usb/dibusb-mb.c \ + $(wildcard include/config/dvb/usb/dibusb/mb/faulty.h) \ drivers/media/dvb/dvb-usb/dibusb.h \ $(wildcard include/config/dvb/usb/dibusb/mc.h) \ drivers/media/dvb/dvb-usb/dvb-usb.h \
media/dvb/dvb-usb/dibusb-mc.c renamed from media/dvb/dvb-usb.orig/dibusb-mc.c +1 -0
@@ -78,6 +78,7 @@ { &dibusb_dib3000mc_table[2], NULL }, { NULL }, }, + { NULL }, } };
media/dvb/dvb-usb/digitv.c renamed from media/dvb/dvb-usb.orig/digitv.c +1 -0
@@ -229,6 +229,7 @@ { &digitv_table[0], NULL }, { NULL }, }, + { NULL }, } };
media/dvb/dvb-usb/dtt200u.h renamed from media/dvb/dvb-usb.orig/dtt200u.h +16 -15
@@ -13,6 +13,7 @@#define _DVB_USB_DTT200U_H_#define DVB_USB_LOG_PREFIX "dtt200u" +#include "dvb-usb.h" extern int dvb_usb_dtt200u_debug;
@@ -25,15 +26,15 @@* 88 - locking 2 bytes (0x80 0x40 == no signal, 0x89 0x20 == nice signal) */ -#define GET_SPEED 0x00 -#define GET_TUNE_STATUS 0x81 -#define GET_RC_CODE 0x84 -#define GET_CONFIGURATION 0x88 -#define GET_AGC 0x89 -#define GET_SNR 0x8a -#define GET_VIT_ERR_CNT 0x8c -#define GET_RS_ERR_CNT 0x8d -#define GET_RS_UNCOR_BLK_CNT 0x8e +#define GET_SPEED 0x00 +#define GET_TUNE_STATUS 0x81 +#define GET_RC_CODE 0x84 +#define GET_CONFIGURATION 0x88 +#define GET_AGC 0x89 +#define GET_SNR 0x8a +#define GET_VIT_ERR_CNT 0x8c +#define GET_RS_ERR_CNT 0x8d +#define GET_RS_UNCOR_BLK_CNT 0x8e/* write * 01 - init
@@ -44,12 +45,12 @@* 08 - transfer switch */ -#define SET_INIT 0x01 -#define SET_RF_FREQ 0x02 -#define SET_BANDWIDTH 0x03 -#define SET_PID_FILTER 0x04 -#define RESET_PID_FILTER 0x05 -#define SET_STREAMING 0x08 +#define SET_INIT 0x01 +#define SET_RF_FREQ 0x02 +#define SET_BANDWIDTH 0x03 +#define SET_PID_FILTER 0x04 +#define RESET_PID_FILTER 0x05 +#define SET_STREAMING 0x08extern struct dvb_frontend *dtt200u_fe_attach (struct dvb_usb_device *d);
Dateien drivers/media/dvb/dvb-usb.orig/dvb-usb-dibusb-mb.ko und drivers/media/dvb/dvb-usb/dvb-usb-dibusb-mb.ko sind verschieden.
media/dvb/dvb-usb/dvb-usb-dibusb-mb.mod.c renamed from media/dvb/dvb-usb.orig/dvb-usb-dibusb-mb.mod.c +1 -1
@@ -77,4 +77,4 @@MODULE_ALIAS ("usb:v05D8p810Ad*dc*dsc*dp*ic*isc*ip*" );MODULE_ALIAS ("usb:v0547p2235d*dc*dsc*dp*ic*isc*ip*" ); -MODULE_INFO (srcversion,"7612332C946BF81765C3231" ); +MODULE_INFO (srcversion,"AEDF1B0A6189BB5A470AE8B" );
Dateien drivers/media/dvb/dvb-usb.orig/dvb-usb-dibusb-mb.mod.o und drivers/media/dvb/dvb-usb/dvb-usb-dibusb-mb.mod.o sind verschieden. Dateien drivers/media/dvb/dvb-usb.orig/dvb-usb-dibusb-mb.o und drivers/media/dvb/dvb-usb/dvb-usb-dibusb-mb.o sind verschieden.
media/dvb/dvb-usb/Kconfig renamed from media/dvb/dvb-usb.orig/Kconfig +15 -9
@@ -37,16 +37,16 @@ DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator. Devices supported by this driver: - TwinhanDTV USB-Ter (VP7041) - TwinhanDTV Magic Box (VP7041e) - KWorld/JetWay/ADSTech V-Stream XPERT DTV - DVB-T USB1.1 and USB2.0 - Hama DVB-T USB1.1-Box - DiBcom USB1.1 reference devices (non-public) - Ultima Electronic/Artec T1 USB TVBOX + Artec T1 USB1.1 boxes + Avermedia AverTV DVBT USB1.1 Compro Videomate DVB-U2000 - DVB-T USB + DiBcom USB1.1 reference devices (non-public) Grandtec DVB-T USB - Avermedia AverTV DVBT USB1.1 - Artec T1 USB1.1 boxes + Hama DVB-T USB1.1-Box + KWorld/JetWay/ADSTech V-Stream XPERT DTV - DVB-T USB1.1 and USB2.0 + TwinhanDTV Magic Box (VP7041e) + TwinhanDTV USB-Ter (VP7041) + Ultima Electronic/Artec T1 USB TVBOX The VP7041 seems to be identical to "CTS Portable" (Chinese Television System).
@@ -54,6 +54,12 @@ Say Y if you own such a device and want to use it. You should build it as a module. +config DVB_USB_DIBUSB_MB_FAULTY + bool "Support faulty USB IDs" + depends on DVB_USB_DIBUSB_MB + help + Support for faulty USB IDs due to an invalid EEPROM on some Artec devices. + config DVB_USB_DIBUSB_MC tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)" depends on DVB_USB
@@ -63,8 +69,8 @@ DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator. Devices supported by this driver: - DiBcom USB2.0 reference devices (non-public) Artec T1 USB2.0 boxes + DiBcom USB2.0 reference devices (non-public) Say Y if you own such a device and want to use it. You should build it as a module.
media/dvb/dvb-usb/nova-t-usb2.c renamed from media/dvb/dvb-usb.orig/nova-t-usb2.c +2 -5
@@ -129,10 +129,6 @@dibusb_read_eeprom_byte (d,i, &b); mac[5 - (i -136 )] = b; - -/* deb_ee("%02x ",b); -if ((i+1) % 16 == 0) -deb_ee("\n");*/ }return 0 ;
@@ -153,7 +149,7 @@ /* 01 */ { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_WINTV_NOVA_T_USB2_WARM) }, { }/* Terminating entry */ }; -MODULE_DEVICE_TABLE (usb, nova_t_table); +MODULE_DEVICE_TABLE (usb, nova_t_table);static struct dvb_usb_properties nova_t_properties = { .caps =DVB_USB_HAS_PID_FILTER |DVB_USB_PID_FILTER_CAN_BE_TURNED_OFF |DVB_USB_IS_AN_I2C_ADAPTER ,
@@ -198,6 +194,7 @@ { &nova_t_table[0], NULL }, { &nova_t_table[1], NULL }, }, + { NULL }, } };
media/dvb/dvb-usb/umt-010.c renamed from media/dvb/dvb-usb.orig/umt-010.c +1 -0
@@ -124,6 +124,7 @@ { &umt_table[0], NULL }, { &umt_table[1], NULL }, }, + { NULL }, } };
media/dvb/dvb-usb/vp702x.c renamed from media/dvb/dvb-usb.orig/vp702x.c +1 -1
@@ -250,7 +250,7 @@ .cold_ids = { &vp702x_usb_table[2], NULL }, .warm_ids = { &vp702x_usb_table[3], NULL }, }, - { 0 }, + { NULL }, } };
media/dvb/dvb-usb/vp702x.h renamed from media/dvb/dvb-usb.orig/vp702x.h +21 -22
107 lines not on this page · raw message
Hi Marc,
I finally found the time to commit some of your cleanups to the V4L-DVB-CVS.
I only took some of your cleanups. The useful ones :)
Thanks for your help,
Patrick.
--
Mail: [email protected]
WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/
Quoted 24 lines · Marc Koschewski
The following patch adds a
Kconfigoption in the DVB-T USB section that enables a user to select wether some faulty Artec devices may be supported due to an invalid EEPROM. Some googling stated that some people had problems getting the device to be detected by the driver (though the device was stated to be supported by the module on various sites). As not anyone is into changing source code aKconfigoption would be appropriate for these users. Patrick Boettcher also suggested aKconfigwould make sense. Moreover, one may share the option in his/her .config accross several kernels instead of uncommenting the #define on any -git checkout or new kernel release. It was simply annoying. :)Moreover, there's some cleanup on indentation and such, added some explanation to the faulty UDB IDs code, re-ordered the list of supported devices in
Kconfigto match out alphabet ;)The #ifdef-fing of dibusb-mc functions was removed due to Adrian Bunks' hint.
Patrick Boettcher and the Linux DVB Maintainers are CC'ed...
The patch is against the current -git but should cause no problems on the recent releases.
Regards,
marc