Commit bc974305 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

V4L/DVB (9969): tvp5150: add support for VIDIOC_G_CHIP_IDENT ioctl

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent b3ee7e21
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <media/v4l2-device.h> #include <media/v4l2-device.h>
#include <media/tvp5150.h> #include <media/tvp5150.h>
#include <media/v4l2-i2c-drv-legacy.h> #include <media/v4l2-i2c-drv-legacy.h>
#include <media/v4l2-chip-ident.h>
#include "tvp5150_reg.h" #include "tvp5150_reg.h"
...@@ -961,6 +962,20 @@ static int tvp5150_g_fmt(struct v4l2_subdev *sd, struct v4l2_format *fmt) ...@@ -961,6 +962,20 @@ static int tvp5150_g_fmt(struct v4l2_subdev *sd, struct v4l2_format *fmt)
} }
static int tvp5150_g_chip_ident(struct v4l2_subdev *sd,
struct v4l2_chip_ident *chip)
{
int rev;
struct i2c_client *client = v4l2_get_subdevdata(sd);
rev = tvp5150_read(sd, TVP5150_ROM_MAJOR_VER) << 8 |
tvp5150_read(sd, TVP5150_ROM_MINOR_VER);
return v4l2_chip_ident_i2c_client(client, chip, V4L2_IDENT_TVP5150,
rev);
}
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
static int tvp5150_g_register(struct v4l2_subdev *sd, struct v4l2_register *reg) static int tvp5150_g_register(struct v4l2_subdev *sd, struct v4l2_register *reg)
{ {
...@@ -1026,6 +1041,7 @@ static const struct v4l2_subdev_core_ops tvp5150_core_ops = { ...@@ -1026,6 +1041,7 @@ static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
.s_ctrl = tvp5150_s_ctrl, .s_ctrl = tvp5150_s_ctrl,
.queryctrl = tvp5150_queryctrl, .queryctrl = tvp5150_queryctrl,
.reset = tvp5150_reset, .reset = tvp5150_reset,
.g_chip_ident = tvp5150_g_chip_ident,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.g_register = tvp5150_g_register, .g_register = tvp5150_g_register,
.s_register = tvp5150_s_register, .s_register = tvp5150_s_register,
......
...@@ -70,6 +70,9 @@ enum { ...@@ -70,6 +70,9 @@ enum {
/* module vp27smpx: just ident 2700 */ /* module vp27smpx: just ident 2700 */
V4L2_IDENT_VP27SMPX = 2700, V4L2_IDENT_VP27SMPX = 2700,
/* module tvp5150 */
V4L2_IDENT_TVP5150 = 5150,
/* module cs5345: just ident 5345 */ /* module cs5345: just ident 5345 */
V4L2_IDENT_CS5345 = 5345, V4L2_IDENT_CS5345 = 5345,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment