aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2014-11-25 15:53:21 -0500
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-01-29 15:40:24 -0500
commit3de3583539390a6e0d5b780f0c16980462991f7c (patch)
treeb73071f5efa7e2aa2fd5d031fb4ea1fba53e0cc7
parent6307b560800fd92b915a851186653317460039ad (diff)
[media] si2168: get rid of own struct i2c_client pointer
We don't need that anymore as same pointer is passed to each routine via struct dvb_frontend private field. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/dvb-frontends/si2168.c61
-rw-r--r--drivers/media/dvb-frontends/si2168_priv.h1
2 files changed, 30 insertions, 32 deletions
diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index d0dfc73eb1f4..e00bc0467356 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -29,7 +29,7 @@ static int si2168_cmd_execute(struct i2c_client *client, struct si2168_cmd *cmd)
29 29
30 if (cmd->wlen) { 30 if (cmd->wlen) {
31 /* write cmd and args for firmware */ 31 /* write cmd and args for firmware */
32 ret = i2c_master_send(dev->client, cmd->args, cmd->wlen); 32 ret = i2c_master_send(client, cmd->args, cmd->wlen);
33 if (ret < 0) { 33 if (ret < 0) {
34 goto err_mutex_unlock; 34 goto err_mutex_unlock;
35 } else if (ret != cmd->wlen) { 35 } else if (ret != cmd->wlen) {
@@ -43,7 +43,7 @@ static int si2168_cmd_execute(struct i2c_client *client, struct si2168_cmd *cmd)
43 #define TIMEOUT 70 43 #define TIMEOUT 70
44 timeout = jiffies + msecs_to_jiffies(TIMEOUT); 44 timeout = jiffies + msecs_to_jiffies(TIMEOUT);
45 while (!time_after(jiffies, timeout)) { 45 while (!time_after(jiffies, timeout)) {
46 ret = i2c_master_recv(dev->client, cmd->args, cmd->rlen); 46 ret = i2c_master_recv(client, cmd->args, cmd->rlen);
47 if (ret < 0) { 47 if (ret < 0) {
48 goto err_mutex_unlock; 48 goto err_mutex_unlock;
49 } else if (ret != cmd->rlen) { 49 } else if (ret != cmd->rlen) {
@@ -56,7 +56,7 @@ static int si2168_cmd_execute(struct i2c_client *client, struct si2168_cmd *cmd)
56 break; 56 break;
57 } 57 }
58 58
59 dev_dbg(&dev->client->dev, "cmd execution took %d ms\n", 59 dev_dbg(&client->dev, "cmd execution took %d ms\n",
60 jiffies_to_msecs(jiffies) - 60 jiffies_to_msecs(jiffies) -
61 (jiffies_to_msecs(timeout) - TIMEOUT)); 61 (jiffies_to_msecs(timeout) - TIMEOUT));
62 62
@@ -75,7 +75,7 @@ err_mutex_unlock:
75 75
76 return 0; 76 return 0;
77err: 77err:
78 dev_dbg(&dev->client->dev, "failed=%d\n", ret); 78 dev_dbg(&client->dev, "failed=%d\n", ret);
79 return ret; 79 return ret;
80} 80}
81 81
@@ -151,12 +151,12 @@ static int si2168_read_status(struct dvb_frontend *fe, fe_status_t *status)
151 c->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE; 151 c->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
152 } 152 }
153 153
154 dev_dbg(&dev->client->dev, "status=%02x args=%*ph\n", 154 dev_dbg(&client->dev, "status=%02x args=%*ph\n",
155 *status, cmd.rlen, cmd.args); 155 *status, cmd.rlen, cmd.args);
156 156
157 return 0; 157 return 0;
158err: 158err:
159 dev_dbg(&dev->client->dev, "failed=%d\n", ret); 159 dev_dbg(&client->dev, "failed=%d\n", ret);
160 return ret; 160 return ret;
161} 161}
162 162
@@ -169,7 +169,7 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
169 struct si2168_cmd cmd; 169 struct si2168_cmd cmd;
170 u8 bandwidth, delivery_system; 170 u8 bandwidth, delivery_system;
171 171
172 dev_dbg(&dev->client->dev, 172 dev_dbg(&client->dev,
173 "delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u, stream_id=%d\n", 173 "delivery_system=%u modulation=%u frequency=%u bandwidth_hz=%u symbol_rate=%u inversion=%u, stream_id=%d\n",
174 c->delivery_system, c->modulation, 174 c->delivery_system, c->modulation,
175 c->frequency, c->bandwidth_hz, c->symbol_rate, 175 c->frequency, c->bandwidth_hz, c->symbol_rate,
@@ -352,7 +352,7 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
352 352
353 return 0; 353 return 0;
354err: 354err:
355 dev_dbg(&dev->client->dev, "failed=%d\n", ret); 355 dev_dbg(&client->dev, "failed=%d\n", ret);
356 return ret; 356 return ret;
357} 357}
358 358
@@ -367,7 +367,7 @@ static int si2168_init(struct dvb_frontend *fe)
367 struct si2168_cmd cmd; 367 struct si2168_cmd cmd;
368 unsigned int chip_id; 368 unsigned int chip_id;
369 369
370 dev_dbg(&dev->client->dev, "\n"); 370 dev_dbg(&client->dev, "\n");
371 371
372 /* initialize */ 372 /* initialize */
373 memcpy(cmd.args, "\xc0\x12\x00\x0c\x00\x0d\x16\x00\x00\x00\x00\x00\x00", 13); 373 memcpy(cmd.args, "\xc0\x12\x00\x0c\x00\x0d\x16\x00\x00\x00\x00\x00\x00", 13);
@@ -430,7 +430,7 @@ static int si2168_init(struct dvb_frontend *fe)
430 fw_file = SI2168_B40_FIRMWARE; 430 fw_file = SI2168_B40_FIRMWARE;
431 break; 431 break;
432 default: 432 default:
433 dev_err(&dev->client->dev, 433 dev_err(&client->dev,
434 "unknown chip version Si21%d-%c%c%c\n", 434 "unknown chip version Si21%d-%c%c%c\n",
435 cmd.args[2], cmd.args[1], 435 cmd.args[2], cmd.args[1],
436 cmd.args[3], cmd.args[4]); 436 cmd.args[3], cmd.args[4]);
@@ -439,31 +439,31 @@ static int si2168_init(struct dvb_frontend *fe)
439 } 439 }
440 440
441 /* cold state - try to download firmware */ 441 /* cold state - try to download firmware */
442 dev_info(&dev->client->dev, "found a '%s' in cold state\n", 442 dev_info(&client->dev, "found a '%s' in cold state\n",
443 si2168_ops.info.name); 443 si2168_ops.info.name);
444 444
445 /* request the firmware, this will block and timeout */ 445 /* request the firmware, this will block and timeout */
446 ret = request_firmware(&fw, fw_file, &dev->client->dev); 446 ret = request_firmware(&fw, fw_file, &client->dev);
447 if (ret) { 447 if (ret) {
448 /* fallback mechanism to handle old name for Si2168 B40 fw */ 448 /* fallback mechanism to handle old name for Si2168 B40 fw */
449 if (chip_id == SI2168_B40) { 449 if (chip_id == SI2168_B40) {
450 fw_file = SI2168_B40_FIRMWARE_FALLBACK; 450 fw_file = SI2168_B40_FIRMWARE_FALLBACK;
451 ret = request_firmware(&fw, fw_file, &dev->client->dev); 451 ret = request_firmware(&fw, fw_file, &client->dev);
452 } 452 }
453 453
454 if (ret == 0) { 454 if (ret == 0) {
455 dev_notice(&dev->client->dev, 455 dev_notice(&client->dev,
456 "please install firmware file '%s'\n", 456 "please install firmware file '%s'\n",
457 SI2168_B40_FIRMWARE); 457 SI2168_B40_FIRMWARE);
458 } else { 458 } else {
459 dev_err(&dev->client->dev, 459 dev_err(&client->dev,
460 "firmware file '%s' not found\n", 460 "firmware file '%s' not found\n",
461 fw_file); 461 fw_file);
462 goto error_fw_release; 462 goto error_fw_release;
463 } 463 }
464 } 464 }
465 465
466 dev_info(&dev->client->dev, "downloading firmware from file '%s'\n", 466 dev_info(&client->dev, "downloading firmware from file '%s'\n",
467 fw_file); 467 fw_file);
468 468
469 if ((fw->size % 17 == 0) && (fw->data[0] > 5)) { 469 if ((fw->size % 17 == 0) && (fw->data[0] > 5)) {
@@ -475,7 +475,7 @@ static int si2168_init(struct dvb_frontend *fe)
475 cmd.rlen = 1; 475 cmd.rlen = 1;
476 ret = si2168_cmd_execute(client, &cmd); 476 ret = si2168_cmd_execute(client, &cmd);
477 if (ret) { 477 if (ret) {
478 dev_err(&dev->client->dev, 478 dev_err(&client->dev,
479 "firmware download failed=%d\n", 479 "firmware download failed=%d\n",
480 ret); 480 ret);
481 goto error_fw_release; 481 goto error_fw_release;
@@ -493,7 +493,7 @@ static int si2168_init(struct dvb_frontend *fe)
493 cmd.rlen = 1; 493 cmd.rlen = 1;
494 ret = si2168_cmd_execute(client, &cmd); 494 ret = si2168_cmd_execute(client, &cmd);
495 if (ret) { 495 if (ret) {
496 dev_err(&dev->client->dev, 496 dev_err(&client->dev,
497 "firmware download failed=%d\n", 497 "firmware download failed=%d\n",
498 ret); 498 ret);
499 goto error_fw_release; 499 goto error_fw_release;
@@ -519,7 +519,7 @@ static int si2168_init(struct dvb_frontend *fe)
519 if (ret) 519 if (ret)
520 goto err; 520 goto err;
521 521
522 dev_dbg(&dev->client->dev, "firmware version: %c.%c.%d\n", 522 dev_dbg(&client->dev, "firmware version: %c.%c.%d\n",
523 cmd.args[6], cmd.args[7], cmd.args[8]); 523 cmd.args[6], cmd.args[7], cmd.args[8]);
524 524
525 /* set ts mode */ 525 /* set ts mode */
@@ -533,7 +533,7 @@ static int si2168_init(struct dvb_frontend *fe)
533 533
534 dev->fw_loaded = true; 534 dev->fw_loaded = true;
535 535
536 dev_info(&dev->client->dev, "found a '%s' in warm state\n", 536 dev_info(&client->dev, "found a '%s' in warm state\n",
537 si2168_ops.info.name); 537 si2168_ops.info.name);
538warm: 538warm:
539 dev->active = true; 539 dev->active = true;
@@ -543,7 +543,7 @@ warm:
543error_fw_release: 543error_fw_release:
544 release_firmware(fw); 544 release_firmware(fw);
545err: 545err:
546 dev_dbg(&dev->client->dev, "failed=%d\n", ret); 546 dev_dbg(&client->dev, "failed=%d\n", ret);
547 return ret; 547 return ret;
548} 548}
549 549
@@ -554,7 +554,7 @@ static int si2168_sleep(struct dvb_frontend *fe)
554 int ret; 554 int ret;
555 struct si2168_cmd cmd; 555 struct si2168_cmd cmd;
556 556
557 dev_dbg(&dev->client->dev, "\n"); 557 dev_dbg(&client->dev, "\n");
558 558
559 dev->active = false; 559 dev->active = false;
560 560
@@ -567,7 +567,7 @@ static int si2168_sleep(struct dvb_frontend *fe)
567 567
568 return 0; 568 return 0;
569err: 569err:
570 dev_dbg(&dev->client->dev, "failed=%d\n", ret); 570 dev_dbg(&client->dev, "failed=%d\n", ret);
571 return ret; 571 return ret;
572} 572}
573 573
@@ -590,7 +590,7 @@ static int si2168_select(struct i2c_adapter *adap, void *mux_priv, u32 chan)
590 struct si2168_dev *dev = i2c_get_clientdata(client); 590 struct si2168_dev *dev = i2c_get_clientdata(client);
591 int ret; 591 int ret;
592 struct i2c_msg gate_open_msg = { 592 struct i2c_msg gate_open_msg = {
593 .addr = dev->client->addr, 593 .addr = client->addr,
594 .flags = 0, 594 .flags = 0,
595 .len = 3, 595 .len = 3,
596 .buf = "\xc0\x0d\x01", 596 .buf = "\xc0\x0d\x01",
@@ -599,9 +599,9 @@ static int si2168_select(struct i2c_adapter *adap, void *mux_priv, u32 chan)
599 mutex_lock(&dev->i2c_mutex); 599 mutex_lock(&dev->i2c_mutex);
600 600
601 /* open tuner I2C gate */ 601 /* open tuner I2C gate */
602 ret = __i2c_transfer(dev->client->adapter, &gate_open_msg, 1); 602 ret = __i2c_transfer(client->adapter, &gate_open_msg, 1);
603 if (ret != 1) { 603 if (ret != 1) {
604 dev_warn(&dev->client->dev, "i2c write failed=%d\n", ret); 604 dev_warn(&client->dev, "i2c write failed=%d\n", ret);
605 if (ret >= 0) 605 if (ret >= 0)
606 ret = -EREMOTEIO; 606 ret = -EREMOTEIO;
607 } else { 607 } else {
@@ -617,16 +617,16 @@ static int si2168_deselect(struct i2c_adapter *adap, void *mux_priv, u32 chan)
617 struct si2168_dev *dev = i2c_get_clientdata(client); 617 struct si2168_dev *dev = i2c_get_clientdata(client);
618 int ret; 618 int ret;
619 struct i2c_msg gate_close_msg = { 619 struct i2c_msg gate_close_msg = {
620 .addr = dev->client->addr, 620 .addr = client->addr,
621 .flags = 0, 621 .flags = 0,
622 .len = 3, 622 .len = 3,
623 .buf = "\xc0\x0d\x00", 623 .buf = "\xc0\x0d\x00",
624 }; 624 };
625 625
626 /* close tuner I2C gate */ 626 /* close tuner I2C gate */
627 ret = __i2c_transfer(dev->client->adapter, &gate_close_msg, 1); 627 ret = __i2c_transfer(client->adapter, &gate_close_msg, 1);
628 if (ret != 1) { 628 if (ret != 1) {
629 dev_warn(&dev->client->dev, "i2c write failed=%d\n", ret); 629 dev_warn(&client->dev, "i2c write failed=%d\n", ret);
630 if (ret >= 0) 630 if (ret >= 0)
631 ret = -EREMOTEIO; 631 ret = -EREMOTEIO;
632 } else { 632 } else {
@@ -691,7 +691,6 @@ static int si2168_probe(struct i2c_client *client,
691 goto err; 691 goto err;
692 } 692 }
693 693
694 dev->client = client;
695 mutex_init(&dev->i2c_mutex); 694 mutex_init(&dev->i2c_mutex);
696 695
697 /* create mux i2c adapter for tuner */ 696 /* create mux i2c adapter for tuner */
@@ -714,7 +713,7 @@ static int si2168_probe(struct i2c_client *client,
714 713
715 i2c_set_clientdata(client, dev); 714 i2c_set_clientdata(client, dev);
716 715
717 dev_info(&dev->client->dev, 716 dev_info(&client->dev,
718 "Silicon Labs Si2168 successfully attached\n"); 717 "Silicon Labs Si2168 successfully attached\n");
719 return 0; 718 return 0;
720err: 719err:
diff --git a/drivers/media/dvb-frontends/si2168_priv.h b/drivers/media/dvb-frontends/si2168_priv.h
index cb8827af2a98..aadd1367673f 100644
--- a/drivers/media/dvb-frontends/si2168_priv.h
+++ b/drivers/media/dvb-frontends/si2168_priv.h
@@ -29,7 +29,6 @@
29 29
30/* state struct */ 30/* state struct */
31struct si2168_dev { 31struct si2168_dev {
32 struct i2c_client *client;
33 struct i2c_adapter *adapter; 32 struct i2c_adapter *adapter;
34 struct mutex i2c_mutex; 33 struct mutex i2c_mutex;
35 struct dvb_frontend fe; 34 struct dvb_frontend fe;