diff options
Diffstat (limited to 'drivers/media/dvb/frontends/ves1820.c')
-rw-r--r-- | drivers/media/dvb/frontends/ves1820.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/media/dvb/frontends/ves1820.c b/drivers/media/dvb/frontends/ves1820.c index 9c0d23e1d9e5..70fb44b391a7 100644 --- a/drivers/media/dvb/frontends/ves1820.c +++ b/drivers/media/dvb/frontends/ves1820.c | |||
@@ -70,7 +70,6 @@ static int ves1820_writereg(struct ves1820_state *state, u8 reg, u8 data) | |||
70 | printk("ves1820: %s(): writereg error (reg == 0x%02x," | 70 | printk("ves1820: %s(): writereg error (reg == 0x%02x," |
71 | "val == 0x%02x, ret == %i)\n", __FUNCTION__, reg, data, ret); | 71 | "val == 0x%02x, ret == %i)\n", __FUNCTION__, reg, data, ret); |
72 | 72 | ||
73 | msleep(10); | ||
74 | return (ret != 1) ? -EREMOTEIO : 0; | 73 | return (ret != 1) ? -EREMOTEIO : 0; |
75 | } | 74 | } |
76 | 75 | ||
@@ -193,7 +192,7 @@ static int ves1820_set_symbolrate(struct ves1820_state *state, u32 symbolrate) | |||
193 | 192 | ||
194 | static int ves1820_init(struct dvb_frontend* fe) | 193 | static int ves1820_init(struct dvb_frontend* fe) |
195 | { | 194 | { |
196 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 195 | struct ves1820_state* state = fe->demodulator_priv; |
197 | int i; | 196 | int i; |
198 | int val; | 197 | int val; |
199 | 198 | ||
@@ -214,7 +213,7 @@ static int ves1820_init(struct dvb_frontend* fe) | |||
214 | 213 | ||
215 | static int ves1820_set_parameters(struct dvb_frontend* fe, struct dvb_frontend_parameters *p) | 214 | static int ves1820_set_parameters(struct dvb_frontend* fe, struct dvb_frontend_parameters *p) |
216 | { | 215 | { |
217 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 216 | struct ves1820_state* state = fe->demodulator_priv; |
218 | static const u8 reg0x00[] = { 0x00, 0x04, 0x08, 0x0c, 0x10 }; | 217 | static const u8 reg0x00[] = { 0x00, 0x04, 0x08, 0x0c, 0x10 }; |
219 | static const u8 reg0x01[] = { 140, 140, 106, 100, 92 }; | 218 | static const u8 reg0x01[] = { 140, 140, 106, 100, 92 }; |
220 | static const u8 reg0x05[] = { 135, 100, 70, 54, 38 }; | 219 | static const u8 reg0x05[] = { 135, 100, 70, 54, 38 }; |
@@ -241,7 +240,7 @@ static int ves1820_set_parameters(struct dvb_frontend* fe, struct dvb_frontend_p | |||
241 | 240 | ||
242 | static int ves1820_read_status(struct dvb_frontend* fe, fe_status_t* status) | 241 | static int ves1820_read_status(struct dvb_frontend* fe, fe_status_t* status) |
243 | { | 242 | { |
244 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 243 | struct ves1820_state* state = fe->demodulator_priv; |
245 | int sync; | 244 | int sync; |
246 | 245 | ||
247 | *status = 0; | 246 | *status = 0; |
@@ -267,7 +266,7 @@ static int ves1820_read_status(struct dvb_frontend* fe, fe_status_t* status) | |||
267 | 266 | ||
268 | static int ves1820_read_ber(struct dvb_frontend* fe, u32* ber) | 267 | static int ves1820_read_ber(struct dvb_frontend* fe, u32* ber) |
269 | { | 268 | { |
270 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 269 | struct ves1820_state* state = fe->demodulator_priv; |
271 | 270 | ||
272 | u32 _ber = ves1820_readreg(state, 0x14) | | 271 | u32 _ber = ves1820_readreg(state, 0x14) | |
273 | (ves1820_readreg(state, 0x15) << 8) | | 272 | (ves1820_readreg(state, 0x15) << 8) | |
@@ -279,7 +278,7 @@ static int ves1820_read_ber(struct dvb_frontend* fe, u32* ber) | |||
279 | 278 | ||
280 | static int ves1820_read_signal_strength(struct dvb_frontend* fe, u16* strength) | 279 | static int ves1820_read_signal_strength(struct dvb_frontend* fe, u16* strength) |
281 | { | 280 | { |
282 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 281 | struct ves1820_state* state = fe->demodulator_priv; |
283 | 282 | ||
284 | u8 gain = ves1820_readreg(state, 0x17); | 283 | u8 gain = ves1820_readreg(state, 0x17); |
285 | *strength = (gain << 8) | gain; | 284 | *strength = (gain << 8) | gain; |
@@ -289,7 +288,7 @@ static int ves1820_read_signal_strength(struct dvb_frontend* fe, u16* strength) | |||
289 | 288 | ||
290 | static int ves1820_read_snr(struct dvb_frontend* fe, u16* snr) | 289 | static int ves1820_read_snr(struct dvb_frontend* fe, u16* snr) |
291 | { | 290 | { |
292 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 291 | struct ves1820_state* state = fe->demodulator_priv; |
293 | 292 | ||
294 | u8 quality = ~ves1820_readreg(state, 0x18); | 293 | u8 quality = ~ves1820_readreg(state, 0x18); |
295 | *snr = (quality << 8) | quality; | 294 | *snr = (quality << 8) | quality; |
@@ -299,7 +298,7 @@ static int ves1820_read_snr(struct dvb_frontend* fe, u16* snr) | |||
299 | 298 | ||
300 | static int ves1820_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) | 299 | static int ves1820_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) |
301 | { | 300 | { |
302 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 301 | struct ves1820_state* state = fe->demodulator_priv; |
303 | 302 | ||
304 | *ucblocks = ves1820_readreg(state, 0x13) & 0x7f; | 303 | *ucblocks = ves1820_readreg(state, 0x13) & 0x7f; |
305 | if (*ucblocks == 0x7f) | 304 | if (*ucblocks == 0x7f) |
@@ -314,7 +313,7 @@ static int ves1820_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) | |||
314 | 313 | ||
315 | static int ves1820_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters *p) | 314 | static int ves1820_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters *p) |
316 | { | 315 | { |
317 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 316 | struct ves1820_state* state = fe->demodulator_priv; |
318 | int sync; | 317 | int sync; |
319 | s8 afc = 0; | 318 | s8 afc = 0; |
320 | 319 | ||
@@ -345,7 +344,7 @@ static int ves1820_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_par | |||
345 | 344 | ||
346 | static int ves1820_sleep(struct dvb_frontend* fe) | 345 | static int ves1820_sleep(struct dvb_frontend* fe) |
347 | { | 346 | { |
348 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 347 | struct ves1820_state* state = fe->demodulator_priv; |
349 | 348 | ||
350 | ves1820_writereg(state, 0x1b, 0x02); /* pdown ADC */ | 349 | ves1820_writereg(state, 0x1b, 0x02); /* pdown ADC */ |
351 | ves1820_writereg(state, 0x00, 0x80); /* standby */ | 350 | ves1820_writereg(state, 0x00, 0x80); /* standby */ |
@@ -364,7 +363,7 @@ static int ves1820_get_tune_settings(struct dvb_frontend* fe, struct dvb_fronten | |||
364 | 363 | ||
365 | static void ves1820_release(struct dvb_frontend* fe) | 364 | static void ves1820_release(struct dvb_frontend* fe) |
366 | { | 365 | { |
367 | struct ves1820_state* state = (struct ves1820_state*) fe->demodulator_priv; | 366 | struct ves1820_state* state = fe->demodulator_priv; |
368 | kfree(state); | 367 | kfree(state); |
369 | } | 368 | } |
370 | 369 | ||
@@ -377,7 +376,7 @@ struct dvb_frontend* ves1820_attach(const struct ves1820_config* config, | |||
377 | struct ves1820_state* state = NULL; | 376 | struct ves1820_state* state = NULL; |
378 | 377 | ||
379 | /* allocate memory for the internal state */ | 378 | /* allocate memory for the internal state */ |
380 | state = (struct ves1820_state*) kmalloc(sizeof(struct ves1820_state), GFP_KERNEL); | 379 | state = kmalloc(sizeof(struct ves1820_state), GFP_KERNEL); |
381 | if (state == NULL) | 380 | if (state == NULL) |
382 | goto error; | 381 | goto error; |
383 | 382 | ||