diff options
Diffstat (limited to 'drivers/media/i2c/soc_camera/rj54n1cb0c.c')
-rw-r--r-- | drivers/media/i2c/soc_camera/rj54n1cb0c.c | 31 |
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 | ||
1123 | static 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 |
1141 | static int rj54n1_g_register(struct v4l2_subdev *sd, | 1123 | static 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 | ||
1235 | static struct v4l2_subdev_core_ops rj54n1_subdev_core_ops = { | 1209 | static 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, |