diff options
author | Igor M. Liplianin <liplianin@me.by> | 2011-02-25 16:41:22 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-21 19:32:26 -0400 |
commit | fa8bae102fbbabe9ecc4381ace3b74a199684594 (patch) | |
tree | 33bb9b680e4f1920a7f15dcfdb5a4457fceb1e71 /drivers/media/dvb/frontends | |
parent | 2adc591fb7764bf70f65a5923ff50c1c1b671c20 (diff) |
[media] dw2102: Prof 7500: Lock LED implemented
Code changed for dw2102, stv0900 in order to achieve that.
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends')
-rw-r--r-- | drivers/media/dvb/frontends/stv0900.h | 2 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/stv0900_core.c | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/drivers/media/dvb/frontends/stv0900.h b/drivers/media/dvb/frontends/stv0900.h index e3e35d1ce838..91c7ee8b2313 100644 --- a/drivers/media/dvb/frontends/stv0900.h +++ b/drivers/media/dvb/frontends/stv0900.h | |||
@@ -53,6 +53,8 @@ struct stv0900_config { | |||
53 | u8 tun2_type; | 53 | u8 tun2_type; |
54 | /* Set device param to start dma */ | 54 | /* Set device param to start dma */ |
55 | int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); | 55 | int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); |
56 | /* Hook for Lock LED */ | ||
57 | void (*set_lock_led)(struct dvb_frontend *fe, int offon); | ||
56 | }; | 58 | }; |
57 | 59 | ||
58 | #if defined(CONFIG_DVB_STV0900) || (defined(CONFIG_DVB_STV0900_MODULE) \ | 60 | #if defined(CONFIG_DVB_STV0900) || (defined(CONFIG_DVB_STV0900_MODULE) \ |
diff --git a/drivers/media/dvb/frontends/stv0900_core.c b/drivers/media/dvb/frontends/stv0900_core.c index 4f5e7d3a0e61..1ca1c835048f 100644 --- a/drivers/media/dvb/frontends/stv0900_core.c +++ b/drivers/media/dvb/frontends/stv0900_core.c | |||
@@ -1660,8 +1660,13 @@ static int stv0900_read_status(struct dvb_frontend *fe, enum fe_status *status) | |||
1660 | | FE_HAS_VITERBI | 1660 | | FE_HAS_VITERBI |
1661 | | FE_HAS_SYNC | 1661 | | FE_HAS_SYNC |
1662 | | FE_HAS_LOCK; | 1662 | | FE_HAS_LOCK; |
1663 | } else | 1663 | if (state->config->set_lock_led) |
1664 | state->config->set_lock_led(fe, 1); | ||
1665 | } else { | ||
1666 | if (state->config->set_lock_led) | ||
1667 | state->config->set_lock_led(fe, 0); | ||
1664 | dprintk("DEMOD LOCK FAIL\n"); | 1668 | dprintk("DEMOD LOCK FAIL\n"); |
1669 | } | ||
1665 | 1670 | ||
1666 | return 0; | 1671 | return 0; |
1667 | } | 1672 | } |
@@ -1831,6 +1836,9 @@ static void stv0900_release(struct dvb_frontend *fe) | |||
1831 | 1836 | ||
1832 | dprintk("%s\n", __func__); | 1837 | dprintk("%s\n", __func__); |
1833 | 1838 | ||
1839 | if (state->config->set_lock_led) | ||
1840 | state->config->set_lock_led(fe, 0); | ||
1841 | |||
1834 | if ((--(state->internal->dmds_used)) <= 0) { | 1842 | if ((--(state->internal->dmds_used)) <= 0) { |
1835 | 1843 | ||
1836 | dprintk("%s: Actually removing\n", __func__); | 1844 | dprintk("%s: Actually removing\n", __func__); |
@@ -1842,6 +1850,18 @@ static void stv0900_release(struct dvb_frontend *fe) | |||
1842 | kfree(state); | 1850 | kfree(state); |
1843 | } | 1851 | } |
1844 | 1852 | ||
1853 | static int stv0900_sleep(struct dvb_frontend *fe) | ||
1854 | { | ||
1855 | struct stv0900_state *state = fe->demodulator_priv; | ||
1856 | |||
1857 | dprintk("%s\n", __func__); | ||
1858 | |||
1859 | if (state->config->set_lock_led) | ||
1860 | state->config->set_lock_led(fe, 0); | ||
1861 | |||
1862 | return 0; | ||
1863 | } | ||
1864 | |||
1845 | static int stv0900_get_frontend(struct dvb_frontend *fe, | 1865 | static int stv0900_get_frontend(struct dvb_frontend *fe, |
1846 | struct dvb_frontend_parameters *p) | 1866 | struct dvb_frontend_parameters *p) |
1847 | { | 1867 | { |
@@ -1876,6 +1896,7 @@ static struct dvb_frontend_ops stv0900_ops = { | |||
1876 | .release = stv0900_release, | 1896 | .release = stv0900_release, |
1877 | .init = stv0900_init, | 1897 | .init = stv0900_init, |
1878 | .get_frontend = stv0900_get_frontend, | 1898 | .get_frontend = stv0900_get_frontend, |
1899 | .sleep = stv0900_sleep, | ||
1879 | .get_frontend_algo = stv0900_frontend_algo, | 1900 | .get_frontend_algo = stv0900_frontend_algo, |
1880 | .i2c_gate_ctrl = stv0900_i2c_gate_ctrl, | 1901 | .i2c_gate_ctrl = stv0900_i2c_gate_ctrl, |
1881 | .diseqc_send_master_cmd = stv0900_send_master_cmd, | 1902 | .diseqc_send_master_cmd = stv0900_send_master_cmd, |