summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb-v2/af9015.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/dvb-usb-v2/af9015.c')
-rw-r--r--drivers/media/dvb/dvb-usb-v2/af9015.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-usb-v2/af9015.c b/drivers/media/dvb/dvb-usb-v2/af9015.c
index bbe1d3382195..10363f6b5234 100644
--- a/drivers/media/dvb/dvb-usb-v2/af9015.c
+++ b/drivers/media/dvb/dvb-usb-v2/af9015.c
@@ -1232,11 +1232,19 @@ static int af9015_rc_query(struct dvb_usb_device *d)
}
state->rc_repeat = buf[6];
+ state->rc_failed = false;
error:
- if (ret)
+ if (ret) {
err("%s: failed:%d", __func__, ret);
+ /* allow random errors as dvb-usb will stop polling on error */
+ if (!state->rc_failed)
+ ret = 0;
+
+ state->rc_failed = true;
+ }
+
return ret;
}
@@ -1249,8 +1257,9 @@ static int af9015_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc)
return 0;
/* try to load remote based module param */
- rc->map_name = af9015_rc_setup_match(dvb_usb_af9015_remote,
- af9015_rc_setup_modparam);
+ if (!rc->map_name)
+ rc->map_name = af9015_rc_setup_match(dvb_usb_af9015_remote,
+ af9015_rc_setup_modparam);
/* try to load remote based eeprom hash */
if (!rc->map_name)