diff options
| author | Sakari Ailus <sakari.ailus@nokia.com> | 2007-07-20 12:12:51 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-09 21:02:57 -0400 |
| commit | 63116febb9233743279a05be510ab8524f5f6242 (patch) | |
| tree | 2a172ad8a12e27ce8473295b2bd730a215f06665 | |
| parent | baa05e4b454fa7d87f9a41a4bbc1f749c113ff3a (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>
| -rw-r--r-- | drivers/media/video/v4l2-int-device.c | 28 | ||||
| -rw-r--r-- | include/media/v4l2-int-device.h | 2 |
2 files changed, 20 insertions, 10 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) | |||
| 115 | mutex_unlock(&mutex); | 115 | mutex_unlock(&mutex); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | static int no_such_ioctl(struct v4l2_int_device *d) | ||
| 119 | { | ||
| 120 | return -EINVAL; | ||
| 121 | } | ||
| 122 | |||
| 123 | /* Adapted from search_extable in extable.c. */ | 118 | /* Adapted from search_extable in extable.c. */ |
| 124 | static v4l2_int_ioctl_func *find_ioctl(struct v4l2_int_slave *slave, int cmd) | 119 | static v4l2_int_ioctl_func *find_ioctl(struct v4l2_int_slave *slave, int cmd, |
| 120 | v4l2_int_ioctl_func *no_such_ioctl) | ||
| 125 | { | 121 | { |
| 126 | const struct v4l2_int_ioctl_desc *first = slave->ioctls; | 122 | const struct v4l2_int_ioctl_desc *first = slave->ioctls; |
| 127 | const struct v4l2_int_ioctl_desc *last = | 123 | 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) | |||
| 140 | return mid->func; | 136 | return mid->func; |
| 141 | } | 137 | } |
| 142 | 138 | ||
| 143 | return &no_such_ioctl; | 139 | return no_such_ioctl; |
| 140 | } | ||
| 141 | |||
| 142 | static int no_such_ioctl_0(struct v4l2_int_device *d) | ||
| 143 | { | ||
| 144 | return -EINVAL; | ||
| 144 | } | 145 | } |
| 145 | 146 | ||
| 146 | int v4l2_int_ioctl_0(struct v4l2_int_device *d, int cmd) | 147 | int v4l2_int_ioctl_0(struct v4l2_int_device *d, int cmd) |
| 147 | { | 148 | { |
| 148 | return ((v4l2_int_ioctl_func_0 *)find_ioctl(d->u.slave, cmd))(d); | 149 | return ((v4l2_int_ioctl_func_0 *) |
| 150 | find_ioctl(d->u.slave, cmd, | ||
| 151 | (v4l2_int_ioctl_func *)&no_such_ioctl_0))(d); | ||
| 152 | } | ||
| 153 | |||
| 154 | static int no_such_ioctl_1(struct v4l2_int_device *d, void *arg) | ||
| 155 | { | ||
| 156 | return -EINVAL; | ||
| 149 | } | 157 | } |
| 150 | 158 | ||
| 151 | int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg) | 159 | int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg) |
| 152 | { | 160 | { |
| 153 | return ((v4l2_int_ioctl_func_1 *)find_ioctl(d->u.slave, cmd))(d, arg); | 161 | return ((v4l2_int_ioctl_func_1 *) |
| 162 | find_ioctl(d->u.slave, cmd, | ||
| 163 | (v4l2_int_ioctl_func *)&no_such_ioctl_1))(d, arg); | ||
| 154 | } | 164 | } |
diff --git a/include/media/v4l2-int-device.h b/include/media/v4l2-int-device.h index 2b6fc1122f6c..deb28ce6685d 100644 --- a/include/media/v4l2-int-device.h +++ b/include/media/v4l2-int-device.h | |||
| @@ -170,7 +170,7 @@ int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg); | |||
| 170 | arg_type asterisk arg) \ | 170 | arg_type asterisk arg) \ |
| 171 | { \ | 171 | { \ |
| 172 | return v4l2_int_ioctl_1(d, vidioc_int_##name##_num, \ | 172 | return v4l2_int_ioctl_1(d, vidioc_int_##name##_num, \ |
| 173 | (void *)arg); \ | 173 | (void *)(unsigned long)arg); \ |
| 174 | } \ | 174 | } \ |
| 175 | \ | 175 | \ |
| 176 | static inline struct v4l2_int_ioctl_desc \ | 176 | static inline struct v4l2_int_ioctl_desc \ |
