diff options
-rw-r--r-- | drivers/media/dvb-frontends/af9033.c | 328 |
1 files changed, 164 insertions, 164 deletions
diff --git a/drivers/media/dvb-frontends/af9033.c b/drivers/media/dvb-frontends/af9033.c index 7d637b92ff25..43b7335f27e4 100644 --- a/drivers/media/dvb-frontends/af9033.c +++ b/drivers/media/dvb-frontends/af9033.c | |||
@@ -24,7 +24,7 @@ | |||
24 | /* Max transfer size done by I2C transfer functions */ | 24 | /* Max transfer size done by I2C transfer functions */ |
25 | #define MAX_XFER_SIZE 64 | 25 | #define MAX_XFER_SIZE 64 |
26 | 26 | ||
27 | struct af9033_state { | 27 | struct af9033_dev { |
28 | struct i2c_adapter *i2c; | 28 | struct i2c_adapter *i2c; |
29 | struct dvb_frontend fe; | 29 | struct dvb_frontend fe; |
30 | struct af9033_config cfg; | 30 | struct af9033_config cfg; |
@@ -39,14 +39,14 @@ struct af9033_state { | |||
39 | }; | 39 | }; |
40 | 40 | ||
41 | /* write multiple registers */ | 41 | /* write multiple registers */ |
42 | static int af9033_wr_regs(struct af9033_state *state, u32 reg, const u8 *val, | 42 | static int af9033_wr_regs(struct af9033_dev *dev, u32 reg, const u8 *val, |
43 | int len) | 43 | int len) |
44 | { | 44 | { |
45 | int ret; | 45 | int ret; |
46 | u8 buf[MAX_XFER_SIZE]; | 46 | u8 buf[MAX_XFER_SIZE]; |
47 | struct i2c_msg msg[1] = { | 47 | struct i2c_msg msg[1] = { |
48 | { | 48 | { |
49 | .addr = state->cfg.i2c_addr, | 49 | .addr = dev->cfg.i2c_addr, |
50 | .flags = 0, | 50 | .flags = 0, |
51 | .len = 3 + len, | 51 | .len = 3 + len, |
52 | .buf = buf, | 52 | .buf = buf, |
@@ -54,7 +54,7 @@ static int af9033_wr_regs(struct af9033_state *state, u32 reg, const u8 *val, | |||
54 | }; | 54 | }; |
55 | 55 | ||
56 | if (3 + len > sizeof(buf)) { | 56 | if (3 + len > sizeof(buf)) { |
57 | dev_warn(&state->i2c->dev, | 57 | dev_warn(&dev->i2c->dev, |
58 | "%s: i2c wr reg=%04x: len=%d is too big!\n", | 58 | "%s: i2c wr reg=%04x: len=%d is too big!\n", |
59 | KBUILD_MODNAME, reg, len); | 59 | KBUILD_MODNAME, reg, len); |
60 | return -EINVAL; | 60 | return -EINVAL; |
@@ -65,11 +65,11 @@ static int af9033_wr_regs(struct af9033_state *state, u32 reg, const u8 *val, | |||
65 | buf[2] = (reg >> 0) & 0xff; | 65 | buf[2] = (reg >> 0) & 0xff; |
66 | memcpy(&buf[3], val, len); | 66 | memcpy(&buf[3], val, len); |
67 | 67 | ||
68 | ret = i2c_transfer(state->i2c, msg, 1); | 68 | ret = i2c_transfer(dev->i2c, msg, 1); |
69 | if (ret == 1) { | 69 | if (ret == 1) { |
70 | ret = 0; | 70 | ret = 0; |
71 | } else { | 71 | } else { |
72 | dev_warn(&state->i2c->dev, | 72 | dev_warn(&dev->i2c->dev, |
73 | "%s: i2c wr failed=%d reg=%06x len=%d\n", | 73 | "%s: i2c wr failed=%d reg=%06x len=%d\n", |
74 | KBUILD_MODNAME, ret, reg, len); | 74 | KBUILD_MODNAME, ret, reg, len); |
75 | ret = -EREMOTEIO; | 75 | ret = -EREMOTEIO; |
@@ -79,30 +79,30 @@ static int af9033_wr_regs(struct af9033_state *state, u32 reg, const u8 *val, | |||
79 | } | 79 | } |
80 | 80 | ||
81 | /* read multiple registers */ | 81 | /* read multiple registers */ |
82 | static int af9033_rd_regs(struct af9033_state *state, u32 reg, u8 *val, int len) | 82 | static int af9033_rd_regs(struct af9033_dev *dev, u32 reg, u8 *val, int len) |
83 | { | 83 | { |
84 | int ret; | 84 | int ret; |
85 | u8 buf[3] = { (reg >> 16) & 0xff, (reg >> 8) & 0xff, | 85 | u8 buf[3] = { (reg >> 16) & 0xff, (reg >> 8) & 0xff, |
86 | (reg >> 0) & 0xff }; | 86 | (reg >> 0) & 0xff }; |
87 | struct i2c_msg msg[2] = { | 87 | struct i2c_msg msg[2] = { |
88 | { | 88 | { |
89 | .addr = state->cfg.i2c_addr, | 89 | .addr = dev->cfg.i2c_addr, |
90 | .flags = 0, | 90 | .flags = 0, |
91 | .len = sizeof(buf), | 91 | .len = sizeof(buf), |
92 | .buf = buf | 92 | .buf = buf |
93 | }, { | 93 | }, { |
94 | .addr = state->cfg.i2c_addr, | 94 | .addr = dev->cfg.i2c_addr, |
95 | .flags = I2C_M_RD, | 95 | .flags = I2C_M_RD, |
96 | .len = len, | 96 | .len = len, |
97 | .buf = val | 97 | .buf = val |
98 | } | 98 | } |
99 | }; | 99 | }; |
100 | 100 | ||
101 | ret = i2c_transfer(state->i2c, msg, 2); | 101 | ret = i2c_transfer(dev->i2c, msg, 2); |
102 | if (ret == 2) { | 102 | if (ret == 2) { |
103 | ret = 0; | 103 | ret = 0; |
104 | } else { | 104 | } else { |
105 | dev_warn(&state->i2c->dev, | 105 | dev_warn(&dev->i2c->dev, |
106 | "%s: i2c rd failed=%d reg=%06x len=%d\n", | 106 | "%s: i2c rd failed=%d reg=%06x len=%d\n", |
107 | KBUILD_MODNAME, ret, reg, len); | 107 | KBUILD_MODNAME, ret, reg, len); |
108 | ret = -EREMOTEIO; | 108 | ret = -EREMOTEIO; |
@@ -113,19 +113,19 @@ static int af9033_rd_regs(struct af9033_state *state, u32 reg, u8 *val, int len) | |||
113 | 113 | ||
114 | 114 | ||
115 | /* write single register */ | 115 | /* write single register */ |
116 | static int af9033_wr_reg(struct af9033_state *state, u32 reg, u8 val) | 116 | static int af9033_wr_reg(struct af9033_dev *dev, u32 reg, u8 val) |
117 | { | 117 | { |
118 | return af9033_wr_regs(state, reg, &val, 1); | 118 | return af9033_wr_regs(dev, reg, &val, 1); |
119 | } | 119 | } |
120 | 120 | ||
121 | /* read single register */ | 121 | /* read single register */ |
122 | static int af9033_rd_reg(struct af9033_state *state, u32 reg, u8 *val) | 122 | static int af9033_rd_reg(struct af9033_dev *dev, u32 reg, u8 *val) |
123 | { | 123 | { |
124 | return af9033_rd_regs(state, reg, val, 1); | 124 | return af9033_rd_regs(dev, reg, val, 1); |
125 | } | 125 | } |
126 | 126 | ||
127 | /* write single register with mask */ | 127 | /* write single register with mask */ |
128 | static int af9033_wr_reg_mask(struct af9033_state *state, u32 reg, u8 val, | 128 | static int af9033_wr_reg_mask(struct af9033_dev *dev, u32 reg, u8 val, |
129 | u8 mask) | 129 | u8 mask) |
130 | { | 130 | { |
131 | int ret; | 131 | int ret; |
@@ -133,7 +133,7 @@ static int af9033_wr_reg_mask(struct af9033_state *state, u32 reg, u8 val, | |||
133 | 133 | ||
134 | /* no need for read if whole reg is written */ | 134 | /* no need for read if whole reg is written */ |
135 | if (mask != 0xff) { | 135 | if (mask != 0xff) { |
136 | ret = af9033_rd_regs(state, reg, &tmp, 1); | 136 | ret = af9033_rd_regs(dev, reg, &tmp, 1); |
137 | if (ret) | 137 | if (ret) |
138 | return ret; | 138 | return ret; |
139 | 139 | ||
@@ -142,17 +142,17 @@ static int af9033_wr_reg_mask(struct af9033_state *state, u32 reg, u8 val, | |||
142 | val |= tmp; | 142 | val |= tmp; |
143 | } | 143 | } |
144 | 144 | ||
145 | return af9033_wr_regs(state, reg, &val, 1); | 145 | return af9033_wr_regs(dev, reg, &val, 1); |
146 | } | 146 | } |
147 | 147 | ||
148 | /* read single register with mask */ | 148 | /* read single register with mask */ |
149 | static int af9033_rd_reg_mask(struct af9033_state *state, u32 reg, u8 *val, | 149 | static int af9033_rd_reg_mask(struct af9033_dev *dev, u32 reg, u8 *val, |
150 | u8 mask) | 150 | u8 mask) |
151 | { | 151 | { |
152 | int ret, i; | 152 | int ret, i; |
153 | u8 tmp; | 153 | u8 tmp; |
154 | 154 | ||
155 | ret = af9033_rd_regs(state, reg, &tmp, 1); | 155 | ret = af9033_rd_regs(dev, reg, &tmp, 1); |
156 | if (ret) | 156 | if (ret) |
157 | return ret; | 157 | return ret; |
158 | 158 | ||
@@ -169,17 +169,17 @@ static int af9033_rd_reg_mask(struct af9033_state *state, u32 reg, u8 *val, | |||
169 | } | 169 | } |
170 | 170 | ||
171 | /* write reg val table using reg addr auto increment */ | 171 | /* write reg val table using reg addr auto increment */ |
172 | static int af9033_wr_reg_val_tab(struct af9033_state *state, | 172 | static int af9033_wr_reg_val_tab(struct af9033_dev *dev, |
173 | const struct reg_val *tab, int tab_len) | 173 | const struct reg_val *tab, int tab_len) |
174 | { | 174 | { |
175 | #define MAX_TAB_LEN 212 | 175 | #define MAX_TAB_LEN 212 |
176 | int ret, i, j; | 176 | int ret, i, j; |
177 | u8 buf[1 + MAX_TAB_LEN]; | 177 | u8 buf[1 + MAX_TAB_LEN]; |
178 | 178 | ||
179 | dev_dbg(&state->i2c->dev, "%s: tab_len=%d\n", __func__, tab_len); | 179 | dev_dbg(&dev->i2c->dev, "%s: tab_len=%d\n", __func__, tab_len); |
180 | 180 | ||
181 | if (tab_len > sizeof(buf)) { | 181 | if (tab_len > sizeof(buf)) { |
182 | dev_warn(&state->i2c->dev, "%s: tab len %d is too big\n", | 182 | dev_warn(&dev->i2c->dev, "%s: tab len %d is too big\n", |
183 | KBUILD_MODNAME, tab_len); | 183 | KBUILD_MODNAME, tab_len); |
184 | return -EINVAL; | 184 | return -EINVAL; |
185 | } | 185 | } |
@@ -188,7 +188,7 @@ static int af9033_wr_reg_val_tab(struct af9033_state *state, | |||
188 | buf[j] = tab[i].val; | 188 | buf[j] = tab[i].val; |
189 | 189 | ||
190 | if (i == tab_len - 1 || tab[i].reg != tab[i + 1].reg - 1) { | 190 | if (i == tab_len - 1 || tab[i].reg != tab[i + 1].reg - 1) { |
191 | ret = af9033_wr_regs(state, tab[i].reg - j, buf, j + 1); | 191 | ret = af9033_wr_regs(dev, tab[i].reg - j, buf, j + 1); |
192 | if (ret < 0) | 192 | if (ret < 0) |
193 | goto err; | 193 | goto err; |
194 | 194 | ||
@@ -201,16 +201,16 @@ static int af9033_wr_reg_val_tab(struct af9033_state *state, | |||
201 | return 0; | 201 | return 0; |
202 | 202 | ||
203 | err: | 203 | err: |
204 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 204 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
205 | 205 | ||
206 | return ret; | 206 | return ret; |
207 | } | 207 | } |
208 | 208 | ||
209 | static u32 af9033_div(struct af9033_state *state, u32 a, u32 b, u32 x) | 209 | static u32 af9033_div(struct af9033_dev *dev, u32 a, u32 b, u32 x) |
210 | { | 210 | { |
211 | u32 r = 0, c = 0, i; | 211 | u32 r = 0, c = 0, i; |
212 | 212 | ||
213 | dev_dbg(&state->i2c->dev, "%s: a=%d b=%d x=%d\n", __func__, a, b, x); | 213 | dev_dbg(&dev->i2c->dev, "%s: a=%d b=%d x=%d\n", __func__, a, b, x); |
214 | 214 | ||
215 | if (a > b) { | 215 | if (a > b) { |
216 | c = a / b; | 216 | c = a / b; |
@@ -227,7 +227,7 @@ static u32 af9033_div(struct af9033_state *state, u32 a, u32 b, u32 x) | |||
227 | } | 227 | } |
228 | r = (c << (u32)x) + r; | 228 | r = (c << (u32)x) + r; |
229 | 229 | ||
230 | dev_dbg(&state->i2c->dev, "%s: a=%d b=%d x=%d r=%d r=%x\n", | 230 | dev_dbg(&dev->i2c->dev, "%s: a=%d b=%d x=%d r=%d r=%x\n", |
231 | __func__, a, b, x, r, r); | 231 | __func__, a, b, x, r, r); |
232 | 232 | ||
233 | return r; | 233 | return r; |
@@ -235,14 +235,14 @@ static u32 af9033_div(struct af9033_state *state, u32 a, u32 b, u32 x) | |||
235 | 235 | ||
236 | static void af9033_release(struct dvb_frontend *fe) | 236 | static void af9033_release(struct dvb_frontend *fe) |
237 | { | 237 | { |
238 | struct af9033_state *state = fe->demodulator_priv; | 238 | struct af9033_dev *dev = fe->demodulator_priv; |
239 | 239 | ||
240 | kfree(state); | 240 | kfree(dev); |
241 | } | 241 | } |
242 | 242 | ||
243 | static int af9033_init(struct dvb_frontend *fe) | 243 | static int af9033_init(struct dvb_frontend *fe) |
244 | { | 244 | { |
245 | struct af9033_state *state = fe->demodulator_priv; | 245 | struct af9033_dev *dev = fe->demodulator_priv; |
246 | int ret, i, len; | 246 | int ret, i, len; |
247 | const struct reg_val *init; | 247 | const struct reg_val *init; |
248 | u8 buf[4]; | 248 | u8 buf[4]; |
@@ -250,7 +250,7 @@ static int af9033_init(struct dvb_frontend *fe) | |||
250 | struct reg_val_mask tab[] = { | 250 | struct reg_val_mask tab[] = { |
251 | { 0x80fb24, 0x00, 0x08 }, | 251 | { 0x80fb24, 0x00, 0x08 }, |
252 | { 0x80004c, 0x00, 0xff }, | 252 | { 0x80004c, 0x00, 0xff }, |
253 | { 0x00f641, state->cfg.tuner, 0xff }, | 253 | { 0x00f641, dev->cfg.tuner, 0xff }, |
254 | { 0x80f5ca, 0x01, 0x01 }, | 254 | { 0x80f5ca, 0x01, 0x01 }, |
255 | { 0x80f715, 0x01, 0x01 }, | 255 | { 0x80f715, 0x01, 0x01 }, |
256 | { 0x00f41f, 0x04, 0x04 }, | 256 | { 0x00f41f, 0x04, 0x04 }, |
@@ -269,82 +269,82 @@ static int af9033_init(struct dvb_frontend *fe) | |||
269 | { 0x00d830, 0x01, 0xff }, | 269 | { 0x00d830, 0x01, 0xff }, |
270 | { 0x00d831, 0x00, 0xff }, | 270 | { 0x00d831, 0x00, 0xff }, |
271 | { 0x00d832, 0x00, 0xff }, | 271 | { 0x00d832, 0x00, 0xff }, |
272 | { 0x80f985, state->ts_mode_serial, 0x01 }, | 272 | { 0x80f985, dev->ts_mode_serial, 0x01 }, |
273 | { 0x80f986, state->ts_mode_parallel, 0x01 }, | 273 | { 0x80f986, dev->ts_mode_parallel, 0x01 }, |
274 | { 0x00d827, 0x00, 0xff }, | 274 | { 0x00d827, 0x00, 0xff }, |
275 | { 0x00d829, 0x00, 0xff }, | 275 | { 0x00d829, 0x00, 0xff }, |
276 | { 0x800045, state->cfg.adc_multiplier, 0xff }, | 276 | { 0x800045, dev->cfg.adc_multiplier, 0xff }, |
277 | }; | 277 | }; |
278 | 278 | ||
279 | /* program clock control */ | 279 | /* program clock control */ |
280 | clock_cw = af9033_div(state, state->cfg.clock, 1000000ul, 19ul); | 280 | clock_cw = af9033_div(dev, dev->cfg.clock, 1000000ul, 19ul); |
281 | buf[0] = (clock_cw >> 0) & 0xff; | 281 | buf[0] = (clock_cw >> 0) & 0xff; |
282 | buf[1] = (clock_cw >> 8) & 0xff; | 282 | buf[1] = (clock_cw >> 8) & 0xff; |
283 | buf[2] = (clock_cw >> 16) & 0xff; | 283 | buf[2] = (clock_cw >> 16) & 0xff; |
284 | buf[3] = (clock_cw >> 24) & 0xff; | 284 | buf[3] = (clock_cw >> 24) & 0xff; |
285 | 285 | ||
286 | dev_dbg(&state->i2c->dev, "%s: clock=%d clock_cw=%08x\n", | 286 | dev_dbg(&dev->i2c->dev, "%s: clock=%d clock_cw=%08x\n", |
287 | __func__, state->cfg.clock, clock_cw); | 287 | __func__, dev->cfg.clock, clock_cw); |
288 | 288 | ||
289 | ret = af9033_wr_regs(state, 0x800025, buf, 4); | 289 | ret = af9033_wr_regs(dev, 0x800025, buf, 4); |
290 | if (ret < 0) | 290 | if (ret < 0) |
291 | goto err; | 291 | goto err; |
292 | 292 | ||
293 | /* program ADC control */ | 293 | /* program ADC control */ |
294 | for (i = 0; i < ARRAY_SIZE(clock_adc_lut); i++) { | 294 | for (i = 0; i < ARRAY_SIZE(clock_adc_lut); i++) { |
295 | if (clock_adc_lut[i].clock == state->cfg.clock) | 295 | if (clock_adc_lut[i].clock == dev->cfg.clock) |
296 | break; | 296 | break; |
297 | } | 297 | } |
298 | 298 | ||
299 | adc_cw = af9033_div(state, clock_adc_lut[i].adc, 1000000ul, 19ul); | 299 | adc_cw = af9033_div(dev, clock_adc_lut[i].adc, 1000000ul, 19ul); |
300 | buf[0] = (adc_cw >> 0) & 0xff; | 300 | buf[0] = (adc_cw >> 0) & 0xff; |
301 | buf[1] = (adc_cw >> 8) & 0xff; | 301 | buf[1] = (adc_cw >> 8) & 0xff; |
302 | buf[2] = (adc_cw >> 16) & 0xff; | 302 | buf[2] = (adc_cw >> 16) & 0xff; |
303 | 303 | ||
304 | dev_dbg(&state->i2c->dev, "%s: adc=%d adc_cw=%06x\n", | 304 | dev_dbg(&dev->i2c->dev, "%s: adc=%d adc_cw=%06x\n", |
305 | __func__, clock_adc_lut[i].adc, adc_cw); | 305 | __func__, clock_adc_lut[i].adc, adc_cw); |
306 | 306 | ||
307 | ret = af9033_wr_regs(state, 0x80f1cd, buf, 3); | 307 | ret = af9033_wr_regs(dev, 0x80f1cd, buf, 3); |
308 | if (ret < 0) | 308 | if (ret < 0) |
309 | goto err; | 309 | goto err; |
310 | 310 | ||
311 | /* program register table */ | 311 | /* program register table */ |
312 | for (i = 0; i < ARRAY_SIZE(tab); i++) { | 312 | for (i = 0; i < ARRAY_SIZE(tab); i++) { |
313 | ret = af9033_wr_reg_mask(state, tab[i].reg, tab[i].val, | 313 | ret = af9033_wr_reg_mask(dev, tab[i].reg, tab[i].val, |
314 | tab[i].mask); | 314 | tab[i].mask); |
315 | if (ret < 0) | 315 | if (ret < 0) |
316 | goto err; | 316 | goto err; |
317 | } | 317 | } |
318 | 318 | ||
319 | /* clock output */ | 319 | /* clock output */ |
320 | if (state->cfg.dyn0_clk) { | 320 | if (dev->cfg.dyn0_clk) { |
321 | ret = af9033_wr_reg(state, 0x80fba8, 0x00); | 321 | ret = af9033_wr_reg(dev, 0x80fba8, 0x00); |
322 | if (ret < 0) | 322 | if (ret < 0) |
323 | goto err; | 323 | goto err; |
324 | } | 324 | } |
325 | 325 | ||
326 | /* settings for TS interface */ | 326 | /* settings for TS interface */ |
327 | if (state->cfg.ts_mode == AF9033_TS_MODE_USB) { | 327 | if (dev->cfg.ts_mode == AF9033_TS_MODE_USB) { |
328 | ret = af9033_wr_reg_mask(state, 0x80f9a5, 0x00, 0x01); | 328 | ret = af9033_wr_reg_mask(dev, 0x80f9a5, 0x00, 0x01); |
329 | if (ret < 0) | 329 | if (ret < 0) |
330 | goto err; | 330 | goto err; |
331 | 331 | ||
332 | ret = af9033_wr_reg_mask(state, 0x80f9b5, 0x01, 0x01); | 332 | ret = af9033_wr_reg_mask(dev, 0x80f9b5, 0x01, 0x01); |
333 | if (ret < 0) | 333 | if (ret < 0) |
334 | goto err; | 334 | goto err; |
335 | } else { | 335 | } else { |
336 | ret = af9033_wr_reg_mask(state, 0x80f990, 0x00, 0x01); | 336 | ret = af9033_wr_reg_mask(dev, 0x80f990, 0x00, 0x01); |
337 | if (ret < 0) | 337 | if (ret < 0) |
338 | goto err; | 338 | goto err; |
339 | 339 | ||
340 | ret = af9033_wr_reg_mask(state, 0x80f9b5, 0x00, 0x01); | 340 | ret = af9033_wr_reg_mask(dev, 0x80f9b5, 0x00, 0x01); |
341 | if (ret < 0) | 341 | if (ret < 0) |
342 | goto err; | 342 | goto err; |
343 | } | 343 | } |
344 | 344 | ||
345 | /* load OFSM settings */ | 345 | /* load OFSM settings */ |
346 | dev_dbg(&state->i2c->dev, "%s: load ofsm settings\n", __func__); | 346 | dev_dbg(&dev->i2c->dev, "%s: load ofsm settings\n", __func__); |
347 | switch (state->cfg.tuner) { | 347 | switch (dev->cfg.tuner) { |
348 | case AF9033_TUNER_IT9135_38: | 348 | case AF9033_TUNER_IT9135_38: |
349 | case AF9033_TUNER_IT9135_51: | 349 | case AF9033_TUNER_IT9135_51: |
350 | case AF9033_TUNER_IT9135_52: | 350 | case AF9033_TUNER_IT9135_52: |
@@ -363,14 +363,14 @@ static int af9033_init(struct dvb_frontend *fe) | |||
363 | break; | 363 | break; |
364 | } | 364 | } |
365 | 365 | ||
366 | ret = af9033_wr_reg_val_tab(state, init, len); | 366 | ret = af9033_wr_reg_val_tab(dev, init, len); |
367 | if (ret < 0) | 367 | if (ret < 0) |
368 | goto err; | 368 | goto err; |
369 | 369 | ||
370 | /* load tuner specific settings */ | 370 | /* load tuner specific settings */ |
371 | dev_dbg(&state->i2c->dev, "%s: load tuner specific settings\n", | 371 | dev_dbg(&dev->i2c->dev, "%s: load tuner specific settings\n", |
372 | __func__); | 372 | __func__); |
373 | switch (state->cfg.tuner) { | 373 | switch (dev->cfg.tuner) { |
374 | case AF9033_TUNER_TUA9001: | 374 | case AF9033_TUNER_TUA9001: |
375 | len = ARRAY_SIZE(tuner_init_tua9001); | 375 | len = ARRAY_SIZE(tuner_init_tua9001); |
376 | init = tuner_init_tua9001; | 376 | init = tuner_init_tua9001; |
@@ -420,90 +420,90 @@ static int af9033_init(struct dvb_frontend *fe) | |||
420 | init = tuner_init_it9135_62; | 420 | init = tuner_init_it9135_62; |
421 | break; | 421 | break; |
422 | default: | 422 | default: |
423 | dev_dbg(&state->i2c->dev, "%s: unsupported tuner ID=%d\n", | 423 | dev_dbg(&dev->i2c->dev, "%s: unsupported tuner ID=%d\n", |
424 | __func__, state->cfg.tuner); | 424 | __func__, dev->cfg.tuner); |
425 | ret = -ENODEV; | 425 | ret = -ENODEV; |
426 | goto err; | 426 | goto err; |
427 | } | 427 | } |
428 | 428 | ||
429 | ret = af9033_wr_reg_val_tab(state, init, len); | 429 | ret = af9033_wr_reg_val_tab(dev, init, len); |
430 | if (ret < 0) | 430 | if (ret < 0) |
431 | goto err; | 431 | goto err; |
432 | 432 | ||
433 | if (state->cfg.ts_mode == AF9033_TS_MODE_SERIAL) { | 433 | if (dev->cfg.ts_mode == AF9033_TS_MODE_SERIAL) { |
434 | ret = af9033_wr_reg_mask(state, 0x00d91c, 0x01, 0x01); | 434 | ret = af9033_wr_reg_mask(dev, 0x00d91c, 0x01, 0x01); |
435 | if (ret < 0) | 435 | if (ret < 0) |
436 | goto err; | 436 | goto err; |
437 | 437 | ||
438 | ret = af9033_wr_reg_mask(state, 0x00d917, 0x00, 0x01); | 438 | ret = af9033_wr_reg_mask(dev, 0x00d917, 0x00, 0x01); |
439 | if (ret < 0) | 439 | if (ret < 0) |
440 | goto err; | 440 | goto err; |
441 | 441 | ||
442 | ret = af9033_wr_reg_mask(state, 0x00d916, 0x00, 0x01); | 442 | ret = af9033_wr_reg_mask(dev, 0x00d916, 0x00, 0x01); |
443 | if (ret < 0) | 443 | if (ret < 0) |
444 | goto err; | 444 | goto err; |
445 | } | 445 | } |
446 | 446 | ||
447 | switch (state->cfg.tuner) { | 447 | switch (dev->cfg.tuner) { |
448 | case AF9033_TUNER_IT9135_60: | 448 | case AF9033_TUNER_IT9135_60: |
449 | case AF9033_TUNER_IT9135_61: | 449 | case AF9033_TUNER_IT9135_61: |
450 | case AF9033_TUNER_IT9135_62: | 450 | case AF9033_TUNER_IT9135_62: |
451 | ret = af9033_wr_reg(state, 0x800000, 0x01); | 451 | ret = af9033_wr_reg(dev, 0x800000, 0x01); |
452 | if (ret < 0) | 452 | if (ret < 0) |
453 | goto err; | 453 | goto err; |
454 | } | 454 | } |
455 | 455 | ||
456 | state->bandwidth_hz = 0; /* force to program all parameters */ | 456 | dev->bandwidth_hz = 0; /* force to program all parameters */ |
457 | 457 | ||
458 | return 0; | 458 | return 0; |
459 | 459 | ||
460 | err: | 460 | err: |
461 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 461 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
462 | 462 | ||
463 | return ret; | 463 | return ret; |
464 | } | 464 | } |
465 | 465 | ||
466 | static int af9033_sleep(struct dvb_frontend *fe) | 466 | static int af9033_sleep(struct dvb_frontend *fe) |
467 | { | 467 | { |
468 | struct af9033_state *state = fe->demodulator_priv; | 468 | struct af9033_dev *dev = fe->demodulator_priv; |
469 | int ret, i; | 469 | int ret, i; |
470 | u8 tmp; | 470 | u8 tmp; |
471 | 471 | ||
472 | ret = af9033_wr_reg(state, 0x80004c, 1); | 472 | ret = af9033_wr_reg(dev, 0x80004c, 1); |
473 | if (ret < 0) | 473 | if (ret < 0) |
474 | goto err; | 474 | goto err; |
475 | 475 | ||
476 | ret = af9033_wr_reg(state, 0x800000, 0); | 476 | ret = af9033_wr_reg(dev, 0x800000, 0); |
477 | if (ret < 0) | 477 | if (ret < 0) |
478 | goto err; | 478 | goto err; |
479 | 479 | ||
480 | for (i = 100, tmp = 1; i && tmp; i--) { | 480 | for (i = 100, tmp = 1; i && tmp; i--) { |
481 | ret = af9033_rd_reg(state, 0x80004c, &tmp); | 481 | ret = af9033_rd_reg(dev, 0x80004c, &tmp); |
482 | if (ret < 0) | 482 | if (ret < 0) |
483 | goto err; | 483 | goto err; |
484 | 484 | ||
485 | usleep_range(200, 10000); | 485 | usleep_range(200, 10000); |
486 | } | 486 | } |
487 | 487 | ||
488 | dev_dbg(&state->i2c->dev, "%s: loop=%d\n", __func__, i); | 488 | dev_dbg(&dev->i2c->dev, "%s: loop=%d\n", __func__, i); |
489 | 489 | ||
490 | if (i == 0) { | 490 | if (i == 0) { |
491 | ret = -ETIMEDOUT; | 491 | ret = -ETIMEDOUT; |
492 | goto err; | 492 | goto err; |
493 | } | 493 | } |
494 | 494 | ||
495 | ret = af9033_wr_reg_mask(state, 0x80fb24, 0x08, 0x08); | 495 | ret = af9033_wr_reg_mask(dev, 0x80fb24, 0x08, 0x08); |
496 | if (ret < 0) | 496 | if (ret < 0) |
497 | goto err; | 497 | goto err; |
498 | 498 | ||
499 | /* prevent current leak (?) */ | 499 | /* prevent current leak (?) */ |
500 | if (state->cfg.ts_mode == AF9033_TS_MODE_SERIAL) { | 500 | if (dev->cfg.ts_mode == AF9033_TS_MODE_SERIAL) { |
501 | /* enable parallel TS */ | 501 | /* enable parallel TS */ |
502 | ret = af9033_wr_reg_mask(state, 0x00d917, 0x00, 0x01); | 502 | ret = af9033_wr_reg_mask(dev, 0x00d917, 0x00, 0x01); |
503 | if (ret < 0) | 503 | if (ret < 0) |
504 | goto err; | 504 | goto err; |
505 | 505 | ||
506 | ret = af9033_wr_reg_mask(state, 0x00d916, 0x01, 0x01); | 506 | ret = af9033_wr_reg_mask(dev, 0x00d916, 0x01, 0x01); |
507 | if (ret < 0) | 507 | if (ret < 0) |
508 | goto err; | 508 | goto err; |
509 | } | 509 | } |
@@ -511,7 +511,7 @@ static int af9033_sleep(struct dvb_frontend *fe) | |||
511 | return 0; | 511 | return 0; |
512 | 512 | ||
513 | err: | 513 | err: |
514 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 514 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
515 | 515 | ||
516 | return ret; | 516 | return ret; |
517 | } | 517 | } |
@@ -529,13 +529,13 @@ static int af9033_get_tune_settings(struct dvb_frontend *fe, | |||
529 | 529 | ||
530 | static int af9033_set_frontend(struct dvb_frontend *fe) | 530 | static int af9033_set_frontend(struct dvb_frontend *fe) |
531 | { | 531 | { |
532 | struct af9033_state *state = fe->demodulator_priv; | 532 | struct af9033_dev *dev = fe->demodulator_priv; |
533 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 533 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
534 | int ret, i, spec_inv, sampling_freq; | 534 | int ret, i, spec_inv, sampling_freq; |
535 | u8 tmp, buf[3], bandwidth_reg_val; | 535 | u8 tmp, buf[3], bandwidth_reg_val; |
536 | u32 if_frequency, freq_cw, adc_freq; | 536 | u32 if_frequency, freq_cw, adc_freq; |
537 | 537 | ||
538 | dev_dbg(&state->i2c->dev, "%s: frequency=%d bandwidth_hz=%d\n", | 538 | dev_dbg(&dev->i2c->dev, "%s: frequency=%d bandwidth_hz=%d\n", |
539 | __func__, c->frequency, c->bandwidth_hz); | 539 | __func__, c->frequency, c->bandwidth_hz); |
540 | 540 | ||
541 | /* check bandwidth */ | 541 | /* check bandwidth */ |
@@ -550,7 +550,7 @@ static int af9033_set_frontend(struct dvb_frontend *fe) | |||
550 | bandwidth_reg_val = 0x02; | 550 | bandwidth_reg_val = 0x02; |
551 | break; | 551 | break; |
552 | default: | 552 | default: |
553 | dev_dbg(&state->i2c->dev, "%s: invalid bandwidth_hz\n", | 553 | dev_dbg(&dev->i2c->dev, "%s: invalid bandwidth_hz\n", |
554 | __func__); | 554 | __func__); |
555 | ret = -EINVAL; | 555 | ret = -EINVAL; |
556 | goto err; | 556 | goto err; |
@@ -561,23 +561,23 @@ static int af9033_set_frontend(struct dvb_frontend *fe) | |||
561 | fe->ops.tuner_ops.set_params(fe); | 561 | fe->ops.tuner_ops.set_params(fe); |
562 | 562 | ||
563 | /* program CFOE coefficients */ | 563 | /* program CFOE coefficients */ |
564 | if (c->bandwidth_hz != state->bandwidth_hz) { | 564 | if (c->bandwidth_hz != dev->bandwidth_hz) { |
565 | for (i = 0; i < ARRAY_SIZE(coeff_lut); i++) { | 565 | for (i = 0; i < ARRAY_SIZE(coeff_lut); i++) { |
566 | if (coeff_lut[i].clock == state->cfg.clock && | 566 | if (coeff_lut[i].clock == dev->cfg.clock && |
567 | coeff_lut[i].bandwidth_hz == c->bandwidth_hz) { | 567 | coeff_lut[i].bandwidth_hz == c->bandwidth_hz) { |
568 | break; | 568 | break; |
569 | } | 569 | } |
570 | } | 570 | } |
571 | ret = af9033_wr_regs(state, 0x800001, | 571 | ret = af9033_wr_regs(dev, 0x800001, |
572 | coeff_lut[i].val, sizeof(coeff_lut[i].val)); | 572 | coeff_lut[i].val, sizeof(coeff_lut[i].val)); |
573 | } | 573 | } |
574 | 574 | ||
575 | /* program frequency control */ | 575 | /* program frequency control */ |
576 | if (c->bandwidth_hz != state->bandwidth_hz) { | 576 | if (c->bandwidth_hz != dev->bandwidth_hz) { |
577 | spec_inv = state->cfg.spec_inv ? -1 : 1; | 577 | spec_inv = dev->cfg.spec_inv ? -1 : 1; |
578 | 578 | ||
579 | for (i = 0; i < ARRAY_SIZE(clock_adc_lut); i++) { | 579 | for (i = 0; i < ARRAY_SIZE(clock_adc_lut); i++) { |
580 | if (clock_adc_lut[i].clock == state->cfg.clock) | 580 | if (clock_adc_lut[i].clock == dev->cfg.clock) |
581 | break; | 581 | break; |
582 | } | 582 | } |
583 | adc_freq = clock_adc_lut[i].adc; | 583 | adc_freq = clock_adc_lut[i].adc; |
@@ -598,12 +598,12 @@ static int af9033_set_frontend(struct dvb_frontend *fe) | |||
598 | else | 598 | else |
599 | sampling_freq *= -1; | 599 | sampling_freq *= -1; |
600 | 600 | ||
601 | freq_cw = af9033_div(state, sampling_freq, adc_freq, 23ul); | 601 | freq_cw = af9033_div(dev, sampling_freq, adc_freq, 23ul); |
602 | 602 | ||
603 | if (spec_inv == -1) | 603 | if (spec_inv == -1) |
604 | freq_cw = 0x800000 - freq_cw; | 604 | freq_cw = 0x800000 - freq_cw; |
605 | 605 | ||
606 | if (state->cfg.adc_multiplier == AF9033_ADC_MULTIPLIER_2X) | 606 | if (dev->cfg.adc_multiplier == AF9033_ADC_MULTIPLIER_2X) |
607 | freq_cw /= 2; | 607 | freq_cw /= 2; |
608 | 608 | ||
609 | buf[0] = (freq_cw >> 0) & 0xff; | 609 | buf[0] = (freq_cw >> 0) & 0xff; |
@@ -614,26 +614,26 @@ static int af9033_set_frontend(struct dvb_frontend *fe) | |||
614 | if (if_frequency == 0) | 614 | if (if_frequency == 0) |
615 | buf[2] = 0; | 615 | buf[2] = 0; |
616 | 616 | ||
617 | ret = af9033_wr_regs(state, 0x800029, buf, 3); | 617 | ret = af9033_wr_regs(dev, 0x800029, buf, 3); |
618 | if (ret < 0) | 618 | if (ret < 0) |
619 | goto err; | 619 | goto err; |
620 | 620 | ||
621 | state->bandwidth_hz = c->bandwidth_hz; | 621 | dev->bandwidth_hz = c->bandwidth_hz; |
622 | } | 622 | } |
623 | 623 | ||
624 | ret = af9033_wr_reg_mask(state, 0x80f904, bandwidth_reg_val, 0x03); | 624 | ret = af9033_wr_reg_mask(dev, 0x80f904, bandwidth_reg_val, 0x03); |
625 | if (ret < 0) | 625 | if (ret < 0) |
626 | goto err; | 626 | goto err; |
627 | 627 | ||
628 | ret = af9033_wr_reg(state, 0x800040, 0x00); | 628 | ret = af9033_wr_reg(dev, 0x800040, 0x00); |
629 | if (ret < 0) | 629 | if (ret < 0) |
630 | goto err; | 630 | goto err; |
631 | 631 | ||
632 | ret = af9033_wr_reg(state, 0x800047, 0x00); | 632 | ret = af9033_wr_reg(dev, 0x800047, 0x00); |
633 | if (ret < 0) | 633 | if (ret < 0) |
634 | goto err; | 634 | goto err; |
635 | 635 | ||
636 | ret = af9033_wr_reg_mask(state, 0x80f999, 0x00, 0x01); | 636 | ret = af9033_wr_reg_mask(dev, 0x80f999, 0x00, 0x01); |
637 | if (ret < 0) | 637 | if (ret < 0) |
638 | goto err; | 638 | goto err; |
639 | 639 | ||
@@ -642,33 +642,33 @@ static int af9033_set_frontend(struct dvb_frontend *fe) | |||
642 | else | 642 | else |
643 | tmp = 0x01; /* UHF */ | 643 | tmp = 0x01; /* UHF */ |
644 | 644 | ||
645 | ret = af9033_wr_reg(state, 0x80004b, tmp); | 645 | ret = af9033_wr_reg(dev, 0x80004b, tmp); |
646 | if (ret < 0) | 646 | if (ret < 0) |
647 | goto err; | 647 | goto err; |
648 | 648 | ||
649 | ret = af9033_wr_reg(state, 0x800000, 0x00); | 649 | ret = af9033_wr_reg(dev, 0x800000, 0x00); |
650 | if (ret < 0) | 650 | if (ret < 0) |
651 | goto err; | 651 | goto err; |
652 | 652 | ||
653 | return 0; | 653 | return 0; |
654 | 654 | ||
655 | err: | 655 | err: |
656 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 656 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
657 | 657 | ||
658 | return ret; | 658 | return ret; |
659 | } | 659 | } |
660 | 660 | ||
661 | static int af9033_get_frontend(struct dvb_frontend *fe) | 661 | static int af9033_get_frontend(struct dvb_frontend *fe) |
662 | { | 662 | { |
663 | struct af9033_state *state = fe->demodulator_priv; | 663 | struct af9033_dev *dev = fe->demodulator_priv; |
664 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 664 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
665 | int ret; | 665 | int ret; |
666 | u8 buf[8]; | 666 | u8 buf[8]; |
667 | 667 | ||
668 | dev_dbg(&state->i2c->dev, "%s:\n", __func__); | 668 | dev_dbg(&dev->i2c->dev, "%s:\n", __func__); |
669 | 669 | ||
670 | /* read all needed registers */ | 670 | /* read all needed registers */ |
671 | ret = af9033_rd_regs(state, 0x80f900, buf, sizeof(buf)); | 671 | ret = af9033_rd_regs(dev, 0x80f900, buf, sizeof(buf)); |
672 | if (ret < 0) | 672 | if (ret < 0) |
673 | goto err; | 673 | goto err; |
674 | 674 | ||
@@ -780,21 +780,21 @@ static int af9033_get_frontend(struct dvb_frontend *fe) | |||
780 | return 0; | 780 | return 0; |
781 | 781 | ||
782 | err: | 782 | err: |
783 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 783 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
784 | 784 | ||
785 | return ret; | 785 | return ret; |
786 | } | 786 | } |
787 | 787 | ||
788 | static int af9033_read_status(struct dvb_frontend *fe, fe_status_t *status) | 788 | static int af9033_read_status(struct dvb_frontend *fe, fe_status_t *status) |
789 | { | 789 | { |
790 | struct af9033_state *state = fe->demodulator_priv; | 790 | struct af9033_dev *dev = fe->demodulator_priv; |
791 | int ret; | 791 | int ret; |
792 | u8 tmp; | 792 | u8 tmp; |
793 | 793 | ||
794 | *status = 0; | 794 | *status = 0; |
795 | 795 | ||
796 | /* radio channel status, 0=no result, 1=has signal, 2=no signal */ | 796 | /* radio channel status, 0=no result, 1=has signal, 2=no signal */ |
797 | ret = af9033_rd_reg(state, 0x800047, &tmp); | 797 | ret = af9033_rd_reg(dev, 0x800047, &tmp); |
798 | if (ret < 0) | 798 | if (ret < 0) |
799 | goto err; | 799 | goto err; |
800 | 800 | ||
@@ -804,7 +804,7 @@ static int af9033_read_status(struct dvb_frontend *fe, fe_status_t *status) | |||
804 | 804 | ||
805 | if (tmp != 0x02) { | 805 | if (tmp != 0x02) { |
806 | /* TPS lock */ | 806 | /* TPS lock */ |
807 | ret = af9033_rd_reg_mask(state, 0x80f5a9, &tmp, 0x01); | 807 | ret = af9033_rd_reg_mask(dev, 0x80f5a9, &tmp, 0x01); |
808 | if (ret < 0) | 808 | if (ret < 0) |
809 | goto err; | 809 | goto err; |
810 | 810 | ||
@@ -813,7 +813,7 @@ static int af9033_read_status(struct dvb_frontend *fe, fe_status_t *status) | |||
813 | FE_HAS_VITERBI; | 813 | FE_HAS_VITERBI; |
814 | 814 | ||
815 | /* full lock */ | 815 | /* full lock */ |
816 | ret = af9033_rd_reg_mask(state, 0x80f999, &tmp, 0x01); | 816 | ret = af9033_rd_reg_mask(dev, 0x80f999, &tmp, 0x01); |
817 | if (ret < 0) | 817 | if (ret < 0) |
818 | goto err; | 818 | goto err; |
819 | 819 | ||
@@ -826,28 +826,28 @@ static int af9033_read_status(struct dvb_frontend *fe, fe_status_t *status) | |||
826 | return 0; | 826 | return 0; |
827 | 827 | ||
828 | err: | 828 | err: |
829 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 829 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
830 | 830 | ||
831 | return ret; | 831 | return ret; |
832 | } | 832 | } |
833 | 833 | ||
834 | static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr) | 834 | static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr) |
835 | { | 835 | { |
836 | struct af9033_state *state = fe->demodulator_priv; | 836 | struct af9033_dev *dev = fe->demodulator_priv; |
837 | int ret, i, len; | 837 | int ret, i, len; |
838 | u8 buf[3], tmp; | 838 | u8 buf[3], tmp; |
839 | u32 snr_val; | 839 | u32 snr_val; |
840 | const struct val_snr *snr_lut; | 840 | const struct val_snr *snr_lut; |
841 | 841 | ||
842 | /* read value */ | 842 | /* read value */ |
843 | ret = af9033_rd_regs(state, 0x80002c, buf, 3); | 843 | ret = af9033_rd_regs(dev, 0x80002c, buf, 3); |
844 | if (ret < 0) | 844 | if (ret < 0) |
845 | goto err; | 845 | goto err; |
846 | 846 | ||
847 | snr_val = (buf[2] << 16) | (buf[1] << 8) | buf[0]; | 847 | snr_val = (buf[2] << 16) | (buf[1] << 8) | buf[0]; |
848 | 848 | ||
849 | /* read current modulation */ | 849 | /* read current modulation */ |
850 | ret = af9033_rd_reg(state, 0x80f903, &tmp); | 850 | ret = af9033_rd_reg(dev, 0x80f903, &tmp); |
851 | if (ret < 0) | 851 | if (ret < 0) |
852 | goto err; | 852 | goto err; |
853 | 853 | ||
@@ -880,19 +880,19 @@ static int af9033_read_snr(struct dvb_frontend *fe, u16 *snr) | |||
880 | return 0; | 880 | return 0; |
881 | 881 | ||
882 | err: | 882 | err: |
883 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 883 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
884 | 884 | ||
885 | return ret; | 885 | return ret; |
886 | } | 886 | } |
887 | 887 | ||
888 | static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength) | 888 | static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength) |
889 | { | 889 | { |
890 | struct af9033_state *state = fe->demodulator_priv; | 890 | struct af9033_dev *dev = fe->demodulator_priv; |
891 | int ret; | 891 | int ret; |
892 | u8 strength2; | 892 | u8 strength2; |
893 | 893 | ||
894 | /* read signal strength of 0-100 scale */ | 894 | /* read signal strength of 0-100 scale */ |
895 | ret = af9033_rd_reg(state, 0x800048, &strength2); | 895 | ret = af9033_rd_reg(dev, 0x800048, &strength2); |
896 | if (ret < 0) | 896 | if (ret < 0) |
897 | goto err; | 897 | goto err; |
898 | 898 | ||
@@ -902,12 +902,12 @@ static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength) | |||
902 | return 0; | 902 | return 0; |
903 | 903 | ||
904 | err: | 904 | err: |
905 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 905 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
906 | 906 | ||
907 | return ret; | 907 | return ret; |
908 | } | 908 | } |
909 | 909 | ||
910 | static int af9033_update_ch_stat(struct af9033_state *state) | 910 | static int af9033_update_ch_stat(struct af9033_dev *dev) |
911 | { | 911 | { |
912 | int ret = 0; | 912 | int ret = 0; |
913 | u32 err_cnt, bit_cnt; | 913 | u32 err_cnt, bit_cnt; |
@@ -915,8 +915,8 @@ static int af9033_update_ch_stat(struct af9033_state *state) | |||
915 | u8 buf[7]; | 915 | u8 buf[7]; |
916 | 916 | ||
917 | /* only update data every half second */ | 917 | /* only update data every half second */ |
918 | if (time_after(jiffies, state->last_stat_check + msecs_to_jiffies(500))) { | 918 | if (time_after(jiffies, dev->last_stat_check + msecs_to_jiffies(500))) { |
919 | ret = af9033_rd_regs(state, 0x800032, buf, sizeof(buf)); | 919 | ret = af9033_rd_regs(dev, 0x800032, buf, sizeof(buf)); |
920 | if (ret < 0) | 920 | if (ret < 0) |
921 | goto err; | 921 | goto err; |
922 | /* in 8 byte packets? */ | 922 | /* in 8 byte packets? */ |
@@ -928,93 +928,93 @@ static int af9033_update_ch_stat(struct af9033_state *state) | |||
928 | 928 | ||
929 | if (bit_cnt < abort_cnt) { | 929 | if (bit_cnt < abort_cnt) { |
930 | abort_cnt = 1000; | 930 | abort_cnt = 1000; |
931 | state->ber = 0xffffffff; | 931 | dev->ber = 0xffffffff; |
932 | } else { | 932 | } else { |
933 | /* | 933 | /* |
934 | * 8 byte packets, that have not been rejected already | 934 | * 8 byte packets, that have not been rejected already |
935 | */ | 935 | */ |
936 | bit_cnt -= (u32)abort_cnt; | 936 | bit_cnt -= (u32)abort_cnt; |
937 | if (bit_cnt == 0) { | 937 | if (bit_cnt == 0) { |
938 | state->ber = 0xffffffff; | 938 | dev->ber = 0xffffffff; |
939 | } else { | 939 | } else { |
940 | err_cnt -= (u32)abort_cnt * 8 * 8; | 940 | err_cnt -= (u32)abort_cnt * 8 * 8; |
941 | bit_cnt *= 8 * 8; | 941 | bit_cnt *= 8 * 8; |
942 | state->ber = err_cnt * (0xffffffff / bit_cnt); | 942 | dev->ber = err_cnt * (0xffffffff / bit_cnt); |
943 | } | 943 | } |
944 | } | 944 | } |
945 | state->ucb += abort_cnt; | 945 | dev->ucb += abort_cnt; |
946 | state->last_stat_check = jiffies; | 946 | dev->last_stat_check = jiffies; |
947 | } | 947 | } |
948 | 948 | ||
949 | return 0; | 949 | return 0; |
950 | err: | 950 | err: |
951 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 951 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
952 | 952 | ||
953 | return ret; | 953 | return ret; |
954 | } | 954 | } |
955 | 955 | ||
956 | static int af9033_read_ber(struct dvb_frontend *fe, u32 *ber) | 956 | static int af9033_read_ber(struct dvb_frontend *fe, u32 *ber) |
957 | { | 957 | { |
958 | struct af9033_state *state = fe->demodulator_priv; | 958 | struct af9033_dev *dev = fe->demodulator_priv; |
959 | int ret; | 959 | int ret; |
960 | 960 | ||
961 | ret = af9033_update_ch_stat(state); | 961 | ret = af9033_update_ch_stat(dev); |
962 | if (ret < 0) | 962 | if (ret < 0) |
963 | return ret; | 963 | return ret; |
964 | 964 | ||
965 | *ber = state->ber; | 965 | *ber = dev->ber; |
966 | 966 | ||
967 | return 0; | 967 | return 0; |
968 | } | 968 | } |
969 | 969 | ||
970 | static int af9033_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) | 970 | static int af9033_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) |
971 | { | 971 | { |
972 | struct af9033_state *state = fe->demodulator_priv; | 972 | struct af9033_dev *dev = fe->demodulator_priv; |
973 | int ret; | 973 | int ret; |
974 | 974 | ||
975 | ret = af9033_update_ch_stat(state); | 975 | ret = af9033_update_ch_stat(dev); |
976 | if (ret < 0) | 976 | if (ret < 0) |
977 | return ret; | 977 | return ret; |
978 | 978 | ||
979 | *ucblocks = state->ucb; | 979 | *ucblocks = dev->ucb; |
980 | 980 | ||
981 | return 0; | 981 | return 0; |
982 | } | 982 | } |
983 | 983 | ||
984 | static int af9033_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) | 984 | static int af9033_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) |
985 | { | 985 | { |
986 | struct af9033_state *state = fe->demodulator_priv; | 986 | struct af9033_dev *dev = fe->demodulator_priv; |
987 | int ret; | 987 | int ret; |
988 | 988 | ||
989 | dev_dbg(&state->i2c->dev, "%s: enable=%d\n", __func__, enable); | 989 | dev_dbg(&dev->i2c->dev, "%s: enable=%d\n", __func__, enable); |
990 | 990 | ||
991 | ret = af9033_wr_reg_mask(state, 0x00fa04, enable, 0x01); | 991 | ret = af9033_wr_reg_mask(dev, 0x00fa04, enable, 0x01); |
992 | if (ret < 0) | 992 | if (ret < 0) |
993 | goto err; | 993 | goto err; |
994 | 994 | ||
995 | return 0; | 995 | return 0; |
996 | 996 | ||
997 | err: | 997 | err: |
998 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 998 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
999 | 999 | ||
1000 | return ret; | 1000 | return ret; |
1001 | } | 1001 | } |
1002 | 1002 | ||
1003 | static int af9033_pid_filter_ctrl(struct dvb_frontend *fe, int onoff) | 1003 | static int af9033_pid_filter_ctrl(struct dvb_frontend *fe, int onoff) |
1004 | { | 1004 | { |
1005 | struct af9033_state *state = fe->demodulator_priv; | 1005 | struct af9033_dev *dev = fe->demodulator_priv; |
1006 | int ret; | 1006 | int ret; |
1007 | 1007 | ||
1008 | dev_dbg(&state->i2c->dev, "%s: onoff=%d\n", __func__, onoff); | 1008 | dev_dbg(&dev->i2c->dev, "%s: onoff=%d\n", __func__, onoff); |
1009 | 1009 | ||
1010 | ret = af9033_wr_reg_mask(state, 0x80f993, onoff, 0x01); | 1010 | ret = af9033_wr_reg_mask(dev, 0x80f993, onoff, 0x01); |
1011 | if (ret < 0) | 1011 | if (ret < 0) |
1012 | goto err; | 1012 | goto err; |
1013 | 1013 | ||
1014 | return 0; | 1014 | return 0; |
1015 | 1015 | ||
1016 | err: | 1016 | err: |
1017 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 1017 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
1018 | 1018 | ||
1019 | return ret; | 1019 | return ret; |
1020 | } | 1020 | } |
@@ -1022,32 +1022,32 @@ err: | |||
1022 | static int af9033_pid_filter(struct dvb_frontend *fe, int index, u16 pid, | 1022 | static int af9033_pid_filter(struct dvb_frontend *fe, int index, u16 pid, |
1023 | int onoff) | 1023 | int onoff) |
1024 | { | 1024 | { |
1025 | struct af9033_state *state = fe->demodulator_priv; | 1025 | struct af9033_dev *dev = fe->demodulator_priv; |
1026 | int ret; | 1026 | int ret; |
1027 | u8 wbuf[2] = {(pid >> 0) & 0xff, (pid >> 8) & 0xff}; | 1027 | u8 wbuf[2] = {(pid >> 0) & 0xff, (pid >> 8) & 0xff}; |
1028 | 1028 | ||
1029 | dev_dbg(&state->i2c->dev, "%s: index=%d pid=%04x onoff=%d\n", | 1029 | dev_dbg(&dev->i2c->dev, "%s: index=%d pid=%04x onoff=%d\n", |
1030 | __func__, index, pid, onoff); | 1030 | __func__, index, pid, onoff); |
1031 | 1031 | ||
1032 | if (pid > 0x1fff) | 1032 | if (pid > 0x1fff) |
1033 | return 0; | 1033 | return 0; |
1034 | 1034 | ||
1035 | ret = af9033_wr_regs(state, 0x80f996, wbuf, 2); | 1035 | ret = af9033_wr_regs(dev, 0x80f996, wbuf, 2); |
1036 | if (ret < 0) | 1036 | if (ret < 0) |
1037 | goto err; | 1037 | goto err; |
1038 | 1038 | ||
1039 | ret = af9033_wr_reg(state, 0x80f994, onoff); | 1039 | ret = af9033_wr_reg(dev, 0x80f994, onoff); |
1040 | if (ret < 0) | 1040 | if (ret < 0) |
1041 | goto err; | 1041 | goto err; |
1042 | 1042 | ||
1043 | ret = af9033_wr_reg(state, 0x80f995, index); | 1043 | ret = af9033_wr_reg(dev, 0x80f995, index); |
1044 | if (ret < 0) | 1044 | if (ret < 0) |
1045 | goto err; | 1045 | goto err; |
1046 | 1046 | ||
1047 | return 0; | 1047 | return 0; |
1048 | 1048 | ||
1049 | err: | 1049 | err: |
1050 | dev_dbg(&state->i2c->dev, "%s: failed=%d\n", __func__, ret); | 1050 | dev_dbg(&dev->i2c->dev, "%s: failed=%d\n", __func__, ret); |
1051 | 1051 | ||
1052 | return ret; | 1052 | return ret; |
1053 | } | 1053 | } |
@@ -1059,30 +1059,30 @@ struct dvb_frontend *af9033_attach(const struct af9033_config *config, | |||
1059 | struct af9033_ops *ops) | 1059 | struct af9033_ops *ops) |
1060 | { | 1060 | { |
1061 | int ret; | 1061 | int ret; |
1062 | struct af9033_state *state; | 1062 | struct af9033_dev *dev; |
1063 | u8 buf[8]; | 1063 | u8 buf[8]; |
1064 | u32 reg; | 1064 | u32 reg; |
1065 | 1065 | ||
1066 | dev_dbg(&i2c->dev, "%s:\n", __func__); | 1066 | dev_dbg(&i2c->dev, "%s:\n", __func__); |
1067 | 1067 | ||
1068 | /* allocate memory for the internal state */ | 1068 | /* allocate memory for the internal state */ |
1069 | state = kzalloc(sizeof(struct af9033_state), GFP_KERNEL); | 1069 | dev = kzalloc(sizeof(struct af9033_dev), GFP_KERNEL); |
1070 | if (state == NULL) | 1070 | if (dev == NULL) |
1071 | goto err; | 1071 | goto err; |
1072 | 1072 | ||
1073 | /* setup the state */ | 1073 | /* setup the state */ |
1074 | state->i2c = i2c; | 1074 | dev->i2c = i2c; |
1075 | memcpy(&state->cfg, config, sizeof(struct af9033_config)); | 1075 | memcpy(&dev->cfg, config, sizeof(struct af9033_config)); |
1076 | 1076 | ||
1077 | if (state->cfg.clock != 12000000) { | 1077 | if (dev->cfg.clock != 12000000) { |
1078 | dev_err(&state->i2c->dev, | 1078 | dev_err(&dev->i2c->dev, |
1079 | "%s: af9033: unsupported clock=%d, only 12000000 Hz is supported currently\n", | 1079 | "%s: af9033: unsupported clock=%d, only 12000000 Hz is supported currently\n", |
1080 | KBUILD_MODNAME, state->cfg.clock); | 1080 | KBUILD_MODNAME, dev->cfg.clock); |
1081 | goto err; | 1081 | goto err; |
1082 | } | 1082 | } |
1083 | 1083 | ||
1084 | /* firmware version */ | 1084 | /* firmware version */ |
1085 | switch (state->cfg.tuner) { | 1085 | switch (dev->cfg.tuner) { |
1086 | case AF9033_TUNER_IT9135_38: | 1086 | case AF9033_TUNER_IT9135_38: |
1087 | case AF9033_TUNER_IT9135_51: | 1087 | case AF9033_TUNER_IT9135_51: |
1088 | case AF9033_TUNER_IT9135_52: | 1088 | case AF9033_TUNER_IT9135_52: |
@@ -1096,21 +1096,21 @@ struct dvb_frontend *af9033_attach(const struct af9033_config *config, | |||
1096 | break; | 1096 | break; |
1097 | } | 1097 | } |
1098 | 1098 | ||
1099 | ret = af9033_rd_regs(state, reg, &buf[0], 4); | 1099 | ret = af9033_rd_regs(dev, reg, &buf[0], 4); |
1100 | if (ret < 0) | 1100 | if (ret < 0) |
1101 | goto err; | 1101 | goto err; |
1102 | 1102 | ||
1103 | ret = af9033_rd_regs(state, 0x804191, &buf[4], 4); | 1103 | ret = af9033_rd_regs(dev, 0x804191, &buf[4], 4); |
1104 | if (ret < 0) | 1104 | if (ret < 0) |
1105 | goto err; | 1105 | goto err; |
1106 | 1106 | ||
1107 | dev_info(&state->i2c->dev, | 1107 | dev_info(&dev->i2c->dev, |
1108 | "%s: firmware version: LINK=%d.%d.%d.%d OFDM=%d.%d.%d.%d\n", | 1108 | "%s: firmware version: LINK=%d.%d.%d.%d OFDM=%d.%d.%d.%d\n", |
1109 | KBUILD_MODNAME, buf[0], buf[1], buf[2], buf[3], buf[4], | 1109 | KBUILD_MODNAME, buf[0], buf[1], buf[2], buf[3], buf[4], |
1110 | buf[5], buf[6], buf[7]); | 1110 | buf[5], buf[6], buf[7]); |
1111 | 1111 | ||
1112 | /* sleep */ | 1112 | /* sleep */ |
1113 | switch (state->cfg.tuner) { | 1113 | switch (dev->cfg.tuner) { |
1114 | case AF9033_TUNER_IT9135_38: | 1114 | case AF9033_TUNER_IT9135_38: |
1115 | case AF9033_TUNER_IT9135_51: | 1115 | case AF9033_TUNER_IT9135_51: |
1116 | case AF9033_TUNER_IT9135_52: | 1116 | case AF9033_TUNER_IT9135_52: |
@@ -1120,22 +1120,22 @@ struct dvb_frontend *af9033_attach(const struct af9033_config *config, | |||
1120 | /* IT9135 did not like to sleep at that early */ | 1120 | /* IT9135 did not like to sleep at that early */ |
1121 | break; | 1121 | break; |
1122 | default: | 1122 | default: |
1123 | ret = af9033_wr_reg(state, 0x80004c, 1); | 1123 | ret = af9033_wr_reg(dev, 0x80004c, 1); |
1124 | if (ret < 0) | 1124 | if (ret < 0) |
1125 | goto err; | 1125 | goto err; |
1126 | 1126 | ||
1127 | ret = af9033_wr_reg(state, 0x800000, 0); | 1127 | ret = af9033_wr_reg(dev, 0x800000, 0); |
1128 | if (ret < 0) | 1128 | if (ret < 0) |
1129 | goto err; | 1129 | goto err; |
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | /* configure internal TS mode */ | 1132 | /* configure internal TS mode */ |
1133 | switch (state->cfg.ts_mode) { | 1133 | switch (dev->cfg.ts_mode) { |
1134 | case AF9033_TS_MODE_PARALLEL: | 1134 | case AF9033_TS_MODE_PARALLEL: |
1135 | state->ts_mode_parallel = true; | 1135 | dev->ts_mode_parallel = true; |
1136 | break; | 1136 | break; |
1137 | case AF9033_TS_MODE_SERIAL: | 1137 | case AF9033_TS_MODE_SERIAL: |
1138 | state->ts_mode_serial = true; | 1138 | dev->ts_mode_serial = true; |
1139 | break; | 1139 | break; |
1140 | case AF9033_TS_MODE_USB: | 1140 | case AF9033_TS_MODE_USB: |
1141 | /* usb mode for AF9035 */ | 1141 | /* usb mode for AF9035 */ |
@@ -1144,18 +1144,18 @@ struct dvb_frontend *af9033_attach(const struct af9033_config *config, | |||
1144 | } | 1144 | } |
1145 | 1145 | ||
1146 | /* create dvb_frontend */ | 1146 | /* create dvb_frontend */ |
1147 | memcpy(&state->fe.ops, &af9033_ops, sizeof(struct dvb_frontend_ops)); | 1147 | memcpy(&dev->fe.ops, &af9033_ops, sizeof(struct dvb_frontend_ops)); |
1148 | state->fe.demodulator_priv = state; | 1148 | dev->fe.demodulator_priv = dev; |
1149 | 1149 | ||
1150 | if (ops) { | 1150 | if (ops) { |
1151 | ops->pid_filter = af9033_pid_filter; | 1151 | ops->pid_filter = af9033_pid_filter; |
1152 | ops->pid_filter_ctrl = af9033_pid_filter_ctrl; | 1152 | ops->pid_filter_ctrl = af9033_pid_filter_ctrl; |
1153 | } | 1153 | } |
1154 | 1154 | ||
1155 | return &state->fe; | 1155 | return &dev->fe; |
1156 | 1156 | ||
1157 | err: | 1157 | err: |
1158 | kfree(state); | 1158 | kfree(dev); |
1159 | return NULL; | 1159 | return NULL; |
1160 | } | 1160 | } |
1161 | EXPORT_SYMBOL(af9033_attach); | 1161 | EXPORT_SYMBOL(af9033_attach); |