aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntti Palosaari2011-03-18 19:36:42 -0300
committerMauro Carvalho Chehab2011-03-22 04:54:53 -0300
commit1e8750c2ac2bcbf2b084d3fa77cbb5eef33b3e7f (patch)
treee6f2b58861e4312e7cf462b0847d8117c2753e19
parentc1e13971b19324305b35fafc080b527465214d3c (diff)
[media] af9015: small RC change
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index 6457d042b1a0..da2f87efe071 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -479,9 +479,7 @@ static int af9015_init_endpoint(struct dvb_usb_device *d)
ret = af9015_set_reg_bit(d, 0xd50b, 0);
else
ret = af9015_clear_reg_bit(d, 0xd50b, 0);
- if (ret)
- goto error;
- ret = af9015_write_reg(d, 0x98e9, 0xff);
+
error:
if (ret)
err("endpoint init failed:%d", ret);
@@ -614,6 +612,11 @@ static int af9015_init(struct dvb_usb_device *d)
int ret;
deb_info("%s:\n", __func__);
+ /* init RC canary */
+ ret = af9015_write_reg(d, 0x98e9, 0xff);
+ if (ret)
+ goto error;
+
ret = af9015_init_endpoint(d);
if (ret)
goto error;
@@ -1041,11 +1044,14 @@ static int af9015_rc_query(struct dvb_usb_device *d)
/* Only process key if canary killed */
if (buf[16] != 0xff && buf[0] != 0x01) {
- /* Reset the canary */
- af9015_write_reg(d, 0x98e9, 0xff);
deb_rc("%s: key pressed %02x %02x %02x %02x\n", __func__,
buf[12], buf[13], buf[14], buf[15]);
+ /* Reset the canary */
+ ret = af9015_write_reg(d, 0x98e9, 0xff);
+ if (ret)
+ goto error;
+
/* Remember this key */
memcpy(priv->rc_last, &buf[12], 4);
if (buf[14] == (u8) ~buf[15]) {
@@ -1058,6 +1064,7 @@ static int af9015_rc_query(struct dvb_usb_device *d)
buf[13] << 8 | buf[14];
}
} else {
+ /* 32 bit NEC */
priv->rc_keycode = buf[12] << 24 | buf[13] << 16 |
buf[14] << 8 | buf[15];
}