aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/stb0899_drv.c
diff options
context:
space:
mode:
authorManu Abraham <abraham.manu@gmail.com>2008-03-08 18:28:09 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-29 14:53:23 -0500
commite399a7896080183132d875aa5d4faac647688134 (patch)
treed6e8395e5fd1e7c39f3e9cc4a43d563bda064ac4 /drivers/media/dvb/frontends/stb0899_drv.c
parentb91a7cb026124951a34e41f8481f1a4fb754983e (diff)
V4L/DVB (9463): Make delivery system standalone.
Eventhough the delivery system is made standalone, DVBFE_SET_DELSYS needs to be set as the very first operation, for a multistandard frontend Splitting delivery system out as a new ioctl, makes things a bit more easier to understand. Signed-off-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends/stb0899_drv.c')
-rw-r--r--drivers/media/dvb/frontends/stb0899_drv.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/media/dvb/frontends/stb0899_drv.c b/drivers/media/dvb/frontends/stb0899_drv.c
index 38d9fa9c0ac1..e2509bf4a665 100644
--- a/drivers/media/dvb/frontends/stb0899_drv.c
+++ b/drivers/media/dvb/frontends/stb0899_drv.c
@@ -1374,7 +1374,6 @@ static int stb0899_get_info(struct dvb_frontend *fe, struct dvbfe_info *fe_info)
1374 1374
1375 dprintk(verbose, FE_DEBUG, 1, "Get Info"); 1375 dprintk(verbose, FE_DEBUG, 1, "Get Info");
1376 1376
1377 state->delsys = fe_info->delivery;
1378 switch (state->delsys) { 1377 switch (state->delsys) {
1379 case DVBFE_DELSYS_DVBS: 1378 case DVBFE_DELSYS_DVBS:
1380 dprintk(verbose, FE_ERROR, 1, "Querying DVB-S info"); 1379 dprintk(verbose, FE_ERROR, 1, "Querying DVB-S info");
@@ -1404,7 +1403,7 @@ static int stb0899_get_delsys(struct dvb_frontend *fe, enum dvbfe_delsys *fe_del
1404 return 0; 1403 return 0;
1405} 1404}
1406 1405
1407void stb0899_set_delsys(struct stb0899_state *state) 1406static void stb0899_set_delivery(struct stb0899_state *state)
1408{ 1407{
1409 u8 reg; 1408 u8 reg;
1410 u8 stop_clk[2]; 1409 u8 stop_clk[2];
@@ -1563,7 +1562,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa
1563 /* checking Search Range is meaningless for a fixed 3 Mhz */ 1562 /* checking Search Range is meaningless for a fixed 3 Mhz */
1564 if (INRANGE(i_params->srate, 1000000, 45000000)) { 1563 if (INRANGE(i_params->srate, 1000000, 45000000)) {
1565 dprintk(verbose, FE_DEBUG, 1, "Parameters IN RANGE"); 1564 dprintk(verbose, FE_DEBUG, 1, "Parameters IN RANGE");
1566 stb0899_set_delsys(state); 1565 stb0899_set_delivery(state);
1567 1566
1568 if (state->config->tuner_set_rfsiggain) { 1567 if (state->config->tuner_set_rfsiggain) {
1569 if (internal->srate > 15000000) 1568 if (internal->srate > 15000000)
@@ -1934,6 +1933,14 @@ static enum dvbfe_algo stb0899_frontend_algo(struct dvb_frontend *fe)
1934 return DVBFE_ALGO_CUSTOM; 1933 return DVBFE_ALGO_CUSTOM;
1935} 1934}
1936 1935
1936static int stb0899_set_delsys(struct dvb_frontend *fe, enum dvbfe_delsys delsys)
1937{
1938 struct stb0899_state *state = fe->demodulator_priv;
1939
1940 state->delsys = delsys;
1941 return 0;
1942}
1943
1937static struct dvb_frontend_ops stb0899_ops = { 1944static struct dvb_frontend_ops stb0899_ops = {
1938 1945
1939 .info = { 1946 .info = {
@@ -1948,6 +1955,7 @@ static struct dvb_frontend_ops stb0899_ops = {
1948 .i2c_gate_ctrl = stb0899_i2c_gate_ctrl, 1955 .i2c_gate_ctrl = stb0899_i2c_gate_ctrl,
1949 .get_info = stb0899_get_info, 1956 .get_info = stb0899_get_info,
1950 .get_delsys = stb0899_get_delsys, 1957 .get_delsys = stb0899_get_delsys,
1958 .set_delsys = stb0899_set_delsys,
1951 1959
1952 .get_frontend_algo = stb0899_frontend_algo, 1960 .get_frontend_algo = stb0899_frontend_algo,
1953 .search = stb0899_search, 1961 .search = stb0899_search,