diff options
Diffstat (limited to 'drivers/media/video/v4l2-common.c')
| -rw-r--r-- | drivers/media/video/v4l2-common.c | 591 |
1 files changed, 4 insertions, 587 deletions
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c index b8ee37ded3c9..ddfd80c5618b 100644 --- a/drivers/media/video/v4l2-common.c +++ b/drivers/media/video/v4l2-common.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | * as published by the Free Software Foundation; either version | 12 | * as published by the Free Software Foundation; either version |
| 13 | * 2 of the License, or (at your option) any later version. | 13 | * 2 of the License, or (at your option) any later version. |
| 14 | * | 14 | * |
| 15 | * Author: Bill Dirks <bdirks@pacbell.net> | 15 | * Author: Bill Dirks <bill@thedirks.org> |
| 16 | * based on code by Alan Cox, <alan@cymru.net> | 16 | * based on code by Alan Cox, <alan@cymru.net> |
| 17 | * | 17 | * |
| 18 | */ | 18 | */ |
| @@ -271,11 +271,6 @@ char *v4l2_type_names[] = { | |||
| 271 | [V4L2_BUF_TYPE_SLICED_VBI_OUTPUT] = "slicec-vbi-out", | 271 | [V4L2_BUF_TYPE_SLICED_VBI_OUTPUT] = "slicec-vbi-out", |
| 272 | }; | 272 | }; |
| 273 | 273 | ||
| 274 | static char *v4l2_memory_names[] = { | ||
| 275 | [V4L2_MEMORY_MMAP] = "mmap", | ||
| 276 | [V4L2_MEMORY_USERPTR] = "userptr", | ||
| 277 | [V4L2_MEMORY_OVERLAY] = "overlay", | ||
| 278 | }; | ||
| 279 | 274 | ||
| 280 | #define prt_names(a,arr) (((a)>=0)&&((a)<ARRAY_SIZE(arr)))?arr[a]:"unknown" | 275 | #define prt_names(a,arr) (((a)>=0)&&((a)<ARRAY_SIZE(arr)))?arr[a]:"unknown" |
| 281 | 276 | ||
| @@ -400,9 +395,10 @@ static const char *v4l2_int_ioctls[] = { | |||
| 400 | [_IOC_NR(TUNER_SET_STANDBY)] = "TUNER_SET_STANDBY", | 395 | [_IOC_NR(TUNER_SET_STANDBY)] = "TUNER_SET_STANDBY", |
| 401 | [_IOC_NR(TDA9887_SET_CONFIG)] = "TDA9887_SET_CONFIG", | 396 | [_IOC_NR(TDA9887_SET_CONFIG)] = "TDA9887_SET_CONFIG", |
| 402 | 397 | ||
| 398 | [_IOC_NR(VIDIOC_DBG_S_REGISTER)] = "VIDIOC_DBG_S_REGISTER", | ||
| 399 | [_IOC_NR(VIDIOC_DBG_G_REGISTER)] = "VIDIOC_DBG_G_REGISTER", | ||
| 400 | |||
| 403 | [_IOC_NR(VIDIOC_INT_S_TUNER_MODE)] = "VIDIOC_INT_S_TUNER_MODE", | 401 | [_IOC_NR(VIDIOC_INT_S_TUNER_MODE)] = "VIDIOC_INT_S_TUNER_MODE", |
| 404 | [_IOC_NR(VIDIOC_INT_S_REGISTER)] = "VIDIOC_INT_S_REGISTER", | ||
| 405 | [_IOC_NR(VIDIOC_INT_G_REGISTER)] = "VIDIOC_INT_G_REGISTER", | ||
| 406 | [_IOC_NR(VIDIOC_INT_RESET)] = "VIDIOC_INT_RESET", | 402 | [_IOC_NR(VIDIOC_INT_RESET)] = "VIDIOC_INT_RESET", |
| 407 | [_IOC_NR(VIDIOC_INT_AUDIO_CLOCK_FREQ)] = "VIDIOC_INT_AUDIO_CLOCK_FREQ", | 403 | [_IOC_NR(VIDIOC_INT_AUDIO_CLOCK_FREQ)] = "VIDIOC_INT_AUDIO_CLOCK_FREQ", |
| 408 | [_IOC_NR(VIDIOC_INT_DECODE_VBI_LINE)] = "VIDIOC_INT_DECODE_VBI_LINE", | 404 | [_IOC_NR(VIDIOC_INT_DECODE_VBI_LINE)] = "VIDIOC_INT_DECODE_VBI_LINE", |
| @@ -419,14 +415,6 @@ static const char *v4l2_int_ioctls[] = { | |||
| 419 | }; | 415 | }; |
| 420 | #define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls) | 416 | #define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls) |
| 421 | 417 | ||
| 422 | static void v4l_print_pix_fmt (char *s, struct v4l2_pix_format *fmt) | ||
| 423 | { | ||
| 424 | printk ("%s: width=%d, height=%d, format=%d, field=%s, " | ||
| 425 | "bytesperline=%d sizeimage=%d, colorspace=%d\n", s, | ||
| 426 | fmt->width,fmt->height,fmt->pixelformat, | ||
| 427 | prt_names(fmt->field,v4l2_field_names), | ||
| 428 | fmt->bytesperline,fmt->sizeimage,fmt->colorspace); | ||
| 429 | }; | ||
| 430 | 418 | ||
| 431 | /* Common ioctl debug function. This function can be used by | 419 | /* Common ioctl debug function. This function can be used by |
| 432 | external ioctl messages as well as internal V4L ioctl */ | 420 | external ioctl messages as well as internal V4L ioctl */ |
| @@ -466,576 +454,6 @@ void v4l_printk_ioctl(unsigned int cmd) | |||
| 466 | } | 454 | } |
| 467 | } | 455 | } |
| 468 | 456 | ||
| 469 | /* Common ioctl debug function. This function can be used by | ||
| 470 | external ioctl messages as well as internal V4L ioctl and its | ||
| 471 | arguments */ | ||
| 472 | void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg) | ||
| 473 | { | ||
| 474 | printk(s); | ||
| 475 | printk(": "); | ||
| 476 | v4l_printk_ioctl(cmd); | ||
| 477 | switch (cmd) { | ||
| 478 | case VIDIOC_INT_G_CHIP_IDENT: | ||
| 479 | { | ||
| 480 | enum v4l2_chip_ident *p=arg; | ||
| 481 | printk ("%s: chip ident=%d\n", s, *p); | ||
| 482 | break; | ||
| 483 | } | ||
| 484 | case VIDIOC_G_PRIORITY: | ||
| 485 | case VIDIOC_S_PRIORITY: | ||
| 486 | { | ||
| 487 | enum v4l2_priority *p=arg; | ||
| 488 | printk ("%s: priority=%d\n", s, *p); | ||
| 489 | break; | ||
| 490 | } | ||
| 491 | case VIDIOC_INT_S_TUNER_MODE: | ||
| 492 | { | ||
| 493 | enum v4l2_tuner_type *p=arg; | ||
| 494 | printk ("%s: tuner type=%d\n", s, *p); | ||
| 495 | break; | ||
| 496 | } | ||
| 497 | #ifdef CONFIG_VIDEO_V4L1_COMPAT | ||
| 498 | case DECODER_SET_VBI_BYPASS: | ||
| 499 | case DECODER_ENABLE_OUTPUT: | ||
| 500 | case DECODER_GET_STATUS: | ||
| 501 | case DECODER_SET_OUTPUT: | ||
| 502 | case DECODER_SET_INPUT: | ||
| 503 | case DECODER_SET_GPIO: | ||
| 504 | case DECODER_SET_NORM: | ||
| 505 | case VIDIOCCAPTURE: | ||
| 506 | case VIDIOCSYNC: | ||
| 507 | case VIDIOCSWRITEMODE: | ||
| 508 | #endif | ||
| 509 | case TUNER_SET_TYPE_ADDR: | ||
| 510 | case TUNER_SET_STANDBY: | ||
| 511 | case TDA9887_SET_CONFIG: | ||
| 512 | #ifdef __OLD_VIDIOC_ | ||
| 513 | case VIDIOC_OVERLAY_OLD: | ||
| 514 | #endif | ||
| 515 | case VIDIOC_STREAMOFF: | ||
| 516 | case VIDIOC_G_OUTPUT: | ||
| 517 | case VIDIOC_S_OUTPUT: | ||
| 518 | case VIDIOC_STREAMON: | ||
| 519 | case VIDIOC_G_INPUT: | ||
| 520 | case VIDIOC_OVERLAY: | ||
| 521 | case VIDIOC_S_INPUT: | ||
| 522 | { | ||
| 523 | int *p=arg; | ||
| 524 | printk ("%s: value=%d\n", s, *p); | ||
| 525 | break; | ||
| 526 | } | ||
| 527 | case VIDIOC_G_AUDIO: | ||
| 528 | case VIDIOC_S_AUDIO: | ||
| 529 | case VIDIOC_ENUMAUDIO: | ||
| 530 | #ifdef __OLD_VIDIOC_ | ||
| 531 | case VIDIOC_G_AUDIO_OLD: | ||
| 532 | #endif | ||
| 533 | { | ||
| 534 | struct v4l2_audio *p=arg; | ||
| 535 | |||
| 536 | printk ("%s: index=%d, name=%s, capability=%d, mode=%d\n", | ||
| 537 | s,p->index, p->name,p->capability, p->mode); | ||
| 538 | break; | ||
| 539 | } | ||
| 540 | case VIDIOC_G_AUDOUT: | ||
| 541 | case VIDIOC_S_AUDOUT: | ||
| 542 | case VIDIOC_ENUMAUDOUT: | ||
| 543 | #ifdef __OLD_VIDIOC_ | ||
| 544 | case VIDIOC_G_AUDOUT_OLD: | ||
| 545 | #endif | ||
| 546 | { | ||
| 547 | struct v4l2_audioout *p=arg; | ||
| 548 | printk ("%s: index=%d, name=%s, capability=%d, mode=%d\n", s, | ||
| 549 | p->index, p->name, p->capability,p->mode); | ||
| 550 | break; | ||
| 551 | } | ||
| 552 | case VIDIOC_QBUF: | ||
| 553 | case VIDIOC_DQBUF: | ||
| 554 | case VIDIOC_QUERYBUF: | ||
| 555 | { | ||
| 556 | struct v4l2_buffer *p=arg; | ||
| 557 | struct v4l2_timecode *tc=&p->timecode; | ||
| 558 | printk ("%s: %02ld:%02d:%02d.%08ld index=%d, type=%s, " | ||
| 559 | "bytesused=%d, flags=0x%08x, " | ||
| 560 | "field=%0d, sequence=%d, memory=%s, offset/userptr=0x%08lx\n", | ||
| 561 | s, | ||
| 562 | (p->timestamp.tv_sec/3600), | ||
| 563 | (int)(p->timestamp.tv_sec/60)%60, | ||
| 564 | (int)(p->timestamp.tv_sec%60), | ||
| 565 | p->timestamp.tv_usec, | ||
| 566 | p->index, | ||
| 567 | prt_names(p->type,v4l2_type_names), | ||
| 568 | p->bytesused,p->flags, | ||
| 569 | p->field,p->sequence, | ||
| 570 | prt_names(p->memory,v4l2_memory_names), | ||
| 571 | p->m.userptr); | ||
| 572 | printk ("%s: timecode= %02d:%02d:%02d type=%d, " | ||
| 573 | "flags=0x%08x, frames=%d, userbits=0x%08x\n", | ||
| 574 | s,tc->hours,tc->minutes,tc->seconds, | ||
| 575 | tc->type, tc->flags, tc->frames, *(__u32 *) tc->userbits); | ||
| 576 | break; | ||
| 577 | } | ||
| 578 | case VIDIOC_QUERYCAP: | ||
| 579 | { | ||
| 580 | struct v4l2_capability *p=arg; | ||
| 581 | printk ("%s: driver=%s, card=%s, bus=%s, version=0x%08x, " | ||
| 582 | "capabilities=0x%08x\n", s, | ||
| 583 | p->driver,p->card,p->bus_info, | ||
| 584 | p->version, | ||
| 585 | p->capabilities); | ||
| 586 | break; | ||
| 587 | } | ||
| 588 | case VIDIOC_G_CTRL: | ||
| 589 | case VIDIOC_S_CTRL: | ||
| 590 | #ifdef __OLD_VIDIOC_ | ||
| 591 | case VIDIOC_S_CTRL_OLD: | ||
| 592 | #endif | ||
| 593 | { | ||
| 594 | struct v4l2_control *p=arg; | ||
| 595 | printk ("%s: id=%d, value=%d\n", s, p->id, p->value); | ||
| 596 | break; | ||
| 597 | } | ||
| 598 | case VIDIOC_G_EXT_CTRLS: | ||
| 599 | case VIDIOC_S_EXT_CTRLS: | ||
| 600 | case VIDIOC_TRY_EXT_CTRLS: | ||
| 601 | { | ||
| 602 | struct v4l2_ext_controls *p = arg; | ||
| 603 | int i; | ||
| 604 | |||
| 605 | printk("%s: ctrl_class=%d, count=%d\n", s, p->ctrl_class, p->count); | ||
| 606 | for (i = 0; i < p->count; i++) { | ||
| 607 | struct v4l2_ext_control *c = &p->controls[i]; | ||
| 608 | if (cmd == VIDIOC_G_EXT_CTRLS) | ||
| 609 | printk("%s: id=%d\n", s, c->id); | ||
| 610 | else | ||
| 611 | printk("%s: id=%d, value=%d\n", s, c->id, c->value); | ||
| 612 | } | ||
| 613 | break; | ||
| 614 | } | ||
| 615 | case VIDIOC_G_CROP: | ||
| 616 | case VIDIOC_S_CROP: | ||
| 617 | { | ||
| 618 | struct v4l2_crop *p=arg; | ||
| 619 | /*FIXME: Should also show rect structs */ | ||
| 620 | printk ("%s: type=%d\n", s, p->type); | ||
| 621 | break; | ||
| 622 | } | ||
| 623 | case VIDIOC_CROPCAP: | ||
| 624 | #ifdef __OLD_VIDIOC_ | ||
| 625 | case VIDIOC_CROPCAP_OLD: | ||
| 626 | #endif | ||
| 627 | { | ||
| 628 | struct v4l2_cropcap *p=arg; | ||
| 629 | /*FIXME: Should also show rect structs */ | ||
| 630 | printk ("%s: type=%d\n", s, p->type); | ||
| 631 | break; | ||
| 632 | } | ||
| 633 | case VIDIOC_INT_DECODE_VBI_LINE: | ||
| 634 | { | ||
| 635 | struct v4l2_decode_vbi_line *p=arg; | ||
| 636 | printk ("%s: is_second_field=%d, ptr=0x%08lx, line=%d, " | ||
| 637 | "type=%d\n", s, | ||
| 638 | p->is_second_field,(unsigned long)p->p,p->line,p->type); | ||
| 639 | break; | ||
| 640 | } | ||
| 641 | case VIDIOC_ENUM_FMT: | ||
| 642 | { | ||
| 643 | struct v4l2_fmtdesc *p=arg; | ||
| 644 | printk ("%s: index=%d, type=%d, flags=%d, description=%s," | ||
| 645 | " pixelformat=%d\n", s, | ||
| 646 | p->index, p->type, p->flags,p->description, | ||
| 647 | p->pixelformat); | ||
| 648 | |||
| 649 | break; | ||
| 650 | } | ||
| 651 | case VIDIOC_G_FMT: | ||
| 652 | case VIDIOC_S_FMT: | ||
| 653 | case VIDIOC_TRY_FMT: | ||
| 654 | { | ||
| 655 | struct v4l2_format *p=arg; | ||
| 656 | printk ("%s: type=%s\n", s, | ||
| 657 | prt_names(p->type,v4l2_type_names)); | ||
| 658 | switch (p->type) { | ||
| 659 | case V4L2_BUF_TYPE_VIDEO_CAPTURE: | ||
| 660 | v4l_print_pix_fmt (s, &p->fmt.pix); | ||
| 661 | break; | ||
| 662 | default: | ||
| 663 | break; | ||
| 664 | } | ||
| 665 | } | ||
| 666 | case VIDIOC_G_FBUF: | ||
| 667 | case VIDIOC_S_FBUF: | ||
| 668 | { | ||
| 669 | struct v4l2_framebuffer *p=arg; | ||
| 670 | printk ("%s: capability=%d, flags=%d, base=0x%08lx\n", s, | ||
| 671 | p->capability,p->flags, (unsigned long)p->base); | ||
| 672 | v4l_print_pix_fmt (s, &p->fmt); | ||
| 673 | break; | ||
| 674 | } | ||
| 675 | case VIDIOC_G_FREQUENCY: | ||
| 676 | case VIDIOC_S_FREQUENCY: | ||
| 677 | { | ||
| 678 | struct v4l2_frequency *p=arg; | ||
| 679 | printk ("%s: tuner=%d, type=%d, frequency=%d\n", s, | ||
| 680 | p->tuner,p->type,p->frequency); | ||
| 681 | break; | ||
| 682 | } | ||
| 683 | case VIDIOC_ENUMINPUT: | ||
| 684 | { | ||
| 685 | struct v4l2_input *p=arg; | ||
| 686 | printk ("%s: index=%d, name=%s, type=%d, audioset=%d, " | ||
| 687 | "tuner=%d, std=%Ld, status=%d\n", s, | ||
| 688 | p->index,p->name,p->type,p->audioset, | ||
| 689 | p->tuner, | ||
| 690 | (unsigned long long)p->std, | ||
| 691 | p->status); | ||
| 692 | break; | ||
| 693 | } | ||
| 694 | case VIDIOC_G_JPEGCOMP: | ||
| 695 | case VIDIOC_S_JPEGCOMP: | ||
| 696 | { | ||
| 697 | struct v4l2_jpegcompression *p=arg; | ||
| 698 | printk ("%s: quality=%d, APPn=%d, APP_len=%d, COM_len=%d," | ||
| 699 | " jpeg_markers=%d\n", s, | ||
| 700 | p->quality,p->APPn,p->APP_len, | ||
| 701 | p->COM_len,p->jpeg_markers); | ||
| 702 | break; | ||
| 703 | } | ||
| 704 | case VIDIOC_G_MODULATOR: | ||
| 705 | case VIDIOC_S_MODULATOR: | ||
| 706 | { | ||
| 707 | struct v4l2_modulator *p=arg; | ||
| 708 | printk ("%s: index=%d, name=%s, capability=%d, rangelow=%d," | ||
| 709 | " rangehigh=%d, txsubchans=%d\n", s, | ||
| 710 | p->index, p->name,p->capability,p->rangelow, | ||
| 711 | p->rangehigh,p->txsubchans); | ||
| 712 | break; | ||
| 713 | } | ||
| 714 | case VIDIOC_G_MPEGCOMP: | ||
| 715 | case VIDIOC_S_MPEGCOMP: | ||
| 716 | { | ||
| 717 | struct v4l2_mpeg_compression *p=arg; | ||
| 718 | /*FIXME: Several fields not shown */ | ||
| 719 | printk ("%s: ts_pid_pmt=%d, ts_pid_audio=%d, ts_pid_video=%d, " | ||
| 720 | "ts_pid_pcr=%d, ps_size=%d, au_sample_rate=%d, " | ||
| 721 | "au_pesid=%c, vi_frame_rate=%d, vi_frames_per_gop=%d, " | ||
| 722 | "vi_bframes_count=%d, vi_pesid=%c\n", s, | ||
| 723 | p->ts_pid_pmt,p->ts_pid_audio, p->ts_pid_video, | ||
| 724 | p->ts_pid_pcr, p->ps_size, p->au_sample_rate, | ||
| 725 | p->au_pesid, p->vi_frame_rate, | ||
| 726 | p->vi_frames_per_gop, p->vi_bframes_count, | ||
| 727 | p->vi_pesid); | ||
| 728 | break; | ||
| 729 | } | ||
| 730 | case VIDIOC_ENUMOUTPUT: | ||
| 731 | { | ||
| 732 | struct v4l2_output *p=arg; | ||
| 733 | printk ("%s: index=%d, name=%s,type=%d, audioset=%d, " | ||
| 734 | "modulator=%d, std=%Ld\n", | ||
| 735 | s,p->index,p->name,p->type,p->audioset, | ||
| 736 | p->modulator, | ||
| 737 | (unsigned long long)p->std); | ||
| 738 | break; | ||
| 739 | } | ||
| 740 | case VIDIOC_QUERYCTRL: | ||
| 741 | { | ||
| 742 | struct v4l2_queryctrl *p=arg; | ||
| 743 | printk ("%s: id=%d, type=%d, name=%s, min/max=%d/%d," | ||
| 744 | " step=%d, default=%d, flags=0x%08x\n", s, | ||
| 745 | p->id,p->type,p->name,p->minimum,p->maximum, | ||
| 746 | p->step,p->default_value,p->flags); | ||
| 747 | break; | ||
| 748 | } | ||
| 749 | case VIDIOC_QUERYMENU: | ||
| 750 | { | ||
| 751 | struct v4l2_querymenu *p=arg; | ||
| 752 | printk ("%s: id=%d, index=%d, name=%s\n", s, | ||
| 753 | p->id,p->index,p->name); | ||
| 754 | break; | ||
| 755 | } | ||
| 756 | case VIDIOC_INT_G_REGISTER: | ||
| 757 | case VIDIOC_INT_S_REGISTER: | ||
| 758 | { | ||
| 759 | struct v4l2_register *p=arg; | ||
| 760 | printk ("%s: i2c_id=%d, reg=%lu, val=%d\n", s, | ||
| 761 | p->i2c_id,p->reg,p->val); | ||
| 762 | |||
| 763 | break; | ||
| 764 | } | ||
| 765 | case VIDIOC_REQBUFS: | ||
| 766 | { | ||
| 767 | struct v4l2_requestbuffers *p=arg; | ||
| 768 | printk ("%s: count=%d, type=%s, memory=%s\n", s, | ||
| 769 | p->count, | ||
| 770 | prt_names(p->type,v4l2_type_names), | ||
| 771 | prt_names(p->memory,v4l2_memory_names)); | ||
| 772 | break; | ||
| 773 | } | ||
| 774 | case VIDIOC_INT_S_AUDIO_ROUTING: | ||
| 775 | case VIDIOC_INT_S_VIDEO_ROUTING: | ||
| 776 | case VIDIOC_INT_G_AUDIO_ROUTING: | ||
| 777 | case VIDIOC_INT_G_VIDEO_ROUTING: | ||
| 778 | { | ||
| 779 | struct v4l2_routing *p=arg; | ||
| 780 | printk ("%s: input=0x%x, output=0x%x\n", s, p->input, p->output); | ||
| 781 | break; | ||
| 782 | } | ||
| 783 | case VIDIOC_INT_S_CRYSTAL_FREQ: | ||
| 784 | { | ||
| 785 | struct v4l2_crystal_freq *p=arg; | ||
| 786 | printk ("%s: freq=%u, flags=0x%x\n", s, p->freq, p->flags); | ||
| 787 | break; | ||
| 788 | } | ||
| 789 | case VIDIOC_G_SLICED_VBI_CAP: | ||
| 790 | { | ||
| 791 | struct v4l2_sliced_vbi_cap *p=arg; | ||
| 792 | printk ("%s: service_set=%d\n", s, | ||
| 793 | p->service_set); | ||
| 794 | break; | ||
| 795 | } | ||
| 796 | case VIDIOC_INT_S_VBI_DATA: | ||
| 797 | case VIDIOC_INT_G_VBI_DATA: | ||
| 798 | { | ||
| 799 | struct v4l2_sliced_vbi_data *p=arg; | ||
| 800 | printk ("%s: id=%d, field=%d, line=%d\n", s, | ||
| 801 | p->id, p->field, p->line); | ||
| 802 | break; | ||
| 803 | } | ||
| 804 | case VIDIOC_ENUMSTD: | ||
| 805 | { | ||
| 806 | struct v4l2_standard *p=arg; | ||
| 807 | printk ("%s: index=%d, id=%Ld, name=%s, fps=%d/%d, " | ||
| 808 | "framelines=%d\n", s, p->index, | ||
| 809 | (unsigned long long)p->id, p->name, | ||
| 810 | p->frameperiod.numerator, | ||
| 811 | p->frameperiod.denominator, | ||
| 812 | p->framelines); | ||
| 813 | |||
| 814 | break; | ||
| 815 | } | ||
| 816 | case VIDIOC_G_PARM: | ||
| 817 | case VIDIOC_S_PARM: | ||
| 818 | #ifdef __OLD_VIDIOC_ | ||
| 819 | case VIDIOC_S_PARM_OLD: | ||
| 820 | #endif | ||
| 821 | { | ||
| 822 | struct v4l2_streamparm *p=arg; | ||
| 823 | printk ("%s: type=%d\n", s, p->type); | ||
| 824 | |||
| 825 | break; | ||
| 826 | } | ||
| 827 | case VIDIOC_G_TUNER: | ||
| 828 | case VIDIOC_S_TUNER: | ||
| 829 | { | ||
| 830 | struct v4l2_tuner *p=arg; | ||
| 831 | printk ("%s: index=%d, name=%s, type=%d, capability=%d, " | ||
| 832 | "rangelow=%d, rangehigh=%d, signal=%d, afc=%d, " | ||
| 833 | "rxsubchans=%d, audmode=%d\n", s, | ||
| 834 | p->index, p->name, p->type, | ||
| 835 | p->capability, p->rangelow,p->rangehigh, | ||
| 836 | p->rxsubchans, p->audmode, p->signal, | ||
| 837 | p->afc); | ||
| 838 | break; | ||
| 839 | } | ||
| 840 | #ifdef CONFIG_VIDEO_V4L1_COMPAT | ||
| 841 | case VIDIOCGVBIFMT: | ||
| 842 | case VIDIOCSVBIFMT: | ||
| 843 | { | ||
| 844 | struct vbi_format *p=arg; | ||
| 845 | printk ("%s: sampling_rate=%d, samples_per_line=%d, " | ||
| 846 | "sample_format=%d, start=%d/%d, count=%d/%d, flags=%d\n", s, | ||
| 847 | p->sampling_rate,p->samples_per_line, | ||
| 848 | p->sample_format,p->start[0],p->start[1], | ||
| 849 | p->count[0],p->count[1],p->flags); | ||
| 850 | break; | ||
| 851 | } | ||
| 852 | case VIDIOCGAUDIO: | ||
| 853 | case VIDIOCSAUDIO: | ||
| 854 | { | ||
| 855 | struct video_audio *p=arg; | ||
| 856 | printk ("%s: audio=%d, volume=%d, bass=%d, treble=%d, " | ||
| 857 | "flags=%d, name=%s, mode=%d, balance=%d, step=%d\n", | ||
| 858 | s,p->audio,p->volume,p->bass, p->treble, | ||
| 859 | p->flags,p->name,p->mode,p->balance,p->step); | ||
| 860 | break; | ||
| 861 | } | ||
| 862 | case VIDIOCGFBUF: | ||
| 863 | case VIDIOCSFBUF: | ||
| 864 | { | ||
| 865 | struct video_buffer *p=arg; | ||
| 866 | printk ("%s: base=%08lx, height=%d, width=%d, depth=%d, " | ||
| 867 | "bytesperline=%d\n", s, | ||
| 868 | (unsigned long) p->base, p->height, p->width, | ||
| 869 | p->depth,p->bytesperline); | ||
| 870 | break; | ||
| 871 | } | ||
| 872 | case VIDIOCGCAP: | ||
| 873 | { | ||
| 874 | struct video_capability *p=arg; | ||
| 875 | printk ("%s: name=%s, type=%d, channels=%d, audios=%d, " | ||
| 876 | "maxwidth=%d, maxheight=%d, minwidth=%d, minheight=%d\n", | ||
| 877 | s,p->name,p->type,p->channels,p->audios, | ||
| 878 | p->maxwidth,p->maxheight,p->minwidth, | ||
| 879 | p->minheight); | ||
| 880 | |||
| 881 | break; | ||
| 882 | } | ||
| 883 | case VIDIOCGCAPTURE: | ||
| 884 | case VIDIOCSCAPTURE: | ||
| 885 | { | ||
| 886 | struct video_capture *p=arg; | ||
| 887 | printk ("%s: x=%d, y=%d, width=%d, height=%d, decimation=%d," | ||
| 888 | " flags=%d\n", s, | ||
| 889 | p->x, p->y,p->width, p->height, | ||
| 890 | p->decimation,p->flags); | ||
| 891 | break; | ||
| 892 | } | ||
| 893 | case VIDIOCGCHAN: | ||
| 894 | case VIDIOCSCHAN: | ||
| 895 | { | ||
| 896 | struct video_channel *p=arg; | ||
| 897 | printk ("%s: channel=%d, name=%s, tuners=%d, flags=%d, " | ||
| 898 | "type=%d, norm=%d\n", s, | ||
| 899 | p->channel,p->name,p->tuners, | ||
| 900 | p->flags,p->type,p->norm); | ||
| 901 | |||
| 902 | break; | ||
| 903 | } | ||
| 904 | case VIDIOCSMICROCODE: | ||
| 905 | { | ||
| 906 | struct video_code *p=arg; | ||
| 907 | printk ("%s: loadwhat=%s, datasize=%d\n", s, | ||
| 908 | p->loadwhat,p->datasize); | ||
| 909 | break; | ||
| 910 | } | ||
| 911 | case DECODER_GET_CAPABILITIES: | ||
| 912 | { | ||
| 913 | struct video_decoder_capability *p=arg; | ||
| 914 | printk ("%s: flags=%d, inputs=%d, outputs=%d\n", s, | ||
| 915 | p->flags,p->inputs,p->outputs); | ||
| 916 | break; | ||
| 917 | } | ||
| 918 | case DECODER_INIT: | ||
| 919 | { | ||
| 920 | struct video_decoder_init *p=arg; | ||
| 921 | printk ("%s: len=%c\n", s, p->len); | ||
| 922 | break; | ||
| 923 | } | ||
| 924 | case VIDIOCGPLAYINFO: | ||
| 925 | { | ||
| 926 | struct video_info *p=arg; | ||
| 927 | printk ("%s: frame_count=%d, h_size=%d, v_size=%d, " | ||
| 928 | "smpte_timecode=%d, picture_type=%d, " | ||
| 929 | "temporal_reference=%d, user_data=%s\n", s, | ||
| 930 | p->frame_count, p->h_size, | ||
| 931 | p->v_size, p->smpte_timecode, | ||
| 932 | p->picture_type, p->temporal_reference, | ||
| 933 | p->user_data); | ||
| 934 | break; | ||
| 935 | } | ||
| 936 | case VIDIOCKEY: | ||
| 937 | { | ||
| 938 | struct video_key *p=arg; | ||
| 939 | printk ("%s: key=%s, flags=%d\n", s, | ||
| 940 | p->key, p->flags); | ||
| 941 | break; | ||
| 942 | } | ||
| 943 | case VIDIOCGMBUF: | ||
| 944 | { | ||
| 945 | struct video_mbuf *p=arg; | ||
| 946 | printk ("%s: size=%d, frames=%d, offsets=0x%08lx\n", s, | ||
| 947 | p->size, | ||
| 948 | p->frames, | ||
| 949 | (unsigned long)p->offsets); | ||
| 950 | break; | ||
| 951 | } | ||
| 952 | case VIDIOCMCAPTURE: | ||
| 953 | { | ||
| 954 | struct video_mmap *p=arg; | ||
| 955 | printk ("%s: frame=%d, height=%d, width=%d, format=%d\n", s, | ||
| 956 | p->frame, | ||
| 957 | p->height, p->width, | ||
| 958 | p->format); | ||
| 959 | break; | ||
| 960 | } | ||
| 961 | case VIDIOCGPICT: | ||
| 962 | case VIDIOCSPICT: | ||
| 963 | case DECODER_SET_PICTURE: | ||
| 964 | { | ||
| 965 | struct video_picture *p=arg; | ||
| 966 | |||
| 967 | printk ("%s: brightness=%d, hue=%d, colour=%d, contrast=%d," | ||
| 968 | " whiteness=%d, depth=%d, palette=%d\n", s, | ||
| 969 | p->brightness, p->hue, p->colour, | ||
| 970 | p->contrast, p->whiteness, p->depth, | ||
| 971 | p->palette); | ||
| 972 | break; | ||
| 973 | } | ||
| 974 | case VIDIOCSPLAYMODE: | ||
| 975 | { | ||
| 976 | struct video_play_mode *p=arg; | ||
| 977 | printk ("%s: mode=%d, p1=%d, p2=%d\n", s, | ||
| 978 | p->mode,p->p1,p->p2); | ||
| 979 | break; | ||
| 980 | } | ||
| 981 | case VIDIOCGTUNER: | ||
| 982 | case VIDIOCSTUNER: | ||
| 983 | { | ||
| 984 | struct video_tuner *p=arg; | ||
| 985 | printk ("%s: tuner=%d, name=%s, rangelow=%ld, rangehigh=%ld, " | ||
| 986 | "flags=%d, mode=%d, signal=%d\n", s, | ||
| 987 | p->tuner, p->name,p->rangelow, p->rangehigh, | ||
| 988 | p->flags,p->mode, p->signal); | ||
| 989 | break; | ||
| 990 | } | ||
| 991 | case VIDIOCGUNIT: | ||
| 992 | { | ||
| 993 | struct video_unit *p=arg; | ||
| 994 | printk ("%s: video=%d, vbi=%d, radio=%d, audio=%d, " | ||
| 995 | "teletext=%d\n", s, | ||
| 996 | p->video,p->vbi,p->radio,p->audio,p->teletext); | ||
| 997 | break; | ||
| 998 | } | ||
| 999 | case VIDIOCGWIN: | ||
| 1000 | case VIDIOCSWIN: | ||
| 1001 | { | ||
| 1002 | struct video_window *p=arg; | ||
| 1003 | printk ("%s: x=%d, y=%d, width=%d, height=%d, chromakey=%d," | ||
| 1004 | " flags=%d, clipcount=%d\n", s, | ||
| 1005 | p->x, p->y,p->width, p->height, | ||
| 1006 | p->chromakey,p->flags, | ||
| 1007 | p->clipcount); | ||
| 1008 | break; | ||
| 1009 | } | ||
| 1010 | case VIDIOCGFREQ: | ||
| 1011 | case VIDIOCSFREQ: | ||
| 1012 | { | ||
| 1013 | unsigned long *p=arg; | ||
| 1014 | printk ("%s: value=%lu\n", s, *p); | ||
| 1015 | break; | ||
| 1016 | } | ||
| 1017 | #endif | ||
| 1018 | case VIDIOC_INT_AUDIO_CLOCK_FREQ: | ||
| 1019 | case VIDIOC_INT_I2S_CLOCK_FREQ: | ||
| 1020 | case VIDIOC_INT_S_STANDBY: | ||
| 1021 | case VIDIOC_INT_RESET: | ||
| 1022 | { | ||
| 1023 | u32 *p=arg; | ||
| 1024 | |||
| 1025 | printk ("%s: value=%d\n", s, *p); | ||
| 1026 | break; | ||
| 1027 | } | ||
| 1028 | case VIDIOC_G_STD: | ||
| 1029 | case VIDIOC_S_STD: | ||
| 1030 | case VIDIOC_QUERYSTD: | ||
| 1031 | { | ||
| 1032 | v4l2_std_id *p=arg; | ||
| 1033 | |||
| 1034 | printk ("%s: value=%Lu\n", s, (unsigned long long)*p); | ||
| 1035 | break; | ||
| 1036 | } | ||
| 1037 | } | ||
| 1038 | } | ||
| 1039 | 457 | ||
| 1040 | /* ----------------------------------------------------------------- */ | 458 | /* ----------------------------------------------------------------- */ |
| 1041 | 459 | ||
| @@ -1544,7 +962,6 @@ EXPORT_SYMBOL(v4l2_prio_check); | |||
| 1544 | EXPORT_SYMBOL(v4l2_field_names); | 962 | EXPORT_SYMBOL(v4l2_field_names); |
| 1545 | EXPORT_SYMBOL(v4l2_type_names); | 963 | EXPORT_SYMBOL(v4l2_type_names); |
| 1546 | EXPORT_SYMBOL(v4l_printk_ioctl); | 964 | EXPORT_SYMBOL(v4l_printk_ioctl); |
| 1547 | EXPORT_SYMBOL(v4l_printk_ioctl_arg); | ||
| 1548 | 965 | ||
| 1549 | EXPORT_SYMBOL(v4l2_ctrl_next); | 966 | EXPORT_SYMBOL(v4l2_ctrl_next); |
| 1550 | EXPORT_SYMBOL(v4l2_ctrl_check); | 967 | EXPORT_SYMBOL(v4l2_ctrl_check); |
