V4L/DVB (5807): Bttv: Add support for DBG_[SG]_REGISTER ioctls
Adds the advanced debugging register read/write ioctl support to the bttv driver. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Родитель
8c2c0dfe4d
Коммит
55c0d1005a
|
@ -2259,6 +2259,24 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
|
|||
printk(KERN_INFO "bttv%d: ================== END STATUS CARD #%d ==================\n", btv->c.nr, btv->c.nr);
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
case VIDIOC_DBG_G_REGISTER:
|
||||
case VIDIOC_DBG_S_REGISTER:
|
||||
{
|
||||
struct v4l2_register *reg = arg;
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EPERM;
|
||||
if (!v4l2_chip_match_host(reg->match_type, reg->match_chip))
|
||||
return -EINVAL;
|
||||
/* bt848 has a 12-bit register space */
|
||||
reg->reg &= 0xfff;
|
||||
if (cmd == VIDIOC_DBG_G_REGISTER)
|
||||
reg->val = btread(reg->reg);
|
||||
else
|
||||
btwrite(reg->val, reg->reg);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
default:
|
||||
return -ENOIOCTLCMD;
|
||||
|
@ -3569,6 +3587,8 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file,
|
|||
case VIDIOC_G_FREQUENCY:
|
||||
case VIDIOC_S_FREQUENCY:
|
||||
case VIDIOC_LOG_STATUS:
|
||||
case VIDIOC_DBG_G_REGISTER:
|
||||
case VIDIOC_DBG_S_REGISTER:
|
||||
return bttv_common_ioctls(btv,cmd,arg);
|
||||
|
||||
default:
|
||||
|
@ -3951,6 +3971,8 @@ static int radio_do_ioctl(struct inode *inode, struct file *file,
|
|||
case VIDIOCGAUDIO:
|
||||
case VIDIOCSAUDIO:
|
||||
case VIDIOC_LOG_STATUS:
|
||||
case VIDIOC_DBG_G_REGISTER:
|
||||
case VIDIOC_DBG_S_REGISTER:
|
||||
return bttv_common_ioctls(btv,cmd,arg);
|
||||
|
||||
default:
|
||||
|
|
Загрузка…
Ссылка в новой задаче