[media] v4l2-subdev: convert documentation to the right format

struct v4l2_subdev_core_ops has some kernel-doc-nano documentation
using a wrong format, with affects the number of stuff reported at
the DocBook device-drivers.xml.

Properly mark the such comment blocks using the right notation.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Acked-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Mauro Carvalho Chehab 2015-08-22 05:40:29 -03:00
parent 62c0d016da
commit 5c6629847c

View file

@ -118,34 +118,36 @@ struct v4l2_subdev_io_pin_config {
u8 strength; /* Pin drive strength */ u8 strength; /* Pin drive strength */
}; };
/* /**
s_io_pin_config: configure one or more chip I/O pins for chips that * struct v4l2_subdev_core_ops - Define ops callbacks for subdevs
multiplex different internal signal pads out to IO pins. This function *
takes a pointer to an array of 'n' pin configuration entries, one for * @s_io_pin_config: configure one or more chip I/O pins for chips that
each pin being configured. This function could be called at times * multiplex different internal signal pads out to IO pins. This function
other than just subdevice initialization. * takes a pointer to an array of 'n' pin configuration entries, one for
* each pin being configured. This function could be called at times
init: initialize the sensor registers to some sort of reasonable default * other than just subdevice initialization.
values. Do not use for new drivers and should be removed in existing *
drivers. * @init: initialize the sensor registers to some sort of reasonable default
* values. Do not use for new drivers and should be removed in existing
load_fw: load firmware. * drivers.
*
reset: generic reset command. The argument selects which subsystems to * @load_fw: load firmware.
reset. Passing 0 will always reset the whole chip. Do not use for new *
drivers without discussing this first on the linux-media mailinglist. * @reset: generic reset command. The argument selects which subsystems to
There should be no reason normally to reset a device. * reset. Passing 0 will always reset the whole chip. Do not use for new
* drivers without discussing this first on the linux-media mailinglist.
s_gpio: set GPIO pins. Very simple right now, might need to be extended with * There should be no reason normally to reset a device.
a direction argument if needed. *
* @s_gpio: set GPIO pins. Very simple right now, might need to be extended with
s_power: puts subdevice in power saving mode (on == 0) or normal operation * a direction argument if needed.
mode (on == 1). *
* @s_power: puts subdevice in power saving mode (on == 0) or normal operation
interrupt_service_routine: Called by the bridge chip's interrupt service * mode (on == 1).
handler, when an interrupt status has be raised due to this subdev, *
so that this subdev can handle the details. It may schedule work to be * @interrupt_service_routine: Called by the bridge chip's interrupt service
performed later. It must not sleep. *Called from an IRQ context*. * handler, when an interrupt status has be raised due to this subdev,
* so that this subdev can handle the details. It may schedule work to be
* performed later. It must not sleep. *Called from an IRQ context*.
*/ */
struct v4l2_subdev_core_ops { struct v4l2_subdev_core_ops {
int (*log_status)(struct v4l2_subdev *sd); int (*log_status)(struct v4l2_subdev *sd);
@ -180,18 +182,17 @@ struct v4l2_subdev_core_ops {
struct v4l2_event_subscription *sub); struct v4l2_event_subscription *sub);
}; };
/* s_radio: v4l device was opened in radio mode. /**
* struct s_radio - Callbacks used when v4l device was opened in radio mode.
g_frequency: freq->type must be filled in. Normally done by video_ioctl2 *
or the bridge driver. * @g_frequency: freq->type must be filled in. Normally done by video_ioctl2
* or the bridge driver.
g_tuner: * @g_tuner:
s_tuner: vt->type must be filled in. Normally done by video_ioctl2 or the * @s_tuner: vt->type must be filled in. Normally done by video_ioctl2 or the
bridge driver. * bridge driver.
*
s_type_addr: sets tuner type and its I2C addr. * @s_type_addr: sets tuner type and its I2C addr.
* @s_config: sets tda9887 specific stuff, like port1, port2 and qss
s_config: sets tda9887 specific stuff, like port1, port2 and qss
*/ */
struct v4l2_subdev_tuner_ops { struct v4l2_subdev_tuner_ops {
int (*s_radio)(struct v4l2_subdev *sd); int (*s_radio)(struct v4l2_subdev *sd);
@ -206,25 +207,28 @@ struct v4l2_subdev_tuner_ops {
int (*s_config)(struct v4l2_subdev *sd, const struct v4l2_priv_tun_config *config); int (*s_config)(struct v4l2_subdev *sd, const struct v4l2_priv_tun_config *config);
}; };
/* s_clock_freq: set the frequency (in Hz) of the audio clock output. /**
Used to slave an audio processor to the video decoder, ensuring that * struct v4l2_subdev_audio_ops - Callbacks used for audio-related settings
audio and video remain synchronized. Usual values for the frequency *
are 48000, 44100 or 32000 Hz. If the frequency is not supported, then * @s_clock_freq: set the frequency (in Hz) of the audio clock output.
-EINVAL is returned. * Used to slave an audio processor to the video decoder, ensuring that
* audio and video remain synchronized. Usual values for the frequency
s_i2s_clock_freq: sets I2S speed in bps. This is used to provide a standard * are 48000, 44100 or 32000 Hz. If the frequency is not supported, then
way to select I2S clock used by driving digital audio streams at some * -EINVAL is returned.
board designs. Usual values for the frequency are 1024000 and 2048000. *
If the frequency is not supported, then -EINVAL is returned. * @s_i2s_clock_freq: sets I2S speed in bps. This is used to provide a standard
* way to select I2S clock used by driving digital audio streams at some
s_routing: used to define the input and/or output pins of an audio chip, * board designs. Usual values for the frequency are 1024000 and 2048000.
and any additional configuration data. * If the frequency is not supported, then -EINVAL is returned.
Never attempt to use user-level input IDs (e.g. Composite, S-Video, *
Tuner) at this level. An i2c device shouldn't know about whether an * @s_routing: used to define the input and/or output pins of an audio chip,
input pin is connected to a Composite connector, become on another * and any additional configuration data.
board or platform it might be connected to something else entirely. * Never attempt to use user-level input IDs (e.g. Composite, S-Video,
The calling driver is responsible for mapping a user-level input to * Tuner) at this level. An i2c device shouldn't know about whether an
the right pins on the i2c device. * input pin is connected to a Composite connector, become on another
* board or platform it might be connected to something else entirely.
* The calling driver is responsible for mapping a user-level input to
* the right pins on the i2c device.
*/ */
struct v4l2_subdev_audio_ops { struct v4l2_subdev_audio_ops {
int (*s_clock_freq)(struct v4l2_subdev *sd, u32 freq); int (*s_clock_freq)(struct v4l2_subdev *sd, u32 freq);
@ -243,6 +247,7 @@ struct v4l2_subdev_audio_ops {
/** /**
* struct v4l2_mbus_frame_desc_entry - media bus frame description structure * struct v4l2_mbus_frame_desc_entry - media bus frame description structure
*
* @flags: V4L2_MBUS_FRAME_DESC_FL_* flags * @flags: V4L2_MBUS_FRAME_DESC_FL_* flags
* @pixelcode: media bus pixel code, valid if FRAME_DESC_FL_BLOB is not set * @pixelcode: media bus pixel code, valid if FRAME_DESC_FL_BLOB is not set
* @length: number of octets per frame, valid if V4L2_MBUS_FRAME_DESC_FL_BLOB * @length: number of octets per frame, valid if V4L2_MBUS_FRAME_DESC_FL_BLOB
@ -266,45 +271,46 @@ struct v4l2_mbus_frame_desc {
unsigned short num_entries; unsigned short num_entries;
}; };
/* /**
s_std_output: set v4l2_std_id for video OUTPUT devices. This is ignored by * struct v4l2_subdev_video_ops - Callbacks used when v4l device was opened
video input devices. * in video mode.
* @s_std_output: set v4l2_std_id for video OUTPUT devices. This is ignored by
g_std_output: get current standard for video OUTPUT devices. This is ignored * video input devices.
by video input devices. *
* @g_std_output: get current standard for video OUTPUT devices. This is ignored
g_tvnorms: get v4l2_std_id with all standards supported by the video * by video input devices.
CAPTURE device. This is ignored by video output devices. *
* @g_tvnorms: get v4l2_std_id with all standards supported by the video
g_tvnorms_output: get v4l2_std_id with all standards supported by the video * CAPTURE device. This is ignored by video output devices.
OUTPUT device. This is ignored by video capture devices. *
* @g_tvnorms_output: get v4l2_std_id with all standards supported by the video
s_crystal_freq: sets the frequency of the crystal used to generate the * OUTPUT device. This is ignored by video capture devices.
clocks in Hz. An extra flags field allows device specific configuration *
regarding clock frequency dividers, etc. If not used, then set flags * @s_crystal_freq: sets the frequency of the crystal used to generate the
to 0. If the frequency is not supported, then -EINVAL is returned. * clocks in Hz. An extra flags field allows device specific configuration
* regarding clock frequency dividers, etc. If not used, then set flags
g_input_status: get input status. Same as the status field in the v4l2_input * to 0. If the frequency is not supported, then -EINVAL is returned.
struct. *
* @g_input_status: get input status. Same as the status field in the v4l2_input
s_routing: see s_routing in audio_ops, except this version is for video * struct.
devices. *
* @s_routing: see s_routing in audio_ops, except this version is for video
s_dv_timings(): Set custom dv timings in the sub device. This is used * devices.
when sub device is capable of setting detailed timing information *
in the hardware to generate/detect the video signal. * @s_dv_timings(): Set custom dv timings in the sub device. This is used
* when sub device is capable of setting detailed timing information
g_dv_timings(): Get custom dv timings in the sub device. * in the hardware to generate/detect the video signal.
*
g_mbus_config: get supported mediabus configurations * @g_dv_timings(): Get custom dv timings in the sub device.
* @g_mbus_config: get supported mediabus configurations
s_mbus_config: set a certain mediabus configuration. This operation is added *
for compatibility with soc-camera drivers and should not be used by new * @s_mbus_config: set a certain mediabus configuration. This operation is added
software. * for compatibility with soc-camera drivers and should not be used by new
* software.
s_rx_buffer: set a host allocated memory buffer for the subdev. The subdev *
can adjust @size to a lower value and must not write more data to the * @s_rx_buffer: set a host allocated memory buffer for the subdev. The subdev
buffer starting at @data than the original value of @size. * can adjust @size to a lower value and must not write more data to the
* buffer starting at @data than the original value of @size.
*/ */
struct v4l2_subdev_video_ops { struct v4l2_subdev_video_ops {
int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config); int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
@ -341,34 +347,37 @@ struct v4l2_subdev_video_ops {
unsigned int *size); unsigned int *size);
}; };
/* /**
decode_vbi_line: video decoders that support sliced VBI need to implement * struct v4l2_subdev_vbi_ops - Callbacks used when v4l device was opened
this ioctl. Field p of the v4l2_sliced_vbi_line struct is set to the * in video mode via the vbi device node.
start of the VBI data that was generated by the decoder. The driver *
then parses the sliced VBI data and sets the other fields in the * @decode_vbi_line: video decoders that support sliced VBI need to implement
struct accordingly. The pointer p is updated to point to the start of * this ioctl. Field p of the v4l2_sliced_vbi_line struct is set to the
the payload which can be copied verbatim into the data field of the * start of the VBI data that was generated by the decoder. The driver
v4l2_sliced_vbi_data struct. If no valid VBI data was found, then the * then parses the sliced VBI data and sets the other fields in the
type field is set to 0 on return. * struct accordingly. The pointer p is updated to point to the start of
* the payload which can be copied verbatim into the data field of the
s_vbi_data: used to generate VBI signals on a video signal. * v4l2_sliced_vbi_data struct. If no valid VBI data was found, then the
v4l2_sliced_vbi_data is filled with the data packets that should be * type field is set to 0 on return.
output. Note that if you set the line field to 0, then that VBI signal *
is disabled. If no valid VBI data was found, then the type field is * @s_vbi_data: used to generate VBI signals on a video signal.
set to 0 on return. * v4l2_sliced_vbi_data is filled with the data packets that should be
* output. Note that if you set the line field to 0, then that VBI signal
g_vbi_data: used to obtain the sliced VBI packet from a readback register. * is disabled. If no valid VBI data was found, then the type field is
Not all video decoders support this. If no data is available because * set to 0 on return.
the readback register contains invalid or erroneous data -EIO is *
returned. Note that you must fill in the 'id' member and the 'field' * @g_vbi_data: used to obtain the sliced VBI packet from a readback register.
member (to determine whether CC data from the first or second field * Not all video decoders support this. If no data is available because
should be obtained). * the readback register contains invalid or erroneous data -EIO is
* returned. Note that you must fill in the 'id' member and the 'field'
s_raw_fmt: setup the video encoder/decoder for raw VBI. * member (to determine whether CC data from the first or second field
* should be obtained).
g_sliced_fmt: retrieve the current sliced VBI settings. *
* @s_raw_fmt: setup the video encoder/decoder for raw VBI.
s_sliced_fmt: setup the sliced VBI settings. *
* @g_sliced_fmt: retrieve the current sliced VBI settings.
*
* @s_sliced_fmt: setup the sliced VBI settings.
*/ */
struct v4l2_subdev_vbi_ops { struct v4l2_subdev_vbi_ops {
int (*decode_vbi_line)(struct v4l2_subdev *sd, struct v4l2_decode_vbi_line *vbi_line); int (*decode_vbi_line)(struct v4l2_subdev *sd, struct v4l2_decode_vbi_line *vbi_line);