Commit eb29fbea authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] af9015: remote controller fixes

1)
AF9015 remote controller query will fail rarely due to register
access failures and dvb_usb_v2 will stop rc polling when error
returned. Add logic to allow errors until two consecutive errors
occurs.

2)
Remote controller key map was not loaded in case of key map was set as
a device property. Fix it.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ad6b9e51
...@@ -1232,11 +1232,19 @@ static int af9015_rc_query(struct dvb_usb_device *d) ...@@ -1232,11 +1232,19 @@ static int af9015_rc_query(struct dvb_usb_device *d)
} }
state->rc_repeat = buf[6]; state->rc_repeat = buf[6];
state->rc_failed = false;
error: error:
if (ret) if (ret) {
err("%s: failed:%d", __func__, 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; return ret;
} }
...@@ -1249,8 +1257,9 @@ static int af9015_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc) ...@@ -1249,8 +1257,9 @@ static int af9015_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc)
return 0; return 0;
/* try to load remote based module param */ /* try to load remote based module param */
rc->map_name = af9015_rc_setup_match(dvb_usb_af9015_remote, if (!rc->map_name)
af9015_rc_setup_modparam); rc->map_name = af9015_rc_setup_match(dvb_usb_af9015_remote,
af9015_rc_setup_modparam);
/* try to load remote based eeprom hash */ /* try to load remote based eeprom hash */
if (!rc->map_name) if (!rc->map_name)
......
...@@ -139,6 +139,7 @@ struct af9015_state { ...@@ -139,6 +139,7 @@ struct af9015_state {
u8 rc_repeat; u8 rc_repeat;
u32 rc_keycode; u32 rc_keycode;
u8 rc_last[4]; u8 rc_last[4];
bool rc_failed;
u8 dual_mode; u8 dual_mode;
u8 seq; /* packet sequence number */ u8 seq; /* packet sequence number */
u16 mt2060_if1[2]; u16 mt2060_if1[2];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment