aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/tuners/tda18212.c
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2014-08-03 22:40:23 -0400
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-09-21 19:05:46 -0400
commite4a42e1866edf68c7ddfc42b07676238af49f4df (patch)
tree5a2385bea540675a9cd980eea5c2a98d8de18055 /drivers/media/tuners/tda18212.c
parentbdb32655f2fa5055cad1145dac17b76243d20a02 (diff)
[media] tda18212: rename state from 'priv' to 'dev'
foo_dev seems to be most correct term for the structure holding data of each device instance. It is most used term in Kernel codebase and also examples from book Linux Device Drivers, Third Edition, uses it. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/tuners/tda18212.c')
-rw-r--r--drivers/media/tuners/tda18212.c104
1 files changed, 51 insertions, 53 deletions
diff --git a/drivers/media/tuners/tda18212.c b/drivers/media/tuners/tda18212.c
index 5d1d78595c86..24948c7971e3 100644
--- a/drivers/media/tuners/tda18212.c
+++ b/drivers/media/tuners/tda18212.c
@@ -23,7 +23,7 @@
23/* Max transfer size done by I2C transfer functions */ 23/* Max transfer size done by I2C transfer functions */
24#define MAX_XFER_SIZE 64 24#define MAX_XFER_SIZE 64
25 25
26struct tda18212_priv { 26struct tda18212_dev {
27 struct tda18212_config cfg; 27 struct tda18212_config cfg;
28 struct i2c_client *client; 28 struct i2c_client *client;
29 29
@@ -31,14 +31,13 @@ struct tda18212_priv {
31}; 31};
32 32
33/* write multiple registers */ 33/* write multiple registers */
34static int tda18212_wr_regs(struct tda18212_priv *priv, u8 reg, u8 *val, 34static int tda18212_wr_regs(struct tda18212_dev *dev, u8 reg, u8 *val, int len)
35 int len)
36{ 35{
37 int ret; 36 int ret;
38 u8 buf[MAX_XFER_SIZE]; 37 u8 buf[MAX_XFER_SIZE];
39 struct i2c_msg msg[1] = { 38 struct i2c_msg msg[1] = {
40 { 39 {
41 .addr = priv->client->addr, 40 .addr = dev->client->addr,
42 .flags = 0, 41 .flags = 0,
43 .len = 1 + len, 42 .len = 1 + len,
44 .buf = buf, 43 .buf = buf,
@@ -46,7 +45,7 @@ static int tda18212_wr_regs(struct tda18212_priv *priv, u8 reg, u8 *val,
46 }; 45 };
47 46
48 if (1 + len > sizeof(buf)) { 47 if (1 + len > sizeof(buf)) {
49 dev_warn(&priv->client->dev, 48 dev_warn(&dev->client->dev,
50 "i2c wr reg=%04x: len=%d is too big!\n", 49 "i2c wr reg=%04x: len=%d is too big!\n",
51 reg, len); 50 reg, len);
52 return -EINVAL; 51 return -EINVAL;
@@ -55,11 +54,11 @@ static int tda18212_wr_regs(struct tda18212_priv *priv, u8 reg, u8 *val,
55 buf[0] = reg; 54 buf[0] = reg;
56 memcpy(&buf[1], val, len); 55 memcpy(&buf[1], val, len);
57 56
58 ret = i2c_transfer(priv->client->adapter, msg, 1); 57 ret = i2c_transfer(dev->client->adapter, msg, 1);
59 if (ret == 1) { 58 if (ret == 1) {
60 ret = 0; 59 ret = 0;
61 } else { 60 } else {
62 dev_warn(&priv->client->dev, 61 dev_warn(&dev->client->dev,
63 "i2c wr failed=%d reg=%02x len=%d\n", 62 "i2c wr failed=%d reg=%02x len=%d\n",
64 ret, reg, len); 63 ret, reg, len);
65 ret = -EREMOTEIO; 64 ret = -EREMOTEIO;
@@ -68,19 +67,18 @@ static int tda18212_wr_regs(struct tda18212_priv *priv, u8 reg, u8 *val,
68} 67}
69 68
70/* read multiple registers */ 69/* read multiple registers */
71static int tda18212_rd_regs(struct tda18212_priv *priv, u8 reg, u8 *val, 70static int tda18212_rd_regs(struct tda18212_dev *dev, u8 reg, u8 *val, int len)
72 int len)
73{ 71{
74 int ret; 72 int ret;
75 u8 buf[MAX_XFER_SIZE]; 73 u8 buf[MAX_XFER_SIZE];
76 struct i2c_msg msg[2] = { 74 struct i2c_msg msg[2] = {
77 { 75 {
78 .addr = priv->client->addr, 76 .addr = dev->client->addr,
79 .flags = 0, 77 .flags = 0,
80 .len = 1, 78 .len = 1,
81 .buf = &reg, 79 .buf = &reg,
82 }, { 80 }, {
83 .addr = priv->client->addr, 81 .addr = dev->client->addr,
84 .flags = I2C_M_RD, 82 .flags = I2C_M_RD,
85 .len = len, 83 .len = len,
86 .buf = buf, 84 .buf = buf,
@@ -88,18 +86,18 @@ static int tda18212_rd_regs(struct tda18212_priv *priv, u8 reg, u8 *val,
88 }; 86 };
89 87
90 if (len > sizeof(buf)) { 88 if (len > sizeof(buf)) {
91 dev_warn(&priv->client->dev, 89 dev_warn(&dev->client->dev,
92 "i2c rd reg=%04x: len=%d is too big!\n", 90 "i2c rd reg=%04x: len=%d is too big!\n",
93 reg, len); 91 reg, len);
94 return -EINVAL; 92 return -EINVAL;
95 } 93 }
96 94
97 ret = i2c_transfer(priv->client->adapter, msg, 2); 95 ret = i2c_transfer(dev->client->adapter, msg, 2);
98 if (ret == 2) { 96 if (ret == 2) {
99 memcpy(val, buf, len); 97 memcpy(val, buf, len);
100 ret = 0; 98 ret = 0;
101 } else { 99 } else {
102 dev_warn(&priv->client->dev, 100 dev_warn(&dev->client->dev,
103 "i2c rd failed=%d reg=%02x len=%d\n", 101 "i2c rd failed=%d reg=%02x len=%d\n",
104 ret, reg, len); 102 ret, reg, len);
105 ret = -EREMOTEIO; 103 ret = -EREMOTEIO;
@@ -109,26 +107,26 @@ static int tda18212_rd_regs(struct tda18212_priv *priv, u8 reg, u8 *val,
109} 107}
110 108
111/* write single register */ 109/* write single register */
112static int tda18212_wr_reg(struct tda18212_priv *priv, u8 reg, u8 val) 110static int tda18212_wr_reg(struct tda18212_dev *dev, u8 reg, u8 val)
113{ 111{
114 return tda18212_wr_regs(priv, reg, &val, 1); 112 return tda18212_wr_regs(dev, reg, &val, 1);
115} 113}
116 114
117/* read single register */ 115/* read single register */
118static int tda18212_rd_reg(struct tda18212_priv *priv, u8 reg, u8 *val) 116static int tda18212_rd_reg(struct tda18212_dev *dev, u8 reg, u8 *val)
119{ 117{
120 return tda18212_rd_regs(priv, reg, val, 1); 118 return tda18212_rd_regs(dev, reg, val, 1);
121} 119}
122 120
123#if 0 /* keep, useful when developing driver */ 121#if 0 /* keep, useful when developing driver */
124static void tda18212_dump_regs(struct tda18212_priv *priv) 122static void tda18212_dump_regs(struct tda18212_dev *dev)
125{ 123{
126 int i; 124 int i;
127 u8 buf[256]; 125 u8 buf[256];
128 126
129 #define TDA18212_RD_LEN 32 127 #define TDA18212_RD_LEN 32
130 for (i = 0; i < sizeof(buf); i += TDA18212_RD_LEN) 128 for (i = 0; i < sizeof(buf); i += TDA18212_RD_LEN)
131 tda18212_rd_regs(priv, i, &buf[i], TDA18212_RD_LEN); 129 tda18212_rd_regs(dev, i, &buf[i], TDA18212_RD_LEN);
132 130
133 print_hex_dump(KERN_INFO, "", DUMP_PREFIX_OFFSET, 32, 1, buf, 131 print_hex_dump(KERN_INFO, "", DUMP_PREFIX_OFFSET, 32, 1, buf,
134 sizeof(buf), true); 132 sizeof(buf), true);
@@ -139,7 +137,7 @@ static void tda18212_dump_regs(struct tda18212_priv *priv)
139 137
140static int tda18212_set_params(struct dvb_frontend *fe) 138static int tda18212_set_params(struct dvb_frontend *fe)
141{ 139{
142 struct tda18212_priv *priv = fe->tuner_priv; 140 struct tda18212_dev *dev = fe->tuner_priv;
143 struct dtv_frontend_properties *c = &fe->dtv_property_cache; 141 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
144 int ret, i; 142 int ret, i;
145 u32 if_khz; 143 u32 if_khz;
@@ -168,7 +166,7 @@ static int tda18212_set_params(struct dvb_frontend *fe)
168 [ATSC_QAM] = { 0x7d, 0x20, 0x63 }, 166 [ATSC_QAM] = { 0x7d, 0x20, 0x63 },
169 }; 167 };
170 168
171 dev_dbg(&priv->client->dev, 169 dev_dbg(&dev->client->dev,
172 "delivery_system=%d frequency=%d bandwidth_hz=%d\n", 170 "delivery_system=%d frequency=%d bandwidth_hz=%d\n",
173 c->delivery_system, c->frequency, 171 c->delivery_system, c->frequency,
174 c->bandwidth_hz); 172 c->bandwidth_hz);
@@ -178,25 +176,25 @@ static int tda18212_set_params(struct dvb_frontend *fe)
178 176
179 switch (c->delivery_system) { 177 switch (c->delivery_system) {
180 case SYS_ATSC: 178 case SYS_ATSC:
181 if_khz = priv->cfg.if_atsc_vsb; 179 if_khz = dev->cfg.if_atsc_vsb;
182 i = ATSC_VSB; 180 i = ATSC_VSB;
183 break; 181 break;
184 case SYS_DVBC_ANNEX_B: 182 case SYS_DVBC_ANNEX_B:
185 if_khz = priv->cfg.if_atsc_qam; 183 if_khz = dev->cfg.if_atsc_qam;
186 i = ATSC_QAM; 184 i = ATSC_QAM;
187 break; 185 break;
188 case SYS_DVBT: 186 case SYS_DVBT:
189 switch (c->bandwidth_hz) { 187 switch (c->bandwidth_hz) {
190 case 6000000: 188 case 6000000:
191 if_khz = priv->cfg.if_dvbt_6; 189 if_khz = dev->cfg.if_dvbt_6;
192 i = DVBT_6; 190 i = DVBT_6;
193 break; 191 break;
194 case 7000000: 192 case 7000000:
195 if_khz = priv->cfg.if_dvbt_7; 193 if_khz = dev->cfg.if_dvbt_7;
196 i = DVBT_7; 194 i = DVBT_7;
197 break; 195 break;
198 case 8000000: 196 case 8000000:
199 if_khz = priv->cfg.if_dvbt_8; 197 if_khz = dev->cfg.if_dvbt_8;
200 i = DVBT_8; 198 i = DVBT_8;
201 break; 199 break;
202 default: 200 default:
@@ -207,15 +205,15 @@ static int tda18212_set_params(struct dvb_frontend *fe)
207 case SYS_DVBT2: 205 case SYS_DVBT2:
208 switch (c->bandwidth_hz) { 206 switch (c->bandwidth_hz) {
209 case 6000000: 207 case 6000000:
210 if_khz = priv->cfg.if_dvbt2_6; 208 if_khz = dev->cfg.if_dvbt2_6;
211 i = DVBT2_6; 209 i = DVBT2_6;
212 break; 210 break;
213 case 7000000: 211 case 7000000:
214 if_khz = priv->cfg.if_dvbt2_7; 212 if_khz = dev->cfg.if_dvbt2_7;
215 i = DVBT2_7; 213 i = DVBT2_7;
216 break; 214 break;
217 case 8000000: 215 case 8000000:
218 if_khz = priv->cfg.if_dvbt2_8; 216 if_khz = dev->cfg.if_dvbt2_8;
219 i = DVBT2_8; 217 i = DVBT2_8;
220 break; 218 break;
221 default: 219 default:
@@ -225,7 +223,7 @@ static int tda18212_set_params(struct dvb_frontend *fe)
225 break; 223 break;
226 case SYS_DVBC_ANNEX_A: 224 case SYS_DVBC_ANNEX_A:
227 case SYS_DVBC_ANNEX_C: 225 case SYS_DVBC_ANNEX_C:
228 if_khz = priv->cfg.if_dvbc; 226 if_khz = dev->cfg.if_dvbc;
229 i = DVBC_8; 227 i = DVBC_8;
230 break; 228 break;
231 default: 229 default:
@@ -233,15 +231,15 @@ static int tda18212_set_params(struct dvb_frontend *fe)
233 goto error; 231 goto error;
234 } 232 }
235 233
236 ret = tda18212_wr_reg(priv, 0x23, bw_params[i][2]); 234 ret = tda18212_wr_reg(dev, 0x23, bw_params[i][2]);
237 if (ret) 235 if (ret)
238 goto error; 236 goto error;
239 237
240 ret = tda18212_wr_reg(priv, 0x06, 0x00); 238 ret = tda18212_wr_reg(dev, 0x06, 0x00);
241 if (ret) 239 if (ret)
242 goto error; 240 goto error;
243 241
244 ret = tda18212_wr_reg(priv, 0x0f, bw_params[i][0]); 242 ret = tda18212_wr_reg(dev, 0x0f, bw_params[i][0]);
245 if (ret) 243 if (ret)
246 goto error; 244 goto error;
247 245
@@ -254,12 +252,12 @@ static int tda18212_set_params(struct dvb_frontend *fe)
254 buf[6] = ((c->frequency / 1000) >> 0) & 0xff; 252 buf[6] = ((c->frequency / 1000) >> 0) & 0xff;
255 buf[7] = 0xc1; 253 buf[7] = 0xc1;
256 buf[8] = 0x01; 254 buf[8] = 0x01;
257 ret = tda18212_wr_regs(priv, 0x12, buf, sizeof(buf)); 255 ret = tda18212_wr_regs(dev, 0x12, buf, sizeof(buf));
258 if (ret) 256 if (ret)
259 goto error; 257 goto error;
260 258
261 /* actual IF rounded as it is on register */ 259 /* actual IF rounded as it is on register */
262 priv->if_frequency = buf[3] * 50 * 1000; 260 dev->if_frequency = buf[3] * 50 * 1000;
263 261
264exit: 262exit:
265 if (fe->ops.i2c_gate_ctrl) 263 if (fe->ops.i2c_gate_ctrl)
@@ -268,15 +266,15 @@ exit:
268 return ret; 266 return ret;
269 267
270error: 268error:
271 dev_dbg(&priv->client->dev, "failed=%d\n", ret); 269 dev_dbg(&dev->client->dev, "failed=%d\n", ret);
272 goto exit; 270 goto exit;
273} 271}
274 272
275static int tda18212_get_if_frequency(struct dvb_frontend *fe, u32 *frequency) 273static int tda18212_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
276{ 274{
277 struct tda18212_priv *priv = fe->tuner_priv; 275 struct tda18212_dev *dev = fe->tuner_priv;
278 276
279 *frequency = priv->if_frequency; 277 *frequency = dev->if_frequency;
280 278
281 return 0; 279 return 0;
282} 280}
@@ -299,27 +297,27 @@ static int tda18212_probe(struct i2c_client *client,
299{ 297{
300 struct tda18212_config *cfg = client->dev.platform_data; 298 struct tda18212_config *cfg = client->dev.platform_data;
301 struct dvb_frontend *fe = cfg->fe; 299 struct dvb_frontend *fe = cfg->fe;
302 struct tda18212_priv *priv; 300 struct tda18212_dev *dev;
303 int ret; 301 int ret;
304 u8 chip_id = chip_id; 302 u8 chip_id = chip_id;
305 char *version; 303 char *version;
306 304
307 priv = kzalloc(sizeof(*priv), GFP_KERNEL); 305 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
308 if (!priv) { 306 if (dev == NULL) {
309 ret = -ENOMEM; 307 ret = -ENOMEM;
310 dev_err(&client->dev, "kzalloc() failed\n"); 308 dev_err(&client->dev, "kzalloc() failed\n");
311 goto err; 309 goto err;
312 } 310 }
313 311
314 memcpy(&priv->cfg, cfg, sizeof(struct tda18212_config)); 312 memcpy(&dev->cfg, cfg, sizeof(struct tda18212_config));
315 priv->client = client; 313 dev->client = client;
316 314
317 /* check if the tuner is there */ 315 /* check if the tuner is there */
318 if (fe->ops.i2c_gate_ctrl) 316 if (fe->ops.i2c_gate_ctrl)
319 fe->ops.i2c_gate_ctrl(fe, 1); /* open I2C-gate */ 317 fe->ops.i2c_gate_ctrl(fe, 1); /* open I2C-gate */
320 318
321 ret = tda18212_rd_reg(priv, 0x00, &chip_id); 319 ret = tda18212_rd_reg(dev, 0x00, &chip_id);
322 dev_dbg(&priv->client->dev, "chip_id=%02x\n", chip_id); 320 dev_dbg(&dev->client->dev, "chip_id=%02x\n", chip_id);
323 321
324 if (fe->ops.i2c_gate_ctrl) 322 if (fe->ops.i2c_gate_ctrl)
325 fe->ops.i2c_gate_ctrl(fe, 0); /* close I2C-gate */ 323 fe->ops.i2c_gate_ctrl(fe, 0); /* close I2C-gate */
@@ -339,31 +337,31 @@ static int tda18212_probe(struct i2c_client *client,
339 goto err; 337 goto err;
340 } 338 }
341 339
342 dev_info(&priv->client->dev, 340 dev_info(&dev->client->dev,
343 "NXP TDA18212HN/%s successfully identified\n", version); 341 "NXP TDA18212HN/%s successfully identified\n", version);
344 342
345 fe->tuner_priv = priv; 343 fe->tuner_priv = dev;
346 memcpy(&fe->ops.tuner_ops, &tda18212_tuner_ops, 344 memcpy(&fe->ops.tuner_ops, &tda18212_tuner_ops,
347 sizeof(struct dvb_tuner_ops)); 345 sizeof(struct dvb_tuner_ops));
348 i2c_set_clientdata(client, priv); 346 i2c_set_clientdata(client, dev);
349 347
350 return 0; 348 return 0;
351err: 349err:
352 dev_dbg(&client->dev, "failed=%d\n", ret); 350 dev_dbg(&client->dev, "failed=%d\n", ret);
353 kfree(priv); 351 kfree(dev);
354 return ret; 352 return ret;
355} 353}
356 354
357static int tda18212_remove(struct i2c_client *client) 355static int tda18212_remove(struct i2c_client *client)
358{ 356{
359 struct tda18212_priv *priv = i2c_get_clientdata(client); 357 struct tda18212_dev *dev = i2c_get_clientdata(client);
360 struct dvb_frontend *fe = priv->cfg.fe; 358 struct dvb_frontend *fe = dev->cfg.fe;
361 359
362 dev_dbg(&client->dev, "\n"); 360 dev_dbg(&client->dev, "\n");
363 361
364 memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops)); 362 memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops));
365 fe->tuner_priv = NULL; 363 fe->tuner_priv = NULL;
366 kfree(priv); 364 kfree(dev);
367 365
368 return 0; 366 return 0;
369} 367}