summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2012-04-05 21:52:21 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-04-09 14:56:20 -0300
commitdaacd5b27f8d5b19ea65dc4ad9929c94c0ef3e35 (patch)
tree65cd3e3a7fd1ea4bd911da66873fb4d5bf8c9cdb /drivers
parentdbac01ffbb8619591ee2980eb093f086a5ba1848 (diff)
[media] af9035: minor changes for af9035_fc0011_tuner_callback()
Change function to use same logic than existing functions. Debugs log writings are done in error case, earlier it was just returning error code. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb/dvb-usb/af9035.c76
1 files changed, 46 insertions, 30 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9035.c b/drivers/media/dvb/dvb-usb/af9035.c
index 9503b2d440e6..e822706629db 100644
--- a/drivers/media/dvb/dvb-usb/af9035.c
+++ b/drivers/media/dvb/dvb-usb/af9035.c
@@ -663,52 +663,68 @@ err:
}
static int af9035_fc0011_tuner_callback(struct dvb_usb_device *d,
- int cmd, int arg)
+ int cmd, int arg)
{
- int err;
+ int ret;
switch (cmd) {
case FC0011_FE_CALLBACK_POWER:
/* Tuner enable */
- err = af9035_wr_reg_mask(d, 0xd8eb, 1, 1);
- if (err)
- return err;
- err = af9035_wr_reg_mask(d, 0xd8ec, 1, 1);
- if (err)
- return err;
- err = af9035_wr_reg_mask(d, 0xd8ed, 1, 1);
- if (err)
- return err;
+ ret = af9035_wr_reg_mask(d, 0xd8eb, 1, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg_mask(d, 0xd8ec, 1, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg_mask(d, 0xd8ed, 1, 1);
+ if (ret < 0)
+ goto err;
+
/* LED */
- err = af9035_wr_reg_mask(d, 0xd8d0, 1, 1);
- if (err)
- return err;
- err = af9035_wr_reg_mask(d, 0xd8d1, 1, 1);
- if (err)
- return err;
+ ret = af9035_wr_reg_mask(d, 0xd8d0, 1, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg_mask(d, 0xd8d1, 1, 1);
+ if (ret < 0)
+ goto err;
+
usleep_range(10000, 50000);
break;
case FC0011_FE_CALLBACK_RESET:
- err = af9035_wr_reg(d, 0xd8e9, 1);
- if (err)
- return err;
- err = af9035_wr_reg(d, 0xd8e8, 1);
- if (err)
- return err;
- err = af9035_wr_reg(d, 0xd8e7, 1);
- if (err)
- return err;
+ ret = af9035_wr_reg(d, 0xd8e9, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg(d, 0xd8e8, 1);
+ if (ret < 0)
+ goto err;
+
+ ret = af9035_wr_reg(d, 0xd8e7, 1);
+ if (ret < 0)
+ goto err;
+
usleep_range(10000, 20000);
- err = af9035_wr_reg(d, 0xd8e7, 0);
- if (err)
- return err;
+
+ ret = af9035_wr_reg(d, 0xd8e7, 0);
+ if (ret < 0)
+ goto err;
+
usleep_range(10000, 20000);
break;
default:
- return -EINVAL;
+ ret = -EINVAL;
+ goto err;
}
return 0;
+
+err:
+ pr_debug("%s: failed=%d\n", __func__, ret);
+
+ return ret;
}
static int af9035_tuner_callback(struct dvb_usb_device *d, int cmd, int arg)