summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/tuner-simple.c
diff options
context:
space:
mode:
authorMichael Krufky2008-04-22 19:45:56 +0200
committerMauro Carvalho Chehab2008-04-24 19:07:50 +0200
commita2a7f84b7908c6dba998b43a1ed343aff1d2fd98 (patch)
tree70a46cfd6cc238d9387081c48892d63d974be88c /drivers/media/video/tuner-simple.c
parentV4L/DVB (7359): tuner-simple: enable digital tuning support for Thomson FE6600 (diff)
downloadkernel-qcow2-linux-a2a7f84b7908c6dba998b43a1ed343aff1d2fd98.tar.gz
kernel-qcow2-linux-a2a7f84b7908c6dba998b43a1ed343aff1d2fd98.tar.xz
kernel-qcow2-linux-a2a7f84b7908c6dba998b43a1ed343aff1d2fd98.zip
V4L/DVB (7360): tuner-simple: fix return value of simple_dvb_configure
simple_dvb_configure returns the actual tuned frequency to its caller, so it must be declared as a u32 rather than an int. As a result, we will return 0 to indicate a failure. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/tuner-simple.c')
-rw-r--r--drivers/media/video/tuner-simple.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/media/video/tuner-simple.c b/drivers/media/video/tuner-simple.c
index 5356c8a92413..b95ed1f489a0 100644
--- a/drivers/media/video/tuner-simple.c
+++ b/drivers/media/video/tuner-simple.c
@@ -788,9 +788,10 @@ static void simple_set_dvb(struct dvb_frontend *fe, u8 *buf,
}
}
-static int simple_dvb_configure(struct dvb_frontend *fe, u8 *buf,
+static u32 simple_dvb_configure(struct dvb_frontend *fe, u8 *buf,
const struct dvb_frontend_parameters *params)
{
+ /* This function returns the tuned frequency on success, 0 on error */
struct tuner_simple_priv *priv = fe->tuner_priv;
struct tunertype *tun = priv->tun;
static struct tuner_params *t_params;
@@ -801,7 +802,7 @@ static int simple_dvb_configure(struct dvb_frontend *fe, u8 *buf,
t_params = simple_tuner_params(fe, TUNER_PARAM_TYPE_DIGITAL);
ret = simple_config_lookup(fe, t_params, &frequency, &config, &cb);
if (ret < 0)
- return ret;
+ return 0; /* failure */
div = ((frequency + t_params->iffreq) * 62500 + offset +
tun->stepsize/2) / tun->stepsize;
@@ -825,17 +826,14 @@ static int simple_dvb_calc_regs(struct dvb_frontend *fe,
u8 *buf, int buf_len)
{
struct tuner_simple_priv *priv = fe->tuner_priv;
- int ret;
u32 frequency;
if (buf_len < 5)
return -EINVAL;
- ret = simple_dvb_configure(fe, buf+1, params);
- if (ret < 0)
- return ret;
- else
- frequency = ret;
+ frequency = simple_dvb_configure(fe, buf+1, params);
+ if (frequency == 0)
+ return -EINVAL;
buf[0] = priv->i2c_props.addr;