Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] ts2020: call get_rf_strength from frontend

Restore ds3000.c read_signal_strength.
Call tuner get_rf_strength from frontend read_signal_strength.
We are able to do a NULL check and doesn't limit the tuner
attach to the frontend attach area.
At the moment the lmedm04 tuner attach is stuck in frontend
attach area.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Malcolm Priestley and committed by
Mauro Carvalho Chehab
a0a030bd 668a8b3b

+13 -2
+10
drivers/media/dvb-frontends/ds3000.c
··· 533 533 return 0; 534 534 } 535 535 536 + static int ds3000_read_signal_strength(struct dvb_frontend *fe, 537 + u16 *signal_strength) 538 + { 539 + if (fe->ops.tuner_ops.get_rf_strength) 540 + fe->ops.tuner_ops.get_rf_strength(fe, signal_strength); 541 + 542 + return 0; 543 + } 544 + 536 545 /* calculate DS3000 snr value in dB */ 537 546 static int ds3000_read_snr(struct dvb_frontend *fe, u16 *snr) 538 547 { ··· 1111 1102 .i2c_gate_ctrl = ds3000_i2c_gate_ctrl, 1112 1103 .read_status = ds3000_read_status, 1113 1104 .read_ber = ds3000_read_ber, 1105 + .read_signal_strength = ds3000_read_signal_strength, 1114 1106 .read_snr = ds3000_read_snr, 1115 1107 .read_ucblocks = ds3000_read_ucblocks, 1116 1108 .set_voltage = ds3000_set_voltage,
+3 -1
drivers/media/dvb-frontends/m88rs2000.c
··· 446 446 static int m88rs2000_read_signal_strength(struct dvb_frontend *fe, 447 447 u16 *strength) 448 448 { 449 - *strength = 0; 449 + if (fe->ops.tuner_ops.get_rf_strength) 450 + fe->ops.tuner_ops.get_rf_strength(fe, strength); 451 + 450 452 return 0; 451 453 } 452 454
-1
drivers/media/dvb-frontends/ts2020.c
··· 363 363 364 364 memcpy(&fe->ops.tuner_ops, &ts2020_tuner_ops, 365 365 sizeof(struct dvb_tuner_ops)); 366 - fe->ops.read_signal_strength = fe->ops.tuner_ops.get_rf_strength; 367 366 368 367 return fe; 369 368 }