Skip to contentSkip to conversation

Kconfig option to enable faulty Artec DVB-T USB devices, cleanups, documentation

PATCH In review Marc Koschewski 2 participants 2 messages Dec 24, 2005 – Jan 8, 2006

lore
Share & tools
lore
#0 lore raw

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
diff -ruN drivers/media/dvb/dvb-usb.orig/a800.c drivers/media/dvb/dvb-usb/a800.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/cxusb.c drivers/media/dvb/dvb-usb/cxusb.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/cxusb.h drivers/media/dvb/dvb-usb/cxusb.h
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/dibusb.h drivers/media/dvb/dvb-usb/dibusb.h
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/.dibusb-mb.o.cmd drivers/media/dvb/dvb-usb/.dibusb-mb.o.cmd
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/dibusb-mc.c drivers/media/dvb/dvb-usb/dibusb-mc.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/digitv.c drivers/media/dvb/dvb-usb/digitv.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/dtt200u.h drivers/media/dvb/dvb-usb/dtt200u.h
@@ -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		0x08
 
 extern 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
diff -ruN drivers/media/dvb/dvb-usb.orig/dvb-usb-dibusb-mb.mod.c drivers/media/dvb/dvb-usb/dvb-usb-dibusb-mb.mod.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/Kconfig drivers/media/dvb/dvb-usb/Kconfig
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/nova-t-usb2.c drivers/media/dvb/dvb-usb/nova-t-usb2.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/umt-010.c drivers/media/dvb/dvb-usb/umt-010.c
@@ -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
diff -ruN drivers/media/dvb/dvb-usb.orig/vp702x.c drivers/media/dvb/dvb-usb/vp702x.c
@@ -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

#1 lore raw

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 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