diff options
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.h | 1 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/drxk_hard.c | 10 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/tda18271c2dd.c | 4 |
3 files changed, 12 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h b/drivers/media/dvb/dvb-core/dvb_frontend.h index 5590eb6eb408..67bbfa728016 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.h +++ b/drivers/media/dvb/dvb-core/dvb_frontend.h | |||
@@ -209,6 +209,7 @@ struct dvb_tuner_ops { | |||
209 | 209 | ||
210 | int (*get_frequency)(struct dvb_frontend *fe, u32 *frequency); | 210 | int (*get_frequency)(struct dvb_frontend *fe, u32 *frequency); |
211 | int (*get_bandwidth)(struct dvb_frontend *fe, u32 *bandwidth); | 211 | int (*get_bandwidth)(struct dvb_frontend *fe, u32 *bandwidth); |
212 | int (*get_if_frequency)(struct dvb_frontend *fe, u32 *frequency); | ||
212 | 213 | ||
213 | #define TUNER_STATUS_LOCKED 1 | 214 | #define TUNER_STATUS_LOCKED 1 |
214 | #define TUNER_STATUS_STEREO 2 | 215 | #define TUNER_STATUS_STEREO 2 |
diff --git a/drivers/media/dvb/frontends/drxk_hard.c b/drivers/media/dvb/frontends/drxk_hard.c index 41b083820dae..f6431ef827dc 100644 --- a/drivers/media/dvb/frontends/drxk_hard.c +++ b/drivers/media/dvb/frontends/drxk_hard.c | |||
@@ -6211,6 +6211,14 @@ static int drxk_set_parameters(struct dvb_frontend *fe, | |||
6211 | u32 IF; | 6211 | u32 IF; |
6212 | 6212 | ||
6213 | dprintk(1, "\n"); | 6213 | dprintk(1, "\n"); |
6214 | |||
6215 | if (!fe->ops.tuner_ops.get_if_frequency) { | ||
6216 | printk(KERN_ERR | ||
6217 | "drxk: Error: get_if_frequency() not defined at tuner. Can't work without it!\n"); | ||
6218 | return -EINVAL; | ||
6219 | } | ||
6220 | |||
6221 | |||
6214 | if (fe->ops.i2c_gate_ctrl) | 6222 | if (fe->ops.i2c_gate_ctrl) |
6215 | fe->ops.i2c_gate_ctrl(fe, 1); | 6223 | fe->ops.i2c_gate_ctrl(fe, 1); |
6216 | if (fe->ops.tuner_ops.set_params) | 6224 | if (fe->ops.tuner_ops.set_params) |
@@ -6218,7 +6226,7 @@ static int drxk_set_parameters(struct dvb_frontend *fe, | |||
6218 | if (fe->ops.i2c_gate_ctrl) | 6226 | if (fe->ops.i2c_gate_ctrl) |
6219 | fe->ops.i2c_gate_ctrl(fe, 0); | 6227 | fe->ops.i2c_gate_ctrl(fe, 0); |
6220 | state->param = *p; | 6228 | state->param = *p; |
6221 | fe->ops.tuner_ops.get_frequency(fe, &IF); | 6229 | fe->ops.tuner_ops.get_if_frequency(fe, &IF); |
6222 | Start(state, 0, IF); | 6230 | Start(state, 0, IF); |
6223 | 6231 | ||
6224 | /* printk(KERN_DEBUG "drxk: %s IF=%d done\n", __func__, IF); */ | 6232 | /* printk(KERN_DEBUG "drxk: %s IF=%d done\n", __func__, IF); */ |
diff --git a/drivers/media/dvb/frontends/tda18271c2dd.c b/drivers/media/dvb/frontends/tda18271c2dd.c index 0384e8da4f5e..1b1bf200c55c 100644 --- a/drivers/media/dvb/frontends/tda18271c2dd.c +++ b/drivers/media/dvb/frontends/tda18271c2dd.c | |||
@@ -1195,7 +1195,7 @@ static int GetSignalStrength(s32 *pSignalStrength, u32 RFAgc, u32 IFAgc) | |||
1195 | } | 1195 | } |
1196 | #endif | 1196 | #endif |
1197 | 1197 | ||
1198 | static int get_frequency(struct dvb_frontend *fe, u32 *frequency) | 1198 | static int get_if_frequency(struct dvb_frontend *fe, u32 *frequency) |
1199 | { | 1199 | { |
1200 | struct tda_state *state = fe->tuner_priv; | 1200 | struct tda_state *state = fe->tuner_priv; |
1201 | 1201 | ||
@@ -1222,7 +1222,7 @@ static struct dvb_tuner_ops tuner_ops = { | |||
1222 | .sleep = sleep, | 1222 | .sleep = sleep, |
1223 | .set_params = set_params, | 1223 | .set_params = set_params, |
1224 | .release = release, | 1224 | .release = release, |
1225 | .get_frequency = get_frequency, | 1225 | .get_if_frequency = get_if_frequency, |
1226 | .get_bandwidth = get_bandwidth, | 1226 | .get_bandwidth = get_bandwidth, |
1227 | }; | 1227 | }; |
1228 | 1228 | ||