aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c/saa7127.c
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2013-05-29 05:59:51 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-06-17 07:52:10 -0400
commite12771100c93e101a7a8b302b6c5d57cff7b1551 (patch)
treea831f1d64d92142e5ce4cbcdfcd5a6f623db04e9 /drivers/media/i2c/saa7127.c
parent6be89daa03a4c99b0d22a59a660b225a592ed0a9 (diff)
[media] media/i2c: remove g_chip_ident op
This is no longer needed since the core now handles this through DBG_G_CHIP_INFO. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/i2c/saa7127.c')
-rw-r--r--drivers/media/i2c/saa7127.c47
1 files changed, 17 insertions, 30 deletions
diff --git a/drivers/media/i2c/saa7127.c b/drivers/media/i2c/saa7127.c
index d9c388103e7a..264b755bedce 100644
--- a/drivers/media/i2c/saa7127.c
+++ b/drivers/media/i2c/saa7127.c
@@ -54,7 +54,6 @@
54#include <linux/i2c.h> 54#include <linux/i2c.h>
55#include <linux/videodev2.h> 55#include <linux/videodev2.h>
56#include <media/v4l2-device.h> 56#include <media/v4l2-device.h>
57#include <media/v4l2-chip-ident.h>
58#include <media/saa7127.h> 57#include <media/saa7127.h>
59 58
60static int debug; 59static int debug;
@@ -251,10 +250,15 @@ static struct i2c_reg_value saa7127_init_config_50hz_secam[] = {
251 ********************************************************************** 250 **********************************************************************
252 */ 251 */
253 252
253enum saa712x_model {
254 SAA7127,
255 SAA7129,
256};
257
254struct saa7127_state { 258struct saa7127_state {
255 struct v4l2_subdev sd; 259 struct v4l2_subdev sd;
256 v4l2_std_id std; 260 v4l2_std_id std;
257 u32 ident; 261 enum saa712x_model ident;
258 enum saa7127_input_type input_type; 262 enum saa7127_input_type input_type;
259 enum saa7127_output_type output_type; 263 enum saa7127_output_type output_type;
260 int video_enable; 264 int video_enable;
@@ -482,7 +486,7 @@ static int saa7127_set_std(struct v4l2_subdev *sd, v4l2_std_id std)
482 inittab = saa7127_init_config_60hz; 486 inittab = saa7127_init_config_60hz;
483 state->reg_61 = SAA7127_60HZ_DAC_CONTROL; 487 state->reg_61 = SAA7127_60HZ_DAC_CONTROL;
484 488
485 } else if (state->ident == V4L2_IDENT_SAA7129 && 489 } else if (state->ident == SAA7129 &&
486 (std & V4L2_STD_SECAM) && 490 (std & V4L2_STD_SECAM) &&
487 !(std & (V4L2_STD_625_50 & ~V4L2_STD_SECAM))) { 491 !(std & (V4L2_STD_625_50 & ~V4L2_STD_SECAM))) {
488 492
@@ -517,7 +521,7 @@ static int saa7127_set_output_type(struct v4l2_subdev *sd, int output)
517 break; 521 break;
518 522
519 case SAA7127_OUTPUT_TYPE_COMPOSITE: 523 case SAA7127_OUTPUT_TYPE_COMPOSITE:
520 if (state->ident == V4L2_IDENT_SAA7129) 524 if (state->ident == SAA7129)
521 state->reg_2d = 0x20; /* CVBS only */ 525 state->reg_2d = 0x20; /* CVBS only */
522 else 526 else
523 state->reg_2d = 0x08; /* 00001000 CVBS only, RGB DAC's off (high impedance mode) */ 527 state->reg_2d = 0x08; /* 00001000 CVBS only, RGB DAC's off (high impedance mode) */
@@ -525,7 +529,7 @@ static int saa7127_set_output_type(struct v4l2_subdev *sd, int output)
525 break; 529 break;
526 530
527 case SAA7127_OUTPUT_TYPE_SVIDEO: 531 case SAA7127_OUTPUT_TYPE_SVIDEO:
528 if (state->ident == V4L2_IDENT_SAA7129) 532 if (state->ident == SAA7129)
529 state->reg_2d = 0x18; /* Y + C */ 533 state->reg_2d = 0x18; /* Y + C */
530 else 534 else
531 state->reg_2d = 0xff; /*11111111 croma -> R, luma -> CVBS + G + B */ 535 state->reg_2d = 0xff; /*11111111 croma -> R, luma -> CVBS + G + B */
@@ -543,7 +547,7 @@ static int saa7127_set_output_type(struct v4l2_subdev *sd, int output)
543 break; 547 break;
544 548
545 case SAA7127_OUTPUT_TYPE_BOTH: 549 case SAA7127_OUTPUT_TYPE_BOTH:
546 if (state->ident == V4L2_IDENT_SAA7129) 550 if (state->ident == SAA7129)
547 state->reg_2d = 0x38; 551 state->reg_2d = 0x38;
548 else 552 else
549 state->reg_2d = 0xbf; 553 state->reg_2d = 0xbf;
@@ -661,10 +665,6 @@ static int saa7127_s_vbi_data(struct v4l2_subdev *sd, const struct v4l2_sliced_v
661#ifdef CONFIG_VIDEO_ADV_DEBUG 665#ifdef CONFIG_VIDEO_ADV_DEBUG
662static int saa7127_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) 666static int saa7127_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
663{ 667{
664 struct i2c_client *client = v4l2_get_subdevdata(sd);
665
666 if (!v4l2_chip_match_i2c_client(client, &reg->match))
667 return -EINVAL;
668 reg->val = saa7127_read(sd, reg->reg & 0xff); 668 reg->val = saa7127_read(sd, reg->reg & 0xff);
669 reg->size = 1; 669 reg->size = 1;
670 return 0; 670 return 0;
@@ -672,23 +672,11 @@ static int saa7127_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *
672 672
673static int saa7127_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg) 673static int saa7127_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg)
674{ 674{
675 struct i2c_client *client = v4l2_get_subdevdata(sd);
676
677 if (!v4l2_chip_match_i2c_client(client, &reg->match))
678 return -EINVAL;
679 saa7127_write(sd, reg->reg & 0xff, reg->val & 0xff); 675 saa7127_write(sd, reg->reg & 0xff, reg->val & 0xff);
680 return 0; 676 return 0;
681} 677}
682#endif 678#endif
683 679
684static int saa7127_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip)
685{
686 struct saa7127_state *state = to_state(sd);
687 struct i2c_client *client = v4l2_get_subdevdata(sd);
688
689 return v4l2_chip_ident_i2c_client(client, chip, state->ident, 0);
690}
691
692static int saa7127_log_status(struct v4l2_subdev *sd) 680static int saa7127_log_status(struct v4l2_subdev *sd)
693{ 681{
694 struct saa7127_state *state = to_state(sd); 682 struct saa7127_state *state = to_state(sd);
@@ -708,7 +696,6 @@ static int saa7127_log_status(struct v4l2_subdev *sd)
708 696
709static const struct v4l2_subdev_core_ops saa7127_core_ops = { 697static const struct v4l2_subdev_core_ops saa7127_core_ops = {
710 .log_status = saa7127_log_status, 698 .log_status = saa7127_log_status,
711 .g_chip_ident = saa7127_g_chip_ident,
712#ifdef CONFIG_VIDEO_ADV_DEBUG 699#ifdef CONFIG_VIDEO_ADV_DEBUG
713 .g_register = saa7127_g_register, 700 .g_register = saa7127_g_register,
714 .s_register = saa7127_s_register, 701 .s_register = saa7127_s_register,
@@ -777,10 +764,10 @@ static int saa7127_probe(struct i2c_client *client,
777 if (saa7127_read(sd, SAA7129_REG_FADE_KEY_COL2) == 0xaa) { 764 if (saa7127_read(sd, SAA7129_REG_FADE_KEY_COL2) == 0xaa) {
778 saa7127_write(sd, SAA7129_REG_FADE_KEY_COL2, 765 saa7127_write(sd, SAA7129_REG_FADE_KEY_COL2,
779 read_result); 766 read_result);
780 state->ident = V4L2_IDENT_SAA7129; 767 state->ident = SAA7129;
781 strlcpy(client->name, "saa7129", I2C_NAME_SIZE); 768 strlcpy(client->name, "saa7129", I2C_NAME_SIZE);
782 } else { 769 } else {
783 state->ident = V4L2_IDENT_SAA7127; 770 state->ident = SAA7127;
784 strlcpy(client->name, "saa7127", I2C_NAME_SIZE); 771 strlcpy(client->name, "saa7127", I2C_NAME_SIZE);
785 } 772 }
786 } 773 }
@@ -804,7 +791,7 @@ static int saa7127_probe(struct i2c_client *client,
804 saa7127_set_input_type(sd, SAA7127_INPUT_TYPE_NORMAL); 791 saa7127_set_input_type(sd, SAA7127_INPUT_TYPE_NORMAL);
805 saa7127_set_video_enable(sd, 1); 792 saa7127_set_video_enable(sd, 1);
806 793
807 if (state->ident == V4L2_IDENT_SAA7129) 794 if (state->ident == SAA7129)
808 saa7127_write_inittab(sd, saa7129_init_config_extra); 795 saa7127_write_inittab(sd, saa7129_init_config_extra);
809 return 0; 796 return 0;
810} 797}
@@ -825,10 +812,10 @@ static int saa7127_remove(struct i2c_client *client)
825 812
826static struct i2c_device_id saa7127_id[] = { 813static struct i2c_device_id saa7127_id[] = {
827 { "saa7127_auto", 0 }, /* auto-detection */ 814 { "saa7127_auto", 0 }, /* auto-detection */
828 { "saa7126", V4L2_IDENT_SAA7127 }, 815 { "saa7126", SAA7127 },
829 { "saa7127", V4L2_IDENT_SAA7127 }, 816 { "saa7127", SAA7127 },
830 { "saa7128", V4L2_IDENT_SAA7129 }, 817 { "saa7128", SAA7129 },
831 { "saa7129", V4L2_IDENT_SAA7129 }, 818 { "saa7129", SAA7129 },
832 { } 819 { }
833}; 820};
834MODULE_DEVICE_TABLE(i2c, saa7127_id); 821MODULE_DEVICE_TABLE(i2c, saa7127_id);