Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55c0d100 authored by Trent Piepho's avatar Trent Piepho Committed by Mauro Carvalho Chehab
Browse files

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: default avatarTrent Piepho <xyzzy@speakeasy.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 8c2c0dfe
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -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: