diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2006-11-20 17:03:48 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-12-10 09:05:06 -0200 |
commit | fd83e2487e9149d8cd7c8b1e7d6f0e5231b79f8a (patch) | |
tree | 468c14d3b00eeafb352b982365d113d4f4d62e73 | |
parent | 89faeefcf875c16d8923eaed50bd57731c221bcc (diff) | |
download | op-kernel-dev-fd83e2487e9149d8cd7c8b1e7d6f0e5231b79f8a.zip op-kernel-dev-fd83e2487e9149d8cd7c8b1e7d6f0e5231b79f8a.tar.gz |
V4L/DVB (4869): Lgh06xf: use return value of dvb_pll_configure()
Use return value of dvb_pll_configure() to fill priv->frequency
In lgh06xf_set_params:
Rename int variable "err" to "result".
Remove needless calculation of the set frequency, since this value is now
being returned by dvb_pll_configure().
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | drivers/media/dvb/frontends/lgh06xf.c | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/drivers/media/dvb/frontends/lgh06xf.c b/drivers/media/dvb/frontends/lgh06xf.c index badbea8..2202d0c 100644 --- a/drivers/media/dvb/frontends/lgh06xf.c +++ b/drivers/media/dvb/frontends/lgh06xf.c @@ -40,19 +40,23 @@ static int lgh06xf_set_params(struct dvb_frontend* fe, u8 buf[4]; struct i2c_msg msg = { .addr = LG_H06XF_PLL_I2C_ADDR, .flags = 0, .buf = buf, .len = sizeof(buf) }; - u32 div; - int i; - int err; + u32 frequency; + int result; + + if ((result = dvb_pll_configure(&dvb_pll_lg_tdvs_h06xf, buf, + params->frequency, 0)) < 0) + return result; + else + frequency = result; - dvb_pll_configure(&dvb_pll_lg_tdvs_h06xf, buf, params->frequency, 0); if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 1); - if ((err = i2c_transfer(priv->i2c, &msg, 1)) != 1) { + if ((result = i2c_transfer(priv->i2c, &msg, 1)) != 1) { printk(KERN_WARNING "lgh06xf: %s error " - "(addr %02x <- %02x, err = %i)\n", - __FUNCTION__, buf[0], buf[1], err); - if (err < 0) - return err; + "(addr %02x <- %02x, result = %i)\n", + __FUNCTION__, buf[0], buf[1], result); + if (result < 0) + return result; else return -EREMOTEIO; } @@ -65,26 +69,17 @@ static int lgh06xf_set_params(struct dvb_frontend* fe, msg.len = 2; if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 1); - if ((err = i2c_transfer(priv->i2c, &msg, 1)) != 1) { + if ((result = i2c_transfer(priv->i2c, &msg, 1)) != 1) { printk(KERN_WARNING "lgh06xf: %s error " - "(addr %02x <- %02x, err = %i)\n", - __FUNCTION__, buf[0], buf[1], err); - if (err < 0) - return err; + "(addr %02x <- %02x, result = %i)\n", + __FUNCTION__, buf[0], buf[1], result); + if (result < 0) + return result; else return -EREMOTEIO; } - // calculate the frequency we set it to - for (i = 0; i < dvb_pll_lg_tdvs_h06xf.count; i++) { - if (params->frequency > dvb_pll_lg_tdvs_h06xf.entries[i].limit) - continue; - break; - } - div = (params->frequency + dvb_pll_lg_tdvs_h06xf.entries[i].offset) / - dvb_pll_lg_tdvs_h06xf.entries[i].stepsize; - priv->frequency = (div * dvb_pll_lg_tdvs_h06xf.entries[i].stepsize) - - dvb_pll_lg_tdvs_h06xf.entries[i].offset; + priv->frequency = frequency; return 0; } |