VIDIOC_G_REGISTER question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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(&reg->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

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux