Commit 96b03d2a authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] v4l2: rename VIDIOC_DBG_G_CHIP_NAME to _CHIP_INFO

This ioctl will be extended to return more information than just the name.
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 0f0fe4b9
...@@ -2507,7 +2507,7 @@ that used it. It was originally scheduled for removal in 2.6.35. ...@@ -2507,7 +2507,7 @@ that used it. It was originally scheduled for removal in 2.6.35.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para>Added new debugging ioctl &VIDIOC-DBG-G-CHIP-NAME;. <para>Added new debugging ioctl &VIDIOC-DBG-G-CHIP-INFO;.
</para> </para>
</listitem> </listitem>
</orderedlist> </orderedlist>
......
...@@ -147,7 +147,7 @@ applications. --> ...@@ -147,7 +147,7 @@ applications. -->
<revremark>Remove obsolete and unused DV_PRESET ioctls: <revremark>Remove obsolete and unused DV_PRESET ioctls:
VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and
VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output capability VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output capability
flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS. Added VIDIOC_DBG_G_CHIP_NAME. flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS. Added VIDIOC_DBG_G_CHIP_INFO.
</revremark> </revremark>
</revision> </revision>
...@@ -548,7 +548,7 @@ and discussions on the V4L mailing list.</revremark> ...@@ -548,7 +548,7 @@ and discussions on the V4L mailing list.</revremark>
&sub-create-bufs; &sub-create-bufs;
&sub-cropcap; &sub-cropcap;
&sub-dbg-g-chip-ident; &sub-dbg-g-chip-ident;
&sub-dbg-g-chip-name; &sub-dbg-g-chip-info;
&sub-dbg-g-register; &sub-dbg-g-register;
&sub-decoder-cmd; &sub-decoder-cmd;
&sub-dqevent; &sub-dqevent;
......
<refentry id="vidioc-dbg-g-chip-name"> <refentry id="vidioc-dbg-g-chip-info">
<refmeta> <refmeta>
<refentrytitle>ioctl VIDIOC_DBG_G_CHIP_NAME</refentrytitle> <refentrytitle>ioctl VIDIOC_DBG_G_CHIP_INFO</refentrytitle>
&manvol; &manvol;
</refmeta> </refmeta>
<refnamediv> <refnamediv>
<refname>VIDIOC_DBG_G_CHIP_NAME</refname> <refname>VIDIOC_DBG_G_CHIP_INFO</refname>
<refpurpose>Identify the chips on a TV card</refpurpose> <refpurpose>Identify the chips on a TV card</refpurpose>
</refnamediv> </refnamediv>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<funcdef>int <function>ioctl</function></funcdef> <funcdef>int <function>ioctl</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef> <paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>request</parameter></paramdef> <paramdef>int <parameter>request</parameter></paramdef>
<paramdef>struct v4l2_dbg_chip_name <paramdef>struct v4l2_dbg_chip_info
*<parameter>argp</parameter></paramdef> *<parameter>argp</parameter></paramdef>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<varlistentry> <varlistentry>
<term><parameter>request</parameter></term> <term><parameter>request</parameter></term>
<listitem> <listitem>
<para>VIDIOC_DBG_G_CHIP_NAME</para> <para>VIDIOC_DBG_G_CHIP_INFO</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
...@@ -69,8 +69,8 @@ so it can be fixed.</para> ...@@ -69,8 +69,8 @@ so it can be fixed.</para>
<para>To query the driver applications must initialize the <para>To query the driver applications must initialize the
<structfield>match.type</structfield> and <structfield>match.type</structfield> and
<structfield>match.addr</structfield> or <structfield>match.name</structfield> <structfield>match.addr</structfield> or <structfield>match.name</structfield>
fields of a &v4l2-dbg-chip-name; fields of a &v4l2-dbg-chip-info;
and call <constant>VIDIOC_DBG_G_CHIP_NAME</constant> with a pointer to and call <constant>VIDIOC_DBG_G_CHIP_INFO</constant> with a pointer to
this structure. On success the driver stores information about the this structure. On success the driver stores information about the
selected chip in the <structfield>name</structfield> and selected chip in the <structfield>name</structfield> and
<structfield>flags</structfield> fields. On failure the structure <structfield>flags</structfield> fields. On failure the structure
...@@ -81,7 +81,7 @@ remains unchanged.</para> ...@@ -81,7 +81,7 @@ remains unchanged.</para>
<structfield>match.addr</structfield> selects the nth bridge 'chip' <structfield>match.addr</structfield> selects the nth bridge 'chip'
on the TV card. You can enumerate all chips by starting at zero and on the TV card. You can enumerate all chips by starting at zero and
incrementing <structfield>match.addr</structfield> by one until incrementing <structfield>match.addr</structfield> by one until
<constant>VIDIOC_DBG_G_CHIP_NAME</constant> fails with an &EINVAL;. <constant>VIDIOC_DBG_G_CHIP_INFO</constant> fails with an &EINVAL;.
The number zero always selects the bridge chip itself, &eg; the chip The number zero always selects the bridge chip itself, &eg; the chip
connected to the PCI or USB bus. Non-zero numbers identify specific connected to the PCI or USB bus. Non-zero numbers identify specific
parts of the bridge chip such as an AC97 register block.</para> parts of the bridge chip such as an AC97 register block.</para>
...@@ -138,8 +138,8 @@ to the <structfield>type</structfield> field.</entry> ...@@ -138,8 +138,8 @@ to the <structfield>type</structfield> field.</entry>
</tgroup> </tgroup>
</table> </table>
<table pgwide="1" frame="none" id="v4l2-dbg-chip-name"> <table pgwide="1" frame="none" id="v4l2-dbg-chip-info">
<title>struct <structname>v4l2_dbg_chip_name</structname></title> <title>struct <structname>v4l2_dbg_chip_info</structname></title>
<tgroup cols="3"> <tgroup cols="3">
&cs-str; &cs-str;
<tbody valign="top"> <tbody valign="top">
......
...@@ -99,7 +99,7 @@ unchanged.</para> ...@@ -99,7 +99,7 @@ unchanged.</para>
<structfield>match.addr</structfield> selects the nth non-sub-device chip <structfield>match.addr</structfield> selects the nth non-sub-device chip
on the TV card. The number zero always selects the host chip, &eg; the on the TV card. The number zero always selects the host chip, &eg; the
chip connected to the PCI or USB bus. You can find out which chips are chip connected to the PCI or USB bus. You can find out which chips are
present with the &VIDIOC-DBG-G-CHIP-NAME; ioctl.</para> present with the &VIDIOC-DBG-G-CHIP-INFO; ioctl.</para>
<para>When <structfield>match.type</structfield> is <para>When <structfield>match.type</structfield> is
<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>, <constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>,
...@@ -109,7 +109,7 @@ For instance ...@@ -109,7 +109,7 @@ For instance
supported by the saa7127 driver, regardless of its &i2c; bus address. supported by the saa7127 driver, regardless of its &i2c; bus address.
When multiple chips supported by the same driver are present, the When multiple chips supported by the same driver are present, the
effect of these ioctls is undefined. Again with the effect of these ioctls is undefined. Again with the
&VIDIOC-DBG-G-CHIP-NAME; ioctl you can find out which &i2c; chips are &VIDIOC-DBG-G-CHIP-INFO; ioctl you can find out which &i2c; chips are
present.</para> present.</para>
<para>When <structfield>match.type</structfield> is <para>When <structfield>match.type</structfield> is
...@@ -131,14 +131,14 @@ on the TV card.</para> ...@@ -131,14 +131,14 @@ on the TV card.</para>
<para>Due to a flaw in the Linux &i2c; bus driver these ioctls may <para>Due to a flaw in the Linux &i2c; bus driver these ioctls may
return successfully without actually reading or writing a register. To return successfully without actually reading or writing a register. To
catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-NAME; catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-INFO;
call confirming the presence of the selected &i2c; chip.</para> call confirming the presence of the selected &i2c; chip.</para>
</note> </note>
<para>These ioctls are optional, not all drivers may support them. <para>These ioctls are optional, not all drivers may support them.
However when a driver supports these ioctls it must also support However when a driver supports these ioctls it must also support
&VIDIOC-DBG-G-CHIP-NAME;. Conversely it may support &VIDIOC-DBG-G-CHIP-INFO;. Conversely it may support
<constant>VIDIOC_DBG_G_CHIP_NAME</constant> but not these ioctls.</para> <constant>VIDIOC_DBG_G_CHIP_INFO</constant> but not these ioctls.</para>
<para><constant>VIDIOC_DBG_G_REGISTER</constant> and <para><constant>VIDIOC_DBG_G_REGISTER</constant> and
<constant>VIDIOC_DBG_S_REGISTER</constant> were introduced in Linux <constant>VIDIOC_DBG_S_REGISTER</constant> were introduced in Linux
......
...@@ -1332,8 +1332,8 @@ static int vidioc_g_chip_ident(struct file *file, void *priv, ...@@ -1332,8 +1332,8 @@ static int vidioc_g_chip_ident(struct file *file, void *priv,
} }
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
static int vidioc_g_chip_name(struct file *file, void *priv, static int vidioc_g_chip_info(struct file *file, void *priv,
struct v4l2_dbg_chip_name *chip) struct v4l2_dbg_chip_info *chip)
{ {
struct em28xx_fh *fh = priv; struct em28xx_fh *fh = priv;
struct em28xx *dev = fh->dev; struct em28xx *dev = fh->dev;
...@@ -1797,7 +1797,7 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = { ...@@ -1797,7 +1797,7 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = {
.vidioc_unsubscribe_event = v4l2_event_unsubscribe, .vidioc_unsubscribe_event = v4l2_event_unsubscribe,
.vidioc_g_chip_ident = vidioc_g_chip_ident, .vidioc_g_chip_ident = vidioc_g_chip_ident,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.vidioc_g_chip_name = vidioc_g_chip_name, .vidioc_g_chip_info = vidioc_g_chip_info,
.vidioc_g_register = vidioc_g_register, .vidioc_g_register = vidioc_g_register,
.vidioc_s_register = vidioc_s_register, .vidioc_s_register = vidioc_s_register,
#endif #endif
...@@ -1827,7 +1827,7 @@ static const struct v4l2_ioctl_ops radio_ioctl_ops = { ...@@ -1827,7 +1827,7 @@ static const struct v4l2_ioctl_ops radio_ioctl_ops = {
.vidioc_subscribe_event = v4l2_ctrl_subscribe_event, .vidioc_subscribe_event = v4l2_ctrl_subscribe_event,
.vidioc_unsubscribe_event = v4l2_event_unsubscribe, .vidioc_unsubscribe_event = v4l2_event_unsubscribe,
.vidioc_g_chip_ident = vidioc_g_chip_ident, .vidioc_g_chip_ident = vidioc_g_chip_ident,
.vidioc_g_chip_name = vidioc_g_chip_name, .vidioc_g_chip_info = vidioc_g_chip_info,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.vidioc_g_register = vidioc_g_register, .vidioc_g_register = vidioc_g_register,
.vidioc_s_register = vidioc_s_register, .vidioc_s_register = vidioc_s_register,
......
...@@ -592,7 +592,7 @@ static void determine_valid_ioctls(struct video_device *vdev) ...@@ -592,7 +592,7 @@ static void determine_valid_ioctls(struct video_device *vdev)
SET_VALID_IOCTL(ops, VIDIOC_S_FREQUENCY, vidioc_s_frequency); SET_VALID_IOCTL(ops, VIDIOC_S_FREQUENCY, vidioc_s_frequency);
SET_VALID_IOCTL(ops, VIDIOC_LOG_STATUS, vidioc_log_status); SET_VALID_IOCTL(ops, VIDIOC_LOG_STATUS, vidioc_log_status);
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
set_bit(_IOC_NR(VIDIOC_DBG_G_CHIP_NAME), valid_ioctls); set_bit(_IOC_NR(VIDIOC_DBG_G_CHIP_INFO), valid_ioctls);
set_bit(_IOC_NR(VIDIOC_DBG_G_REGISTER), valid_ioctls); set_bit(_IOC_NR(VIDIOC_DBG_G_REGISTER), valid_ioctls);
set_bit(_IOC_NR(VIDIOC_DBG_S_REGISTER), valid_ioctls); set_bit(_IOC_NR(VIDIOC_DBG_S_REGISTER), valid_ioctls);
#endif #endif
......
...@@ -638,9 +638,9 @@ static void v4l_print_dbg_chip_ident(const void *arg, bool write_only) ...@@ -638,9 +638,9 @@ static void v4l_print_dbg_chip_ident(const void *arg, bool write_only)
p->ident, p->revision); p->ident, p->revision);
} }
static void v4l_print_dbg_chip_name(const void *arg, bool write_only) static void v4l_print_dbg_chip_info(const void *arg, bool write_only)
{ {
const struct v4l2_dbg_chip_name *p = arg; const struct v4l2_dbg_chip_info *p = arg;
pr_cont("type=%u, ", p->match.type); pr_cont("type=%u, ", p->match.type);
if (p->match.type == V4L2_CHIP_MATCH_I2C_DRIVER) if (p->match.type == V4L2_CHIP_MATCH_I2C_DRIVER)
...@@ -1854,12 +1854,12 @@ static int v4l_dbg_g_chip_ident(const struct v4l2_ioctl_ops *ops, ...@@ -1854,12 +1854,12 @@ static int v4l_dbg_g_chip_ident(const struct v4l2_ioctl_ops *ops,
return ops->vidioc_g_chip_ident(file, fh, p); return ops->vidioc_g_chip_ident(file, fh, p);
} }
static int v4l_dbg_g_chip_name(const struct v4l2_ioctl_ops *ops, static int v4l_dbg_g_chip_info(const struct v4l2_ioctl_ops *ops,
struct file *file, void *fh, void *arg) struct file *file, void *fh, void *arg)
{ {
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
struct video_device *vfd = video_devdata(file); struct video_device *vfd = video_devdata(file);
struct v4l2_dbg_chip_name *p = arg; struct v4l2_dbg_chip_info *p = arg;
struct v4l2_subdev *sd; struct v4l2_subdev *sd;
int idx = 0; int idx = 0;
...@@ -1875,8 +1875,8 @@ static int v4l_dbg_g_chip_name(const struct v4l2_ioctl_ops *ops, ...@@ -1875,8 +1875,8 @@ static int v4l_dbg_g_chip_name(const struct v4l2_ioctl_ops *ops,
strlcpy(p->name, vfd->parent->driver->name, sizeof(p->name)); strlcpy(p->name, vfd->parent->driver->name, sizeof(p->name));
else else
strlcpy(p->name, "bridge", sizeof(p->name)); strlcpy(p->name, "bridge", sizeof(p->name));
if (ops->vidioc_g_chip_name) if (ops->vidioc_g_chip_info)
return ops->vidioc_g_chip_name(file, fh, arg); return ops->vidioc_g_chip_info(file, fh, arg);
if (p->match.addr) if (p->match.addr)
return -EINVAL; return -EINVAL;
return 0; return 0;
...@@ -2116,7 +2116,7 @@ static struct v4l2_ioctl_info v4l2_ioctls[] = { ...@@ -2116,7 +2116,7 @@ static struct v4l2_ioctl_info v4l2_ioctls[] = {
IOCTL_INFO_STD(VIDIOC_QUERY_DV_TIMINGS, vidioc_query_dv_timings, v4l_print_dv_timings, 0), IOCTL_INFO_STD(VIDIOC_QUERY_DV_TIMINGS, vidioc_query_dv_timings, v4l_print_dv_timings, 0),
IOCTL_INFO_STD(VIDIOC_DV_TIMINGS_CAP, vidioc_dv_timings_cap, v4l_print_dv_timings_cap, INFO_FL_CLEAR(v4l2_dv_timings_cap, type)), IOCTL_INFO_STD(VIDIOC_DV_TIMINGS_CAP, vidioc_dv_timings_cap, v4l_print_dv_timings_cap, INFO_FL_CLEAR(v4l2_dv_timings_cap, type)),
IOCTL_INFO_FNC(VIDIOC_ENUM_FREQ_BANDS, v4l_enum_freq_bands, v4l_print_freq_band, 0), IOCTL_INFO_FNC(VIDIOC_ENUM_FREQ_BANDS, v4l_enum_freq_bands, v4l_print_freq_band, 0),
IOCTL_INFO_FNC(VIDIOC_DBG_G_CHIP_NAME, v4l_dbg_g_chip_name, v4l_print_dbg_chip_name, INFO_FL_CLEAR(v4l2_dbg_chip_name, match)), IOCTL_INFO_FNC(VIDIOC_DBG_G_CHIP_INFO, v4l_dbg_g_chip_info, v4l_print_dbg_chip_info, INFO_FL_CLEAR(v4l2_dbg_chip_info, match)),
}; };
#define V4L2_IOCTLS ARRAY_SIZE(v4l2_ioctls) #define V4L2_IOCTLS ARRAY_SIZE(v4l2_ioctls)
......
...@@ -244,8 +244,8 @@ struct v4l2_ioctl_ops { ...@@ -244,8 +244,8 @@ struct v4l2_ioctl_ops {
int (*vidioc_s_register) (struct file *file, void *fh, int (*vidioc_s_register) (struct file *file, void *fh,
const struct v4l2_dbg_register *reg); const struct v4l2_dbg_register *reg);
int (*vidioc_g_chip_name) (struct file *file, void *fh, int (*vidioc_g_chip_info) (struct file *file, void *fh,
struct v4l2_dbg_chip_name *chip); struct v4l2_dbg_chip_info *chip);
#endif #endif
int (*vidioc_g_chip_ident) (struct file *file, void *fh, int (*vidioc_g_chip_ident) (struct file *file, void *fh,
struct v4l2_dbg_chip_ident *chip); struct v4l2_dbg_chip_ident *chip);
......
...@@ -1839,8 +1839,8 @@ struct v4l2_dbg_chip_ident { ...@@ -1839,8 +1839,8 @@ struct v4l2_dbg_chip_ident {
#define V4L2_CHIP_FL_READABLE (1 << 0) #define V4L2_CHIP_FL_READABLE (1 << 0)
#define V4L2_CHIP_FL_WRITABLE (1 << 1) #define V4L2_CHIP_FL_WRITABLE (1 << 1)
/* VIDIOC_DBG_G_CHIP_NAME */ /* VIDIOC_DBG_G_CHIP_INFO */
struct v4l2_dbg_chip_name { struct v4l2_dbg_chip_info {
struct v4l2_dbg_match match; struct v4l2_dbg_match match;
char name[32]; char name[32];
__u32 flags; __u32 flags;
...@@ -1938,7 +1938,7 @@ struct v4l2_create_buffers { ...@@ -1938,7 +1938,7 @@ struct v4l2_create_buffers {
/* Experimental, meant for debugging, testing and internal use. /* Experimental, meant for debugging, testing and internal use.
Never use this ioctl in applications! Never use this ioctl in applications!
Note: this ioctl is deprecated in favor of VIDIOC_DBG_G_CHIP_NAME and Note: this ioctl is deprecated in favor of VIDIOC_DBG_G_CHIP_INFO and
will go away in the future. */ will go away in the future. */
#define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident) #define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident)
...@@ -1976,7 +1976,7 @@ struct v4l2_create_buffers { ...@@ -1976,7 +1976,7 @@ struct v4l2_create_buffers {
/* Experimental, meant for debugging, testing and internal use. /* Experimental, meant for debugging, testing and internal use.
Never use these in applications! */ Never use these in applications! */
#define VIDIOC_DBG_G_CHIP_NAME _IOWR('V', 102, struct v4l2_dbg_chip_name) #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
/* Reminder: when adding new ioctls please add support for them to /* Reminder: when adding new ioctls please add support for them to
drivers/media/video/v4l2-compat-ioctl32.c as well! */ drivers/media/video/v4l2-compat-ioctl32.c as well! */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment