1. 17 Sep, 2018 7 commits
    • Mauro Carvalho Chehab's avatar
      media: v4l2: taint pads with the signal types for consumer devices · c1a37dd5
      Mauro Carvalho Chehab authored
      Consumer devices are provided with a wide different range of types
      supported by the same driver, allowing different configutations.
      
      In order to make easier to setup media controller links, "taint"
      pads with the signal type it carries.
      
      While here, get rid of DEMOD_PAD_VBI_OUT, as the signal it carries
      is actually the same as the normal video output.
      
      The difference happens at the video/VBI interface:
      	- for VBI, only the hidden lines are streamed;
      	- for video, the stream is usually cropped to hide the
      	  vbi lines.
      Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      c1a37dd5
    • Mauro Carvalho Chehab's avatar
      media: v4l2: remove VBI output pad · 092a3787
      Mauro Carvalho Chehab authored
      The signal there is the same as the video output (well,
      except for sliced VBI, but let's simplify the model and ignore
      it, at least for now - as it is routed together with raw
      VBI).
      Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      092a3787
    • Mauro Carvalho Chehab's avatar
      media: em28xx: make v4l2-compliance happier by starting sequence on zero · afeaade9
      Mauro Carvalho Chehab authored
      The v4l2-compliance tool complains if a video doesn't start
      with a zero sequence number.
      
      While this shouldn't cause any real problem for apps, let's
      make it happier, in order to better check the v4l2-compliance
      differences before and after patchsets.
      
      This is actually an old issue. It is there since at least its
      videobuf2 conversion, e. g. changeset 3829fadc461 ("[media]
      em28xx: convert to videobuf2"), if VB1 wouldn't suffer from
      the same issue.
      
      Cc: stable@vger.kernel.org
      Fixes: d3829fad ("[media] em28xx: convert to videobuf2")
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      afeaade9
    • Mauro Carvalho Chehab's avatar
      media: em28xx: fix input name for Terratec AV 350 · 15644bfa
      Mauro Carvalho Chehab authored
      Instead of using a register value, use an AMUX name, as otherwise
      VIDIOC_G_AUDIO would fail.
      
      Cc: stable@vger.kernel.org
      Fixes: 766ed64d ("V4L/DVB (11827): Add support for Terratec Grabster AV350")
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      15644bfa
    • Mauro Carvalho Chehab's avatar
      media: em28xx: use a default format if TRY_FMT fails · f823ce2a
      Mauro Carvalho Chehab authored
      Follow the V4L2 spec, as warned by v4l2-compliance:
      
      	warn: v4l2-test-formats.cpp(732): TRY_FMT cannot handle an invalid pixelformat.
      	warn: v4l2-test-formats.cpp(733): This may or may not be a problem. For more information see:
      
      warn: v4l2-test-formats.cpp(734): http://www.mail-archive.com/linux-media@vger.kernel.org/msg56550.html
      
      Cc: stable@vger.kernel.org
      Fixes: bddcf633 ("V4L/DVB (9927): em28xx: use a more standard way to specify video formats")
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      f823ce2a
    • Mauro Carvalho Chehab's avatar
      media: em28xx: fix handler for vidioc_s_input() · 258c4304
      Mauro Carvalho Chehab authored
      The a->index is not the name of the internal amux entry,
      but, instead a value from zero to the maximum number
      of audio inputs.
      
      As the actual available inputs depend on each board, build
      it dynamically.
      
      This is broken for a really long time. On a quick check,
      since at least commit 195a4ef6 ("V4L/DVB (6585): Convert
      em28xx to video_ioctl2") this was not implemented right.
      
      Fixes: 195a4ef6 ("V4L/DVB (6585): Convert em28xx to video_ioctl2")
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      258c4304
    • Mauro Carvalho Chehab's avatar
      media: tvp5150: avoid going past array on v4l2_querymenu() · 5c4c4505
      Mauro Carvalho Chehab authored
      The parameters of v4l2_ctrl_new_std_menu_items() are tricky: instead of
      the number of possible values, it requires the number of the maximum
      value. In other words, the ARRAY_SIZE() value should be decremented,
      otherwise it will go past the array bounds, as warned by KASAN:
      
      [  279.839688] BUG: KASAN: global-out-of-bounds in v4l2_querymenu+0x10d/0x180 [videodev]
      [  279.839709] Read of size 8 at addr ffffffffc10a4cb0 by task v4l2-compliance/16676
      
      [  279.839736] CPU: 1 PID: 16676 Comm: v4l2-compliance Not tainted 4.18.0-rc2+ #120
      [  279.839741] Hardware name:  /NUC5i7RYB, BIOS RYBDWi35.86A.0364.2017.0511.0949 05/11/2017
      [  279.839743] Call Trace:
      [  279.839758]  dump_stack+0x71/0xab
      [  279.839807]  ? v4l2_querymenu+0x10d/0x180 [videodev]
      [  279.839817]  print_address_description+0x1c9/0x270
      [  279.839863]  ? v4l2_querymenu+0x10d/0x180 [videodev]
      [  279.839871]  kasan_report+0x237/0x360
      [  279.839918]  v4l2_querymenu+0x10d/0x180 [videodev]
      [  279.839964]  __video_do_ioctl+0x2c8/0x590 [videodev]
      [  279.840011]  ? copy_overflow+0x20/0x20 [videodev]
      [  279.840020]  ? avc_ss_reset+0xa0/0xa0
      [  279.840028]  ? check_stack_object+0x21/0x60
      [  279.840036]  ? __check_object_size+0xe7/0x240
      [  279.840080]  video_usercopy+0xed/0x730 [videodev]
      [  279.840123]  ? copy_overflow+0x20/0x20 [videodev]
      [  279.840167]  ? v4l_enumstd+0x40/0x40 [videodev]
      [  279.840177]  ? __handle_mm_fault+0x9f9/0x1ba0
      [  279.840186]  ? __pmd_alloc+0x2c0/0x2c0
      [  279.840193]  ? __vfs_write+0xb6/0x350
      [  279.840200]  ? kernel_read+0xa0/0xa0
      [  279.840244]  ? video_usercopy+0x730/0x730 [videodev]
      [  279.840284]  v4l2_ioctl+0xa1/0xb0 [videodev]
      [  279.840295]  do_vfs_ioctl+0x117/0x8a0
      [  279.840303]  ? selinux_file_ioctl+0x211/0x2f0
      [  279.840313]  ? ioctl_preallocate+0x120/0x120
      [  279.840319]  ? selinux_capable+0x20/0x20
      [  279.840332]  ksys_ioctl+0x70/0x80
      [  279.840342]  __x64_sys_ioctl+0x3d/0x50
      [  279.840351]  do_syscall_64+0x6d/0x1c0
      [  279.840361]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [  279.840367] RIP: 0033:0x7fdfb46275d7
      [  279.840369] Code: b3 66 90 48 8b 05 b1 48 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 81 48 2d 00 f7 d8 64 89 01 48
      [  279.840474] RSP: 002b:00007ffee1179038 EFLAGS: 00000202 ORIG_RAX: 0000000000000010
      [  279.840483] RAX: ffffffffffffffda RBX: 00007ffee1179180 RCX: 00007fdfb46275d7
      [  279.840488] RDX: 00007ffee11790c0 RSI: 00000000c02c5625 RDI: 0000000000000003
      [  279.840493] RBP: 0000000000000002 R08: 0000000000000020 R09: 00000000009f0902
      [  279.840497] R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffee117a5a0
      [  279.840501] R13: 00007ffee11790c0 R14: 0000000000000002 R15: 0000000000000000
      
      [  279.840515] The buggy address belongs to the variable:
      [  279.840535]  tvp5150_test_patterns+0x10/0xffffffffffffe360 [tvp5150]
      
      Fixes: c43875f6 ("[media] tvp5150: replace MEDIA_ENT_F_CONN_TEST by a control")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      5c4c4505
  2. 12 Sep, 2018 33 commits