summaryrefslogtreecommitdiff
path: root/drivers/media/video/v4l2-int-device.c
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@nokia.com>2007-07-20 13:12:51 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-09 22:02:57 -0300
commit63116febb9233743279a05be510ab8524f5f6242 (patch)
tree2a172ad8a12e27ce8473295b2bd730a215f06665 /drivers/media/video/v4l2-int-device.c
parentbaa05e4b454fa7d87f9a41a4bbc1f749c113ff3a (diff)
V4L/DVB (5883): V4L: Fix a compile warning on non-32-bit machines.
Fix a compile warning on non-32-bit machines in v4l2-int-device.h. Add internal ioctl interface fallback function for ioctls with one argument. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/v4l2-int-device.c')
-rw-r--r--drivers/media/video/v4l2-int-device.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/drivers/media/video/v4l2-int-device.c b/drivers/media/video/v4l2-int-device.c
index 7885d9b38c92..aa2a8156338d 100644
--- a/drivers/media/video/v4l2-int-device.c
+++ b/drivers/media/video/v4l2-int-device.c
@@ -115,13 +115,9 @@ void v4l2_int_device_unregister(struct v4l2_int_device *d)
mutex_unlock(&mutex);
}
-static int no_such_ioctl(struct v4l2_int_device *d)
-{
- return -EINVAL;
-}
-
/* Adapted from search_extable in extable.c. */
-static v4l2_int_ioctl_func *find_ioctl(struct v4l2_int_slave *slave, int cmd)
+static v4l2_int_ioctl_func *find_ioctl(struct v4l2_int_slave *slave, int cmd,
+ v4l2_int_ioctl_func *no_such_ioctl)
{
const struct v4l2_int_ioctl_desc *first = slave->ioctls;
const struct v4l2_int_ioctl_desc *last =
@@ -140,15 +136,29 @@ static v4l2_int_ioctl_func *find_ioctl(struct v4l2_int_slave *slave, int cmd)
return mid->func;
}
- return &no_such_ioctl;
+ return no_such_ioctl;
+}
+
+static int no_such_ioctl_0(struct v4l2_int_device *d)
+{
+ return -EINVAL;
}
int v4l2_int_ioctl_0(struct v4l2_int_device *d, int cmd)
{
- return ((v4l2_int_ioctl_func_0 *)find_ioctl(d->u.slave, cmd))(d);
+ return ((v4l2_int_ioctl_func_0 *)
+ find_ioctl(d->u.slave, cmd,
+ (v4l2_int_ioctl_func *)&no_such_ioctl_0))(d);
+}
+
+static int no_such_ioctl_1(struct v4l2_int_device *d, void *arg)
+{
+ return -EINVAL;
}
int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg)
{
- return ((v4l2_int_ioctl_func_1 *)find_ioctl(d->u.slave, cmd))(d, arg);
+ return ((v4l2_int_ioctl_func_1 *)
+ find_ioctl(d->u.slave, cmd,
+ (v4l2_int_ioctl_func *)&no_such_ioctl_1))(d, arg);
}