[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: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/dvb/dvb-usb-v2/af9015.c b/drivers/media/dvb/dvb-usb-v2/af9015.c
index bbe1d33..10363f6 100644
--- a/drivers/media/dvb/dvb-usb-v2/af9015.c
+++ b/drivers/media/dvb/dvb-usb-v2/af9015.c
@@ -1232,11 +1232,19 @@
 	}
 
 	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 @@
 		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)