Pārlūkot izejas kodu

V4L/DVB (4464): FIX_ AverTV A800 trouble

A new revision of the Avermedia A800 does not reenumerate after download the firmware.

Signed-off-by: Klaus Frahm <frahm@irsamc.ups-tlse.fr>
Signed-off-by: Martin Habbecke <M.Habbecke@gmx.de>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Klaus Frahm 19 gadi atpakaļ
vecāks
revīzija
a2c00a0eee
1 mainītis faili ar 8 papildinājumiem un 0 dzēšanām
  1. 8 0
      drivers/media/dvb/dvb-usb/a800.c

+ 8 - 0
drivers/media/dvb/dvb-usb/a800.c

@@ -26,6 +26,13 @@ static int a800_power_ctrl(struct dvb_usb_device *d, int onoff)
 	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 +120,7 @@ static struct dvb_usb_properties a800_properties = {
 	.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,