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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html