浏览代码

V4L/DVB (4546): Add u32 argument to VIDIOC_INT_RESET.

The extra argument makes it possible to reset subsystems of a chip if
that is supported.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil 18 年之前
父节点
当前提交
784e8fe417

+ 1 - 1
drivers/media/video/em28xx/em28xx-video.c

@@ -174,7 +174,7 @@ static void em28xx_config_i2c(struct em28xx *dev)
 
 
 	route.input = INPUT(dev->ctl_input)->vmux;
 	route.input = INPUT(dev->ctl_input)->vmux;
 	route.output = 0;
 	route.output = 0;
-	em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, NULL);
+	em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, 0);
 	em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
 	em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
 	em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
 	em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
 
 

+ 1 - 1
drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c

@@ -221,7 +221,7 @@ static unsigned int decoder_describe(struct pvr2_v4l_cx2584x *ctxt,
 static void decoder_reset(struct pvr2_v4l_cx2584x *ctxt)
 static void decoder_reset(struct pvr2_v4l_cx2584x *ctxt)
 {
 {
 	int ret;
 	int ret;
-	ret = pvr2_i2c_client_cmd(ctxt->client,VIDIOC_INT_RESET,NULL);
+	ret = pvr2_i2c_client_cmd(ctxt->client,VIDIOC_INT_RESET,0);
 	pvr2_trace(PVR2_TRACE_CHIPS,"i2c cx25840 decoder_reset (ret=%d)",ret);
 	pvr2_trace(PVR2_TRACE_CHIPS,"i2c cx25840 decoder_reset (ret=%d)",ret);
 }
 }
 
 

+ 1 - 0
drivers/media/video/v4l2-common.c

@@ -938,6 +938,7 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
 	case VIDIOC_INT_AUDIO_CLOCK_FREQ:
 	case VIDIOC_INT_AUDIO_CLOCK_FREQ:
 	case VIDIOC_INT_I2S_CLOCK_FREQ:
 	case VIDIOC_INT_I2S_CLOCK_FREQ:
 	case VIDIOC_INT_S_STANDBY:
 	case VIDIOC_INT_S_STANDBY:
+	case VIDIOC_INT_RESET:
 	{
 	{
 		u32 *p=arg;
 		u32 *p=arg;
 
 

+ 3 - 2
include/media/v4l2-common.h

@@ -169,8 +169,9 @@ enum v4l2_chip_ident {
 #define	VIDIOC_INT_S_REGISTER 		_IOR ('d', 100, struct v4l2_register)
 #define	VIDIOC_INT_S_REGISTER 		_IOR ('d', 100, struct v4l2_register)
 #define	VIDIOC_INT_G_REGISTER 		_IOWR('d', 101, struct v4l2_register)
 #define	VIDIOC_INT_G_REGISTER 		_IOWR('d', 101, struct v4l2_register)
 
 
-/* Reset the I2C chip */
-#define VIDIOC_INT_RESET            	_IO  ('d', 102)
+/* Generic reset command. The argument selects which subsystems to reset.
+   Passing 0 will always reset the whole chip. */
+#define VIDIOC_INT_RESET            	_IOW ('d', 102, u32)
 
 
 /* Set the frequency (in Hz) of the audio clock output.
 /* Set the frequency (in Hz) of the audio clock output.
    Used to slave an audio processor to the video decoder, ensuring that audio
    Used to slave an audio processor to the video decoder, ensuring that audio