V4L/DVB (3430): Add new internal VIDIOC_INT commands
- Add new internal VIDIOC_INT commands for setting the tuner mode, for putting a chip into standby mode and to set/get the routing of inputs/outputs of audio or video of a chip. These new commands will replace older commands that are no longer up to the task. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
ac272ed7f1
commit
757d250518
@@ -115,12 +115,15 @@ enum v4l2_chip_ident {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* audio ioctls */
|
/* audio ioctls */
|
||||||
/* v4l device was opened in Radio mode */
|
|
||||||
|
/* v4l device was opened in Radio mode, to be replaced by VIDIOC_INT_S_TUNER_MODE */
|
||||||
#define AUDC_SET_RADIO _IO('d',88)
|
#define AUDC_SET_RADIO _IO('d',88)
|
||||||
/* select from TV,radio,extern,MUTE */
|
|
||||||
|
/* select from TV,radio,extern,MUTE, to be replaced with VIDIOC_INT_S_AUDIO_ROUTING */
|
||||||
#define AUDC_SET_INPUT _IOW('d',89,int)
|
#define AUDC_SET_INPUT _IOW('d',89,int)
|
||||||
|
|
||||||
/* msp3400 ioctl: will be removed in the near future */
|
/* msp3400 ioctl: will be removed in the near future, to be replaced by
|
||||||
|
VIDIOC_INT_S_AUDIO_ROUTING. */
|
||||||
struct msp_matrix {
|
struct msp_matrix {
|
||||||
int input;
|
int input;
|
||||||
int output;
|
int output;
|
||||||
@@ -128,13 +131,26 @@ struct msp_matrix {
|
|||||||
#define MSP_SET_MATRIX _IOW('m',17,struct msp_matrix)
|
#define MSP_SET_MATRIX _IOW('m',17,struct msp_matrix)
|
||||||
|
|
||||||
/* tuner ioctls */
|
/* tuner ioctls */
|
||||||
|
|
||||||
/* Sets tuner type and its I2C addr */
|
/* Sets tuner type and its I2C addr */
|
||||||
#define TUNER_SET_TYPE_ADDR _IOW('d', 90, int)
|
#define TUNER_SET_TYPE_ADDR _IOW('d', 90, int)
|
||||||
/* Puts tuner on powersaving state, disabling it, except for i2c */
|
|
||||||
|
/* Puts tuner on powersaving state, disabling it, except for i2c. To be replaced
|
||||||
|
by VIDIOC_INT_S_STANDBY. */
|
||||||
#define TUNER_SET_STANDBY _IOW('d', 91, int)
|
#define TUNER_SET_STANDBY _IOW('d', 91, int)
|
||||||
|
|
||||||
/* Sets tda9887 specific stuff, like port1, port2 and qss */
|
/* Sets tda9887 specific stuff, like port1, port2 and qss */
|
||||||
#define TDA9887_SET_CONFIG _IOW('d', 92, int)
|
#define TDA9887_SET_CONFIG _IOW('d', 92, int)
|
||||||
|
|
||||||
|
/* Switch the tuner to a specific tuner mode. Replacement of AUDC_SET_RADIO */
|
||||||
|
#define VIDIOC_INT_S_TUNER_MODE _IOW('d', 93, enum v4l2_tuner_type)
|
||||||
|
|
||||||
|
/* Generic standby command. Passing -1 (all bits set to 1) will put the whole
|
||||||
|
chip into standby mode, value 0 will make the chip fully active. Specific
|
||||||
|
bits can be used by certain chips to enable/disable specific subsystems.
|
||||||
|
Replacement of TUNER_SET_STANDBY. */
|
||||||
|
#define VIDIOC_INT_S_STANDBY _IOW('d', 94, u32)
|
||||||
|
|
||||||
/* only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */
|
/* only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */
|
||||||
#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)
|
||||||
@@ -181,4 +197,25 @@ struct msp_matrix {
|
|||||||
If the frequency is not supported, then -EINVAL is returned. */
|
If the frequency is not supported, then -EINVAL is returned. */
|
||||||
#define VIDIOC_INT_I2S_CLOCK_FREQ _IOW ('d', 108, u32)
|
#define VIDIOC_INT_I2S_CLOCK_FREQ _IOW ('d', 108, u32)
|
||||||
|
|
||||||
|
/* Routing definition, device dependent. It specifies which inputs (if any)
|
||||||
|
should be routed to which outputs (if any). */
|
||||||
|
struct v4l2_routing {
|
||||||
|
u32 input;
|
||||||
|
u32 output;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* These internal commands should be used to define the inputs and outputs
|
||||||
|
of an audio/video chip. They will replace AUDC_SET_INPUT.
|
||||||
|
The v4l2 API commands VIDIOC_S/G_INPUT, VIDIOC_S/G_OUTPUT,
|
||||||
|
VIDIOC_S/G_AUDIO and VIDIOC_S/G_AUDOUT are meant to be used by the
|
||||||
|
user. Internally these commands should be used to switch inputs/outputs
|
||||||
|
because only the driver knows how to map a 'Television' input to the precise
|
||||||
|
input/output routing of an A/D converter, or a DSP, or a video digitizer.
|
||||||
|
These four commands should only be sent directly to an i2c device, they
|
||||||
|
should not be broadcast as the routing is very device specific. */
|
||||||
|
#define VIDIOC_INT_S_AUDIO_ROUTING _IOW ('d', 109, struct v4l2_routing)
|
||||||
|
#define VIDIOC_INT_G_AUDIO_ROUTING _IOR ('d', 110, struct v4l2_routing *)
|
||||||
|
#define VIDIOC_INT_S_VIDEO_ROUTING _IOW ('d', 111, struct v4l2_routing)
|
||||||
|
#define VIDIOC_INT_G_VIDEO_ROUTING _IOR ('d', 112, struct v4l2_routing *)
|
||||||
|
|
||||||
#endif /* V4L2_COMMON_H_ */
|
#endif /* V4L2_COMMON_H_ */
|
||||||
|
Reference in New Issue
Block a user