aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/tua6100.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/frontends/tua6100.c')
-rw-r--r--drivers/media/dvb/frontends/tua6100.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/drivers/media/dvb/frontends/tua6100.c b/drivers/media/dvb/frontends/tua6100.c
index bcb95c2ef296..029384d1fddd 100644
--- a/drivers/media/dvb/frontends/tua6100.c
+++ b/drivers/media/dvb/frontends/tua6100.c
@@ -67,9 +67,9 @@ static int tua6100_sleep(struct dvb_frontend *fe)
67 return (ret == 1) ? 0 : ret; 67 return (ret == 1) ? 0 : ret;
68} 68}
69 69
70static int tua6100_set_params(struct dvb_frontend *fe, 70static int tua6100_set_params(struct dvb_frontend *fe)
71 struct dvb_frontend_parameters *params)
72{ 71{
72 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
73 struct tua6100_priv *priv = fe->tuner_priv; 73 struct tua6100_priv *priv = fe->tuner_priv;
74 u32 div; 74 u32 div;
75 u32 prediv; 75 u32 prediv;
@@ -85,36 +85,37 @@ static int tua6100_set_params(struct dvb_frontend *fe,
85#define _ri 4000000 85#define _ri 4000000
86 86
87 // setup register 0 87 // setup register 0
88 if (params->frequency < 2000000) { 88 if (c->frequency < 2000000)
89 reg0[1] = 0x03; 89 reg0[1] = 0x03;
90 } else { 90 else
91 reg0[1] = 0x07; 91 reg0[1] = 0x07;
92 }
93 92
94 // setup register 1 93 // setup register 1
95 if (params->frequency < 1630000) { 94 if (c->frequency < 1630000)
96 reg1[1] = 0x2c; 95 reg1[1] = 0x2c;
97 } else { 96 else
98 reg1[1] = 0x0c; 97 reg1[1] = 0x0c;
99 } 98
100 if (_P == 64) 99 if (_P == 64)
101 reg1[1] |= 0x40; 100 reg1[1] |= 0x40;
102 if (params->frequency >= 1525000) 101 if (c->frequency >= 1525000)
103 reg1[1] |= 0x80; 102 reg1[1] |= 0x80;
104 103
105 // register 2 104 // register 2
106 reg2[1] = (_R >> 8) & 0x03; 105 reg2[1] = (_R >> 8) & 0x03;
107 reg2[2] = _R; 106 reg2[2] = _R;
108 if (params->frequency < 1455000) { 107 if (c->frequency < 1455000)
109 reg2[1] |= 0x1c; 108 reg2[1] |= 0x1c;
110 } else if (params->frequency < 1630000) { 109 else if (c->frequency < 1630000)
111 reg2[1] |= 0x0c; 110 reg2[1] |= 0x0c;
112 } else { 111 else
113 reg2[1] |= 0x1c; 112 reg2[1] |= 0x1c;
114 }
115 113
116 // The N divisor ratio (note: params->frequency is in kHz, but we need it in Hz) 114 /*
117 prediv = (params->frequency * _R) / (_ri / 1000); 115 * The N divisor ratio (note: c->frequency is in kHz, but we
116 * need it in Hz)
117 */
118 prediv = (c->frequency * _R) / (_ri / 1000);
118 div = prediv / _P; 119 div = prediv / _P;
119 reg1[1] |= (div >> 9) & 0x03; 120 reg1[1] |= (div >> 9) & 0x03;
120 reg1[2] = div >> 1; 121 reg1[2] = div >> 1;