diff options
Diffstat (limited to 'drivers/media/dvb/frontends/cx22702.c')
-rw-r--r-- | drivers/media/dvb/frontends/cx22702.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/media/dvb/frontends/cx22702.c b/drivers/media/dvb/frontends/cx22702.c index 1930b513eefa..011860ce36cc 100644 --- a/drivers/media/dvb/frontends/cx22702.c +++ b/drivers/media/dvb/frontends/cx22702.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
33 | #include <linux/delay.h> | 33 | #include <linux/delay.h> |
34 | #include "dvb_frontend.h" | 34 | #include "dvb_frontend.h" |
35 | #include "dvb-pll.h" | ||
35 | #include "cx22702.h" | 36 | #include "cx22702.h" |
36 | 37 | ||
37 | 38 | ||
@@ -203,7 +204,19 @@ static int cx22702_set_tps (struct dvb_frontend* fe, struct dvb_frontend_paramet | |||
203 | 204 | ||
204 | /* set PLL */ | 205 | /* set PLL */ |
205 | cx22702_writereg (state, 0x0D, cx22702_readreg(state,0x0D) &0xfe); | 206 | cx22702_writereg (state, 0x0D, cx22702_readreg(state,0x0D) &0xfe); |
206 | state->config->pll_set(fe, p); | 207 | if (state->config->pll_set) { |
208 | state->config->pll_set(fe, p); | ||
209 | } else if (state->config->pll_desc) { | ||
210 | u8 pllbuf[4]; | ||
211 | struct i2c_msg msg = { .addr = state->config->pll_address, | ||
212 | .buf = pllbuf, .len = 4 }; | ||
213 | dvb_pll_configure(state->config->pll_desc, pllbuf, | ||
214 | p->frequency, | ||
215 | p->u.ofdm.bandwidth); | ||
216 | i2c_transfer(state->i2c, &msg, 1); | ||
217 | } else { | ||
218 | BUG(); | ||
219 | } | ||
207 | cx22702_writereg (state, 0x0D, cx22702_readreg(state,0x0D) | 1); | 220 | cx22702_writereg (state, 0x0D, cx22702_readreg(state,0x0D) | 1); |
208 | 221 | ||
209 | /* set inversion */ | 222 | /* set inversion */ |