aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-06-22 10:57:31 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:11:51 -0400
commit37f89f9542c3945bddf46efc15a1b1e349af3f88 (patch)
tree5020c56d1b73c13e8e1a7425f55c703745cf12ca /drivers/media/video/cx18
parent21575c13125f2ef790e192e2c70e446c6cfe0d7d (diff)
V4L/DVB (8104): cx18/ivtv: ioctl debugging improvements
Completely rely on the video_ioctl2 debugging facilities rather than doing it ourselves. Fill in some missing fields in ivtv with VIDIOC_G_FBUF. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx18')
-rw-r--r--drivers/media/video/cx18/cx18-controls.c16
-rw-r--r--drivers/media/video/cx18/cx18-ioctl.c87
-rw-r--r--drivers/media/video/cx18/cx18-streams.c4
3 files changed, 12 insertions, 95 deletions
diff --git a/drivers/media/video/cx18/cx18-controls.c b/drivers/media/video/cx18/cx18-controls.c
index 6eae75f4ee7c..01ba9ca37d09 100644
--- a/drivers/media/video/cx18/cx18-controls.c
+++ b/drivers/media/video/cx18/cx18-controls.c
@@ -56,8 +56,6 @@ int cx18_queryctrl(struct file *file, void *fh, struct v4l2_queryctrl *qctrl)
56 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 56 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
57 const char *name; 57 const char *name;
58 58
59 CX18_DEBUG_IOCTL("VIDIOC_QUERYCTRL(%08x)\n", qctrl->id);
60
61 qctrl->id = v4l2_ctrl_next(ctrl_classes, qctrl->id); 59 qctrl->id = v4l2_ctrl_next(ctrl_classes, qctrl->id);
62 if (qctrl->id == 0) 60 if (qctrl->id == 0)
63 return -EINVAL; 61 return -EINVAL;
@@ -94,10 +92,8 @@ int cx18_queryctrl(struct file *file, void *fh, struct v4l2_queryctrl *qctrl)
94 92
95int cx18_querymenu(struct file *file, void *fh, struct v4l2_querymenu *qmenu) 93int cx18_querymenu(struct file *file, void *fh, struct v4l2_querymenu *qmenu)
96{ 94{
97 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
98 struct v4l2_queryctrl qctrl; 95 struct v4l2_queryctrl qctrl;
99 96
100 CX18_DEBUG_IOCTL("VIDIOC_QUERYMENU\n");
101 qctrl.id = qmenu->id; 97 qctrl.id = qmenu->id;
102 cx18_queryctrl(file, fh, &qctrl); 98 cx18_queryctrl(file, fh, &qctrl);
103 return v4l2_ctrl_query_menu(qmenu, &qctrl, cx2341x_ctrl_get_menu(qmenu->id)); 99 return v4l2_ctrl_query_menu(qmenu, &qctrl, cx2341x_ctrl_get_menu(qmenu->id));
@@ -108,14 +104,11 @@ int cx18_s_ctrl(struct file *file, void *fh, struct v4l2_control *vctrl)
108 struct cx18_open_id *id = fh; 104 struct cx18_open_id *id = fh;
109 struct cx18 *cx = id->cx; 105 struct cx18 *cx = id->cx;
110 int ret; 106 int ret;
111 s32 v = vctrl->value;
112 107
113 ret = v4l2_prio_check(&cx->prio, &id->prio); 108 ret = v4l2_prio_check(&cx->prio, &id->prio);
114 if (ret) 109 if (ret)
115 return ret; 110 return ret;
116 111
117 CX18_DEBUG_IOCTL("VIDIOC_S_CTRL(%08x, %x)\n", vctrl->id, v);
118
119 switch (vctrl->id) { 112 switch (vctrl->id) {
120 /* Standard V4L2 controls */ 113 /* Standard V4L2 controls */
121 case V4L2_CID_BRIGHTNESS: 114 case V4L2_CID_BRIGHTNESS:
@@ -133,7 +126,7 @@ int cx18_s_ctrl(struct file *file, void *fh, struct v4l2_control *vctrl)
133 return cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_S_CTRL, vctrl); 126 return cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_S_CTRL, vctrl);
134 127
135 default: 128 default:
136 CX18_DEBUG_IOCTL("invalid control %x\n", vctrl->id); 129 CX18_DEBUG_IOCTL("invalid control 0x%x\n", vctrl->id);
137 return -EINVAL; 130 return -EINVAL;
138 } 131 }
139 return 0; 132 return 0;
@@ -143,8 +136,6 @@ int cx18_g_ctrl(struct file *file, void *fh, struct v4l2_control *vctrl)
143{ 136{
144 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 137 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
145 138
146 CX18_DEBUG_IOCTL("VIDIOC_G_CTRL(%08x)\n", vctrl->id);
147
148 switch (vctrl->id) { 139 switch (vctrl->id) {
149 /* Standard V4L2 controls */ 140 /* Standard V4L2 controls */
150 case V4L2_CID_BRIGHTNESS: 141 case V4L2_CID_BRIGHTNESS:
@@ -161,7 +152,7 @@ int cx18_g_ctrl(struct file *file, void *fh, struct v4l2_control *vctrl)
161 case V4L2_CID_AUDIO_LOUDNESS: 152 case V4L2_CID_AUDIO_LOUDNESS:
162 return cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_G_CTRL, vctrl); 153 return cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_G_CTRL, vctrl);
163 default: 154 default:
164 CX18_DEBUG_IOCTL("invalid control %x\n", vctrl->id); 155 CX18_DEBUG_IOCTL("invalid control 0x%x\n", vctrl->id);
165 return -EINVAL; 156 return -EINVAL;
166 } 157 }
167 return 0; 158 return 0;
@@ -227,7 +218,6 @@ int cx18_g_ext_ctrls(struct file *file, void *fh, struct v4l2_ext_controls *c)
227 } 218 }
228 return err; 219 return err;
229 } 220 }
230 CX18_DEBUG_IOCTL("VIDIOC_G_EXT_CTRLS\n");
231 if (c->ctrl_class == V4L2_CTRL_CLASS_MPEG) 221 if (c->ctrl_class == V4L2_CTRL_CLASS_MPEG)
232 return cx2341x_ext_ctrls(&cx->params, 0, c, VIDIOC_G_EXT_CTRLS); 222 return cx2341x_ext_ctrls(&cx->params, 0, c, VIDIOC_G_EXT_CTRLS);
233 return -EINVAL; 223 return -EINVAL;
@@ -260,7 +250,6 @@ int cx18_s_ext_ctrls(struct file *file, void *fh, struct v4l2_ext_controls *c)
260 } 250 }
261 return err; 251 return err;
262 } 252 }
263 CX18_DEBUG_IOCTL("VIDIOC_S_EXT_CTRLS\n");
264 if (c->ctrl_class == V4L2_CTRL_CLASS_MPEG) { 253 if (c->ctrl_class == V4L2_CTRL_CLASS_MPEG) {
265 struct cx2341x_mpeg_params p = cx->params; 254 struct cx2341x_mpeg_params p = cx->params;
266 int err = cx2341x_ext_ctrls(&p, atomic_read(&cx->ana_capturing), 255 int err = cx2341x_ext_ctrls(&p, atomic_read(&cx->ana_capturing),
@@ -296,7 +285,6 @@ int cx18_try_ext_ctrls(struct file *file, void *fh, struct v4l2_ext_controls *c)
296{ 285{
297 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 286 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
298 287
299 CX18_DEBUG_IOCTL("VIDIOC_TRY_EXT_CTRLS\n");
300 if (c->ctrl_class == V4L2_CTRL_CLASS_MPEG) 288 if (c->ctrl_class == V4L2_CTRL_CLASS_MPEG)
301 return cx2341x_ext_ctrls(&cx->params, 289 return cx2341x_ext_ctrls(&cx->params,
302 atomic_read(&cx->ana_capturing), 290 atomic_read(&cx->ana_capturing),
diff --git a/drivers/media/video/cx18/cx18-ioctl.c b/drivers/media/video/cx18/cx18-ioctl.c
index cfda54d022e0..7231f60a180b 100644
--- a/drivers/media/video/cx18/cx18-ioctl.c
+++ b/drivers/media/video/cx18/cx18-ioctl.c
@@ -165,8 +165,6 @@ static int cx18_g_fmt_vbi_cap(struct file *file, void *fh,
165 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 165 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
166 struct v4l2_vbi_format *vbifmt = &fmt->fmt.vbi; 166 struct v4l2_vbi_format *vbifmt = &fmt->fmt.vbi;
167 167
168 CX18_DEBUG_IOCTL("VIDIOC_G_FMT: V4L2_BUF_TYPE_VBI_CAPTURE\n");
169
170 vbifmt->sampling_rate = 27000000; 168 vbifmt->sampling_rate = 27000000;
171 vbifmt->offset = 248; 169 vbifmt->offset = 248;
172 vbifmt->samples_per_line = cx->vbi.raw_decoder_line_size - 4; 170 vbifmt->samples_per_line = cx->vbi.raw_decoder_line_size - 4;
@@ -195,8 +193,6 @@ static int cx18_try_fmt_vid_cap(struct file *file, void *fh,
195 int w = fmt->fmt.pix.width; 193 int w = fmt->fmt.pix.width;
196 int h = fmt->fmt.pix.height; 194 int h = fmt->fmt.pix.height;
197 195
198 CX18_DEBUG_IOCTL("VIDIOC_TRY_FMT: V4L2_BUF_TYPE_VIDEO_CAPTURE\n");
199
200 w = min(w, 720); 196 w = min(w, 720);
201 w = max(w, 1); 197 w = max(w, 1);
202 h = min(h, cx->is_50hz ? 576 : 480); 198 h = min(h, cx->is_50hz ? 576 : 480);
@@ -210,10 +206,6 @@ static int cx18_try_fmt_vid_cap(struct file *file, void *fh,
210static int cx18_try_fmt_vbi_cap(struct file *file, void *fh, 206static int cx18_try_fmt_vbi_cap(struct file *file, void *fh,
211 struct v4l2_format *fmt) 207 struct v4l2_format *fmt)
212{ 208{
213 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
214
215 CX18_DEBUG_IOCTL("VIDIOC_TRY_FMT: V4L2_BUF_TYPE_VBI_CAPTURE\n");
216
217 return cx18_g_fmt_vbi_cap(file, fh, fmt); 209 return cx18_g_fmt_vbi_cap(file, fh, fmt);
218} 210}
219 211
@@ -236,8 +228,6 @@ static int cx18_s_fmt_vid_cap(struct file *file, void *fh,
236 if (ret) 228 if (ret)
237 return ret; 229 return ret;
238 230
239 CX18_DEBUG_IOCTL("VIDIOC_S_FMT: V4L2_BUF_TYPE_VIDEO_CAPTURE\n");
240
241 ret = cx18_try_fmt_vid_cap(file, fh, fmt); 231 ret = cx18_try_fmt_vid_cap(file, fh, fmt);
242 if (ret) 232 if (ret)
243 return ret; 233 return ret;
@@ -265,8 +255,6 @@ static int cx18_s_fmt_vbi_cap(struct file *file, void *fh,
265 if (ret) 255 if (ret)
266 return ret; 256 return ret;
267 257
268 CX18_DEBUG_IOCTL("VIDIOC_S_FMT: V4L2_BUF_TYPE_VBI_CAPTURE\n");
269
270 if (id->type == CX18_ENC_STREAM_TYPE_VBI && 258 if (id->type == CX18_ENC_STREAM_TYPE_VBI &&
271 cx->vbi.sliced_in->service_set && 259 cx->vbi.sliced_in->service_set &&
272 atomic_read(&cx->ana_capturing) > 0) 260 atomic_read(&cx->ana_capturing) > 0)
@@ -288,8 +276,6 @@ static int cx18_g_chip_ident(struct file *file, void *fh,
288{ 276{
289 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 277 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
290 278
291 CX18_DEBUG_IOCTL("VIDIOC_G_CHIP_IDENT\n");
292
293 chip->ident = V4L2_IDENT_NONE; 279 chip->ident = V4L2_IDENT_NONE;
294 chip->revision = 0; 280 chip->revision = 0;
295 if (chip->match_type == V4L2_CHIP_MATCH_HOST) { 281 if (chip->match_type == V4L2_CHIP_MATCH_HOST) {
@@ -311,8 +297,6 @@ static int cx18_g_register(struct file *file, void *fh,
311{ 297{
312 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 298 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
313 299
314 CX18_DEBUG_IOCTL("VIDIOC_DBG_G_REGISTER\n");
315
316 if (v4l2_chip_match_host(reg->match_type, reg->match_chip)) 300 if (v4l2_chip_match_host(reg->match_type, reg->match_chip))
317 return cx18_cxc(cx, VIDIOC_DBG_G_REGISTER, reg); 301 return cx18_cxc(cx, VIDIOC_DBG_G_REGISTER, reg);
318 if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER) 302 if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER)
@@ -327,8 +311,6 @@ static int cx18_s_register(struct file *file, void *fh,
327{ 311{
328 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 312 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
329 313
330 CX18_DEBUG_IOCTL("VIDIOC_DBG_S_REGISTER\n");
331
332 if (v4l2_chip_match_host(reg->match_type, reg->match_chip)) 314 if (v4l2_chip_match_host(reg->match_type, reg->match_chip))
333 return cx18_cxc(cx, VIDIOC_DBG_S_REGISTER, reg); 315 return cx18_cxc(cx, VIDIOC_DBG_S_REGISTER, reg);
334 if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER) 316 if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER)
@@ -342,8 +324,6 @@ static int cx18_g_priority(struct file *file, void *fh, enum v4l2_priority *p)
342{ 324{
343 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 325 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
344 326
345 CX18_DEBUG_IOCTL("VIDIOC_G_PRIORITY\n");
346
347 *p = v4l2_prio_max(&cx->prio); 327 *p = v4l2_prio_max(&cx->prio);
348 return 0; 328 return 0;
349} 329}
@@ -353,8 +333,6 @@ static int cx18_s_priority(struct file *file, void *fh, enum v4l2_priority prio)
353 struct cx18_open_id *id = fh; 333 struct cx18_open_id *id = fh;
354 struct cx18 *cx = id->cx; 334 struct cx18 *cx = id->cx;
355 335
356 CX18_DEBUG_IOCTL("VIDIOC_S_PRIORITY\n");
357
358 return v4l2_prio_change(&cx->prio, &id->prio, prio); 336 return v4l2_prio_change(&cx->prio, &id->prio, prio);
359} 337}
360 338
@@ -363,8 +341,6 @@ static int cx18_querycap(struct file *file, void *fh,
363{ 341{
364 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 342 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
365 343
366 CX18_DEBUG_IOCTL("VIDIOC_QUERYCAP\n");
367
368 strlcpy(vcap->driver, CX18_DRIVER_NAME, sizeof(vcap->driver)); 344 strlcpy(vcap->driver, CX18_DRIVER_NAME, sizeof(vcap->driver));
369 strlcpy(vcap->card, cx->card_name, sizeof(vcap->card)); 345 strlcpy(vcap->card, cx->card_name, sizeof(vcap->card));
370 strlcpy(vcap->bus_info, pci_name(cx->dev), sizeof(vcap->bus_info)); 346 strlcpy(vcap->bus_info, pci_name(cx->dev), sizeof(vcap->bus_info));
@@ -377,8 +353,6 @@ static int cx18_enumaudio(struct file *file, void *fh, struct v4l2_audio *vin)
377{ 353{
378 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 354 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
379 355
380 CX18_DEBUG_IOCTL("VIDIOC_ENUMAUDIO\n");
381
382 return cx18_get_audio_input(cx, vin->index, vin); 356 return cx18_get_audio_input(cx, vin->index, vin);
383} 357}
384 358
@@ -386,8 +360,6 @@ static int cx18_g_audio(struct file *file, void *fh, struct v4l2_audio *vin)
386{ 360{
387 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 361 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
388 362
389 CX18_DEBUG_IOCTL("VIDIOC_G_AUDIO\n");
390
391 vin->index = cx->audio_input; 363 vin->index = cx->audio_input;
392 return cx18_get_audio_input(cx, vin->index, vin); 364 return cx18_get_audio_input(cx, vin->index, vin);
393} 365}
@@ -396,8 +368,6 @@ static int cx18_s_audio(struct file *file, void *fh, struct v4l2_audio *vout)
396{ 368{
397 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 369 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
398 370
399 CX18_DEBUG_IOCTL("VIDIOC_S_AUDIO\n");
400
401 if (vout->index >= cx->nof_audio_inputs) 371 if (vout->index >= cx->nof_audio_inputs)
402 return -EINVAL; 372 return -EINVAL;
403 cx->audio_input = vout->index; 373 cx->audio_input = vout->index;
@@ -409,8 +379,6 @@ static int cx18_enum_input(struct file *file, void *fh, struct v4l2_input *vin)
409{ 379{
410 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 380 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
411 381
412 CX18_DEBUG_IOCTL("VIDIOC_ENUMINPUT\n");
413
414 /* set it to defaults from our table */ 382 /* set it to defaults from our table */
415 return cx18_get_input(cx, vin->index, vin); 383 return cx18_get_input(cx, vin->index, vin);
416} 384}
@@ -420,8 +388,6 @@ static int cx18_cropcap(struct file *file, void *fh,
420{ 388{
421 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 389 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
422 390
423 CX18_DEBUG_IOCTL("VIDIOC_CROPCAP\n");
424
425 if (cropcap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) 391 if (cropcap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
426 return -EINVAL; 392 return -EINVAL;
427 cropcap->bounds.top = cropcap->bounds.left = 0; 393 cropcap->bounds.top = cropcap->bounds.left = 0;
@@ -443,8 +409,6 @@ static int cx18_s_crop(struct file *file, void *fh, struct v4l2_crop *crop)
443 if (ret) 409 if (ret)
444 return ret; 410 return ret;
445 411
446 CX18_DEBUG_IOCTL("VIDIOC_S_CROP\n");
447
448 if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) 412 if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
449 return -EINVAL; 413 return -EINVAL;
450 return cx18_av_cmd(cx, VIDIOC_S_CROP, crop); 414 return cx18_av_cmd(cx, VIDIOC_S_CROP, crop);
@@ -454,8 +418,6 @@ static int cx18_g_crop(struct file *file, void *fh, struct v4l2_crop *crop)
454{ 418{
455 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 419 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
456 420
457 CX18_DEBUG_IOCTL("VIDIOC_G_CROP\n");
458
459 if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) 421 if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
460 return -EINVAL; 422 return -EINVAL;
461 return cx18_av_cmd(cx, VIDIOC_G_CROP, crop); 423 return cx18_av_cmd(cx, VIDIOC_G_CROP, crop);
@@ -473,10 +435,6 @@ static int cx18_enum_fmt_vid_cap(struct file *file, void *fh,
473 } 435 }
474 }; 436 };
475 437
476 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
477
478 CX18_DEBUG_IOCTL("VIDIOC_ENUM_FMT: V4L2_BUF_TYPE_VIDEO_CAPTURE\n");
479
480 if (fmt->index > 1) 438 if (fmt->index > 1)
481 return -EINVAL; 439 return -EINVAL;
482 *fmt = formats[fmt->index]; 440 *fmt = formats[fmt->index];
@@ -487,8 +445,6 @@ static int cx18_g_input(struct file *file, void *fh, unsigned int *i)
487{ 445{
488 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 446 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
489 447
490 CX18_DEBUG_IOCTL("VIDIOC_G_INPUT\n");
491
492 *i = cx->active_input; 448 *i = cx->active_input;
493 return 0; 449 return 0;
494} 450}
@@ -503,8 +459,6 @@ int cx18_s_input(struct file *file, void *fh, unsigned int inp)
503 if (ret) 459 if (ret)
504 return ret; 460 return ret;
505 461
506 CX18_DEBUG_IOCTL("VIDIOC_S_INPUT\n");
507
508 if (inp < 0 || inp >= cx->nof_inputs) 462 if (inp < 0 || inp >= cx->nof_inputs)
509 return -EINVAL; 463 return -EINVAL;
510 464
@@ -534,8 +488,6 @@ static int cx18_g_frequency(struct file *file, void *fh,
534{ 488{
535 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 489 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
536 490
537 CX18_DEBUG_IOCTL("VIDIOC_G_FREQUENCY\n");
538
539 if (vf->tuner != 0) 491 if (vf->tuner != 0)
540 return -EINVAL; 492 return -EINVAL;
541 493
@@ -553,8 +505,6 @@ int cx18_s_frequency(struct file *file, void *fh, struct v4l2_frequency *vf)
553 if (ret) 505 if (ret)
554 return ret; 506 return ret;
555 507
556 CX18_DEBUG_IOCTL("VIDIOC_S_FREQUENCY\n");
557
558 if (vf->tuner != 0) 508 if (vf->tuner != 0)
559 return -EINVAL; 509 return -EINVAL;
560 510
@@ -569,8 +519,6 @@ static int cx18_g_std(struct file *file, void *fh, v4l2_std_id *std)
569{ 519{
570 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 520 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
571 521
572 CX18_DEBUG_IOCTL("VIDIOC_G_STD\n");
573
574 *std = cx->std; 522 *std = cx->std;
575 return 0; 523 return 0;
576} 524}
@@ -585,8 +533,6 @@ int cx18_s_std(struct file *file, void *fh, v4l2_std_id *std)
585 if (ret) 533 if (ret)
586 return ret; 534 return ret;
587 535
588 CX18_DEBUG_IOCTL("VIDIOC_S_STD\n");
589
590 if ((*std & V4L2_STD_ALL) == 0) 536 if ((*std & V4L2_STD_ALL) == 0)
591 return -EINVAL; 537 return -EINVAL;
592 538
@@ -628,8 +574,6 @@ static int cx18_s_tuner(struct file *file, void *fh, struct v4l2_tuner *vt)
628 if (ret) 574 if (ret)
629 return ret; 575 return ret;
630 576
631 CX18_DEBUG_IOCTL("VIDIOC_S_TUNER\n");
632
633 if (vt->index != 0) 577 if (vt->index != 0)
634 return -EINVAL; 578 return -EINVAL;
635 579
@@ -643,8 +587,6 @@ static int cx18_g_tuner(struct file *file, void *fh, struct v4l2_tuner *vt)
643{ 587{
644 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 588 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
645 589
646 CX18_DEBUG_IOCTL("VIDIOC_G_TUNER\n");
647
648 if (vt->index != 0) 590 if (vt->index != 0)
649 return -EINVAL; 591 return -EINVAL;
650 592
@@ -679,8 +621,6 @@ static int cx18_encoder_cmd(struct file *file, void *fh,
679 struct cx18_open_id *id = fh; 621 struct cx18_open_id *id = fh;
680 struct cx18 *cx = id->cx; 622 struct cx18 *cx = id->cx;
681 623
682 CX18_DEBUG_IOCTL("VIDIOC_ENCODER_CMD:\n");
683
684 switch (enc->cmd) { 624 switch (enc->cmd) {
685 case V4L2_ENC_CMD_START: 625 case V4L2_ENC_CMD_START:
686 CX18_DEBUG_IOCTL("V4L2_ENC_CMD_START\n"); 626 CX18_DEBUG_IOCTL("V4L2_ENC_CMD_START\n");
@@ -728,8 +668,6 @@ static int cx18_try_encoder_cmd(struct file *file, void *fh,
728{ 668{
729 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; 669 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx;
730 670
731 CX18_DEBUG_IOCTL("VIDIOC_TRY_ENCDOER_CMD:\n");
732
733 switch (enc->cmd) { 671 switch (enc->cmd) {
734 case V4L2_ENC_CMD_START: 672 case V4L2_ENC_CMD_START:
735 CX18_DEBUG_IOCTL("V4L2_ENC_CMD_START\n"); 673 CX18_DEBUG_IOCTL("V4L2_ENC_CMD_START\n");
@@ -765,7 +703,6 @@ static int cx18_log_status(struct file *file, void *fh)
765 struct v4l2_audio audin; 703 struct v4l2_audio audin;
766 int i; 704 int i;
767 705
768 CX18_DEBUG_IOCTL("VIDIOC_LOG_STATUS\n");
769 CX18_INFO("================= START STATUS CARD #%d =================\n", cx->num); 706 CX18_INFO("================= START STATUS CARD #%d =================\n", cx->num);
770 if (cx->hw_flags & CX18_HW_TVEEPROM) { 707 if (cx->hw_flags & CX18_HW_TVEEPROM) {
771 struct tveeprom tv; 708 struct tveeprom tv;
@@ -807,26 +744,13 @@ static int cx18_default(struct file *file, void *fh, int cmd, void *arg)
807 switch (cmd) { 744 switch (cmd) {
808 case VIDIOC_INT_S_AUDIO_ROUTING: { 745 case VIDIOC_INT_S_AUDIO_ROUTING: {
809 struct v4l2_routing *route = arg; 746 struct v4l2_routing *route = arg;
810 CX18_DEBUG_IOCTL("VIDIOC_INT_S_AUDIO_ROUTING (%d, %d)\n", 747
811 route->input, route->output); 748 CX18_DEBUG_IOCTL("VIDIOC_INT_S_AUDIO_ROUTING(%d, %d)\n",
749 route->input, route->output);
812 cx18_audio_set_route(cx, route); 750 cx18_audio_set_route(cx, route);
813 break; 751 break;
814 } 752 }
815 case VIDIOC_INT_RESET: {
816 u32 val = *(u32 *)arg;
817 CX18_DEBUG_IOCTL("VIDIOC_INT_RESET (%#10x)\n", val);
818 /* No op right now */
819 /* cx18_av_cmd(cx, cmd, arg) */
820 /* cx18_call_i2c_clients(cx, cmd, arg) */
821 break;
822 }
823 default: 753 default:
824 if (cx18_debug & CX18_DBGFLG_IOCTL) {
825 printk(KERN_INFO "cx18%d ioctl: unsupported cmd: ",
826 cx->num);
827 v4l_printk_ioctl(cmd);
828 printk("\n");
829 }
830 return -EINVAL; 754 return -EINVAL;
831 } 755 }
832 return 0; 756 return 0;
@@ -835,12 +759,17 @@ static int cx18_default(struct file *file, void *fh, int cmd, void *arg)
835int cx18_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, 759int cx18_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
836 unsigned long arg) 760 unsigned long arg)
837{ 761{
762 struct video_device *vfd = video_devdata(filp);
838 struct cx18_open_id *id = (struct cx18_open_id *)filp->private_data; 763 struct cx18_open_id *id = (struct cx18_open_id *)filp->private_data;
839 struct cx18 *cx = id->cx; 764 struct cx18 *cx = id->cx;
840 int res; 765 int res;
841 766
842 mutex_lock(&cx->serialize_lock); 767 mutex_lock(&cx->serialize_lock);
768
769 if (cx18_debug & CX18_DBGFLG_IOCTL)
770 vfd->debug = V4L2_DEBUG_IOCTL | V4L2_DEBUG_IOCTL_ARG;
843 res = video_ioctl2(inode, filp, cmd, arg); 771 res = video_ioctl2(inode, filp, cmd, arg);
772 vfd->debug = 0;
844 mutex_unlock(&cx->serialize_lock); 773 mutex_unlock(&cx->serialize_lock);
845 return res; 774 return res;
846} 775}
diff --git a/drivers/media/video/cx18/cx18-streams.c b/drivers/media/video/cx18/cx18-streams.c
index 805847370cba..f3d20509a8bd 100644
--- a/drivers/media/video/cx18/cx18-streams.c
+++ b/drivers/media/video/cx18/cx18-streams.c
@@ -190,8 +190,8 @@ static int cx18_prep_dev(struct cx18 *cx, int type)
190 s->v4l2dev->type = 190 s->v4l2dev->type =
191 VID_TYPE_CAPTURE | VID_TYPE_TUNER | VID_TYPE_TELETEXT | 191 VID_TYPE_CAPTURE | VID_TYPE_TUNER | VID_TYPE_TELETEXT |
192 VID_TYPE_CLIPPING | VID_TYPE_SCALES | VID_TYPE_MPEG_ENCODER; 192 VID_TYPE_CLIPPING | VID_TYPE_SCALES | VID_TYPE_MPEG_ENCODER;
193 snprintf(s->v4l2dev->name, sizeof(s->v4l2dev->name), "cx18%d %s", 193 snprintf(s->v4l2dev->name, sizeof(s->v4l2dev->name), "cx18-%d",
194 cx->num, s->name); 194 cx->num);
195 195
196 s->v4l2dev->minor = minor; 196 s->v4l2dev->minor = minor;
197 s->v4l2dev->dev = &cx->dev->dev; 197 s->v4l2dev->dev = &cx->dev->dev;