aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c/soc_camera/rj54n1cb0c.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/i2c/soc_camera/rj54n1cb0c.c')
-rw-r--r--drivers/media/i2c/soc_camera/rj54n1cb0c.c31
1 files changed, 2 insertions, 29 deletions
diff --git a/drivers/media/i2c/soc_camera/rj54n1cb0c.c b/drivers/media/i2c/soc_camera/rj54n1cb0c.c
index 1f9ec3b06b4e..81b515c2fb36 100644
--- a/drivers/media/i2c/soc_camera/rj54n1cb0c.c
+++ b/drivers/media/i2c/soc_camera/rj54n1cb0c.c
@@ -18,7 +18,6 @@
18#include <media/rj54n1cb0c.h> 18#include <media/rj54n1cb0c.h>
19#include <media/soc_camera.h> 19#include <media/soc_camera.h>
20#include <media/v4l2-subdev.h> 20#include <media/v4l2-subdev.h>
21#include <media/v4l2-chip-ident.h>
22#include <media/v4l2-ctrls.h> 21#include <media/v4l2-ctrls.h>
23 22
24#define RJ54N1_DEV_CODE 0x0400 23#define RJ54N1_DEV_CODE 0x0400
@@ -1120,37 +1119,16 @@ static int rj54n1_s_fmt(struct v4l2_subdev *sd,
1120 return 0; 1119 return 0;
1121} 1120}
1122 1121
1123static int rj54n1_g_chip_ident(struct v4l2_subdev *sd,
1124 struct v4l2_dbg_chip_ident *id)
1125{
1126 struct i2c_client *client = v4l2_get_subdevdata(sd);
1127
1128 if (id->match.type != V4L2_CHIP_MATCH_I2C_ADDR)
1129 return -EINVAL;
1130
1131 if (id->match.addr != client->addr)
1132 return -ENODEV;
1133
1134 id->ident = V4L2_IDENT_RJ54N1CB0C;
1135 id->revision = 0;
1136
1137 return 0;
1138}
1139
1140#ifdef CONFIG_VIDEO_ADV_DEBUG 1122#ifdef CONFIG_VIDEO_ADV_DEBUG
1141static int rj54n1_g_register(struct v4l2_subdev *sd, 1123static int rj54n1_g_register(struct v4l2_subdev *sd,
1142 struct v4l2_dbg_register *reg) 1124 struct v4l2_dbg_register *reg)
1143{ 1125{
1144 struct i2c_client *client = v4l2_get_subdevdata(sd); 1126 struct i2c_client *client = v4l2_get_subdevdata(sd);
1145 1127
1146 if (reg->match.type != V4L2_CHIP_MATCH_I2C_ADDR || 1128 if (reg->reg < 0x400 || reg->reg > 0x1fff)
1147 reg->reg < 0x400 || reg->reg > 0x1fff)
1148 /* Registers > 0x0800 are only available from Sharp support */ 1129 /* Registers > 0x0800 are only available from Sharp support */
1149 return -EINVAL; 1130 return -EINVAL;
1150 1131
1151 if (reg->match.addr != client->addr)
1152 return -ENODEV;
1153
1154 reg->size = 1; 1132 reg->size = 1;
1155 reg->val = reg_read(client, reg->reg); 1133 reg->val = reg_read(client, reg->reg);
1156 1134
@@ -1165,14 +1143,10 @@ static int rj54n1_s_register(struct v4l2_subdev *sd,
1165{ 1143{
1166 struct i2c_client *client = v4l2_get_subdevdata(sd); 1144 struct i2c_client *client = v4l2_get_subdevdata(sd);
1167 1145
1168 if (reg->match.type != V4L2_CHIP_MATCH_I2C_ADDR || 1146 if (reg->reg < 0x400 || reg->reg > 0x1fff)
1169 reg->reg < 0x400 || reg->reg > 0x1fff)
1170 /* Registers >= 0x0800 are only available from Sharp support */ 1147 /* Registers >= 0x0800 are only available from Sharp support */
1171 return -EINVAL; 1148 return -EINVAL;
1172 1149
1173 if (reg->match.addr != client->addr)
1174 return -ENODEV;
1175
1176 if (reg_write(client, reg->reg, reg->val) < 0) 1150 if (reg_write(client, reg->reg, reg->val) < 0)
1177 return -EIO; 1151 return -EIO;
1178 1152
@@ -1233,7 +1207,6 @@ static const struct v4l2_ctrl_ops rj54n1_ctrl_ops = {
1233}; 1207};
1234 1208
1235static struct v4l2_subdev_core_ops rj54n1_subdev_core_ops = { 1209static struct v4l2_subdev_core_ops rj54n1_subdev_core_ops = {
1236 .g_chip_ident = rj54n1_g_chip_ident,
1237#ifdef CONFIG_VIDEO_ADV_DEBUG 1210#ifdef CONFIG_VIDEO_ADV_DEBUG
1238 .g_register = rj54n1_g_register, 1211 .g_register = rj54n1_g_register,
1239 .s_register = rj54n1_s_register, 1212 .s_register = rj54n1_s_register,