I'm treating the CX23418 A/V Core as a non-I2C host chip. Am I allowed to modify the register value passed in to a VIDIOC_G_REGISTER ioctl() like below? The spec doesn't say if this feedback is expected or not. static inline int cx18_av_dbg_match(const struct v4l2_dbg_match *match) { return match->type == V4L2_CHIP_MATCH_HOST && match->addr == 1; } static int cx18_av_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip) { if (cx18_av_dbg_match(&chip->match)) { /* * Nothing else is going to claim to be this combination, * and the real host chip revision will be returned by a host * match on address 0. */ chip->ident = V4L2_IDENT_CX25843; chip->revision = V4L2_IDENT_CX23418; /* Why not */ } return 0; } #ifdef CONFIG_VIDEO_ADV_DEBUG static int cx18_av_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) { struct cx18 *cx = v4l2_get_subdevdata(sd); if (!cx18_av_dbg_match(®->match)) return -EINVAL; if (!capable(CAP_SYS_ADMIN)) return -EPERM; reg->reg &= 0x00000ffc; <============ Is this OK ???? reg->size = 4; reg->val = cx18_av_read4(cx, reg->reg); return 0; } [...] Regards, Andy -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html