[linux-dvb] AverTV A800 trouble

Klaus Frahm frahm at irsamc.ups-tlse.fr
Fri Jun 30 10:04:05 CEST 2006


>> > *cold=!(udev->descriptor.iManufacturer == 1);
> 
> I would prefer udev->descriptor.iManufacturer != 1 . 
> 
>> very interesting your observation. Obviously, my assumption about the
>> signification of the variable idProduct was wrong. Probably it is
>> modified (to 0xa801) in one of the other dvb-modules (dvb_usb,
>> dvb_usb_dibusb_common, ...) and that only after the initialization and
>> therefore it cannot be used to distinguish the two devices (maybe the
>> modification happens when loading the firmware).
> 
> Exactly that is the case.
> 
> Can you prepare a patch like the one above - I will commit as fast as 
> possible.


Okay. I have put signed off by me and Martin if that is okay. 



#### beginning of patch
#Applies against: 2.6.17
#Signed-off-by: Klaus Frahm <frahm at irsamc.ups-tlse.fr> and Martin Habbecke <M.Habbecke at gmx.de>
#Changes: fixes initialization problem with new model of AVerTV DVB-T USB2.0, A800, by correctly identifying warm or cold state according to iManufacturer
--- a/drivers/media/dvb/dvb-usb/a800.c	2006-06-22 21:24:51.000000000 +0200
+++ b/drivers/media/dvb/dvb-usb/a800.c	2006-06-29 18:55:14.000000000 +0200
@@ -26,6 +26,14 @@
 	return 0;
 }
 
+/* assure to put cold to 0 for iManufacturer == 1 */
+static int a800_identify_state(struct usb_device *udev, struct dvb_usb_properties *props,struct dvb_usb_device_description **desc, int *cold)
+{
+  *cold=(udev->descriptor.iManufacturer != 1);
+
+  return 0;
+}
+
 static struct dvb_usb_rc_key a800_rc_keys[] = {
 	{ 0x02, 0x01, KEY_PROG1 },       /* SOURCE */
 	{ 0x02, 0x00, KEY_POWER },       /* POWER */
@@ -113,6 +121,7 @@
 	.power_ctrl       = a800_power_ctrl,
 	.frontend_attach  = dibusb_dib3000mc_frontend_attach,
 	.tuner_attach     = dibusb_dib3000mc_tuner_attach,
+	.identify_state   = a800_identify_state, 
 
 	.rc_interval      = DEFAULT_RC_INTERVAL,
 	.rc_key_map       = a800_rc_keys,

#### end of patch




More information about the linux-dvb mailing list