From 1a8adc65f7683fd70b9a3ad2c7d9bb5aad6eb0c0 Mon Sep 17 00:00:00 2001 From: Antti Palosaari Date: Thu, 5 Apr 2012 21:52:21 -0300 Subject: [PATCH] --- yaml --- r: 306118 b: refs/heads/master c: daacd5b27f8d5b19ea65dc4ad9929c94c0ef3e35 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-usb/af9035.c | 76 ++++++++++++++---------- 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/[refs] b/[refs] index 446e7bfdb655..bc9430f64567 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dbac01ffbb8619591ee2980eb093f086a5ba1848 +refs/heads/master: daacd5b27f8d5b19ea65dc4ad9929c94c0ef3e35 diff --git a/trunk/drivers/media/dvb/dvb-usb/af9035.c b/trunk/drivers/media/dvb/dvb-usb/af9035.c index 9503b2d440e6..e822706629db 100644 --- a/trunk/drivers/media/dvb/dvb-usb/af9035.c +++ b/trunk/drivers/media/dvb/dvb-usb/af9035.c @@ -663,52 +663,68 @@ static int af9035_read_mac_address_it9135(struct dvb_usb_device *d, u8 mac[6]) } 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)