1. 29 5月, 2018 1 次提交
  2. 10 5月, 2018 1 次提交
  3. 05 5月, 2018 1 次提交
  4. 04 5月, 2018 1 次提交
  5. 05 4月, 2018 1 次提交
    • M
      media: v4l2-core: fix size of devnode_nums[] bitarray · a95845ba
      Mauro Carvalho Chehab 提交于
      The size of devnode_nums[] bit array is too short to store information
      for VFL_TYPE_TOUCH. That causes it to override other memory regions.
      
      Thankfully, on recent reports, it is overriding video_device[] array,
      trigging a WARN_ON(). Yet, it just warns about the problem, but let
      the code excecuting, with generates an OOPS:
      
      [   43.177394] WARNING: CPU: 1 PID: 711 at drivers/media/v4l2-core/v4l2-dev.c:945 __video_register_device+0xc99/0x1090 [videodev]
      [   43.177396] Modules linked in: hid_sensor_custom hid_sensor_als hid_sensor_incl_3d hid_sensor_rotation hid_sensor_magn_3d hid_sensor_accel_3d hid_sensor_gyro_3d hid_sensor_trigger industrialio_triggered_buffer kfifo_buf joydev hid_sensor_iio_common hid_rmi(+) rmi_core industrialio videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev hid_multitouch media hid_sensor_hub binfmt_misc nls_iso8859_1 snd_hda_codec_hdmi arc4 snd_soc_skl snd_soc_skl_ipc snd_hda_ext_core snd_soc_sst_dsp snd_soc_sst_ipc snd_hda_codec_realtek snd_soc_acpi snd_hda_codec_generic snd_soc_core snd_compress ac97_bus snd_pcm_dmaengine snd_hda_intel snd_hda_codec intel_rapl snd_hda_core x86_pkg_temp_thermal snd_hwdep intel_powerclamp coretemp snd_pcm kvm_intel snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul
      [   43.177426]  crc32_pclmul ghash_clmulni_intel iwlmvm pcbc mac80211 snd_seq aesni_intel iwlwifi aes_x86_64 snd_seq_device crypto_simd glue_helper cryptd snd_timer intel_cstate intel_rapl_perf input_leds serio_raw intel_wmi_thunderbolt snd wmi_bmof cfg80211 soundcore ideapad_laptop sparse_keymap idma64 virt_dma tpm_crb acpi_pad int3400_thermal acpi_thermal_rel intel_pch_thermal processor_thermal_device mac_hid int340x_thermal_zone mei_me intel_soc_dts_iosf mei intel_lpss_pci shpchp intel_lpss sch_fq_codel vfio_pci nfsd vfio_virqfd parport_pc ppdev auth_rpcgss nfs_acl lockd grace lp parport sunrpc ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid kvmgt vfio_mdev mdev vfio_iommu_type1 vfio kvm irqbypass i915 i2c_algo_bit drm_kms_helper syscopyarea sdhci_pci sysfillrect
      [   43.177466]  sysimgblt cqhci fb_sys_fops sdhci drm i2c_hid wmi hid video pinctrl_sunrisepoint pinctrl_intel
      [   43.177474] CPU: 1 PID: 711 Comm: systemd-udevd Not tainted 4.16.0 #1
      [   43.177475] Hardware name: LENOVO 80UE/VIUU4, BIOS 2UCN10T 10/14/2016
      [   43.177481] RIP: 0010:__video_register_device+0xc99/0x1090 [videodev]
      [   43.177482] RSP: 0000:ffffa5c5c231b420 EFLAGS: 00010202
      [   43.177484] RAX: 0000000000000000 RBX: 0000000000000005 RCX: 0000000000000000
      [   43.177485] RDX: ffffffffc0c44cc0 RSI: ffffffffffffffff RDI: ffffffffc0c44cc0
      [   43.177486] RBP: ffffa5c5c231b478 R08: ffffffffc0c96900 R09: ffff8eda1a51f018
      [   43.177487] R10: 0000000000000600 R11: 00000000000003b6 R12: 0000000000000000
      [   43.177488] R13: 0000000000000005 R14: ffffffffc0c96900 R15: ffff8eda1d6d91c0
      [   43.177489] FS:  00007fd2d8ef2480(0000) GS:ffff8eda33480000(0000) knlGS:0000000000000000
      [   43.177490] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   43.177491] CR2: 00007ffe0a6ad01c CR3: 0000000456ae2004 CR4: 00000000003606e0
      [   43.177492] Call Trace:
      [   43.177498]  ? devres_add+0x5f/0x70
      [   43.177502]  rmi_f54_probe+0x437/0x470 [rmi_core]
      [   43.177505]  rmi_function_probe+0x25/0x30 [rmi_core]
      [   43.177507]  driver_probe_device+0x310/0x480
      [   43.177509]  __device_attach_driver+0x86/0x100
      [   43.177511]  ? __driver_attach+0xf0/0xf0
      [   43.177512]  bus_for_each_drv+0x6b/0xb0
      [   43.177514]  __device_attach+0xdd/0x160
      [   43.177516]  device_initial_probe+0x13/0x20
      [   43.177518]  bus_probe_device+0x95/0xa0
      [   43.177519]  device_add+0x44b/0x680
      [   43.177522]  rmi_register_function+0x62/0xd0 [rmi_core]
      [   43.177525]  rmi_create_function+0x112/0x1a0 [rmi_core]
      [   43.177527]  ? rmi_driver_clear_irq_bits+0xc0/0xc0 [rmi_core]
      [   43.177530]  rmi_scan_pdt+0xca/0x1a0 [rmi_core]
      [   43.177535]  rmi_init_functions+0x5b/0x120 [rmi_core]
      [   43.177537]  rmi_driver_probe+0x152/0x3c0 [rmi_core]
      [   43.177547]  ? sysfs_create_link+0x25/0x40
      [   43.177549]  driver_probe_device+0x310/0x480
      [   43.177551]  __device_attach_driver+0x86/0x100
      [   43.177553]  ? __driver_attach+0xf0/0xf0
      [   43.177554]  bus_for_each_drv+0x6b/0xb0
      [   43.177556]  __device_attach+0xdd/0x160
      [   43.177558]  device_initial_probe+0x13/0x20
      [   43.177560]  bus_probe_device+0x95/0xa0
      [   43.177561]  device_add+0x44b/0x680
      [   43.177564]  rmi_register_transport_device+0x84/0x100 [rmi_core]
      [   43.177568]  rmi_input_configured+0xbf/0x1a0 [hid_rmi]
      [   43.177571]  ? input_allocate_device+0xdf/0xf0
      [   43.177574]  hidinput_connect+0x4a9/0x37a0 [hid]
      [   43.177578]  hid_connect+0x326/0x3d0 [hid]
      [   43.177581]  hid_hw_start+0x42/0x70 [hid]
      [   43.177583]  rmi_probe+0x115/0x510 [hid_rmi]
      [   43.177586]  hid_device_probe+0xd3/0x150 [hid]
      [   43.177588]  ? sysfs_create_link+0x25/0x40
      [   43.177590]  driver_probe_device+0x310/0x480
      [   43.177592]  __driver_attach+0xbf/0xf0
      [   43.177593]  ? driver_probe_device+0x480/0x480
      [   43.177595]  bus_for_each_dev+0x74/0xb0
      [   43.177597]  ? kmem_cache_alloc_trace+0x1a6/0x1c0
      [   43.177599]  driver_attach+0x1e/0x20
      [   43.177600]  bus_add_driver+0x167/0x260
      [   43.177602]  ? 0xffffffffc0cbc000
      [   43.177604]  driver_register+0x60/0xe0
      [   43.177605]  ? 0xffffffffc0cbc000
      [   43.177607]  __hid_register_driver+0x63/0x70 [hid]
      [   43.177610]  rmi_driver_init+0x23/0x1000 [hid_rmi]
      [   43.177612]  do_one_initcall+0x52/0x191
      [   43.177615]  ? _cond_resched+0x19/0x40
      [   43.177617]  ? kmem_cache_alloc_trace+0xa2/0x1c0
      [   43.177619]  ? do_init_module+0x27/0x209
      [   43.177621]  do_init_module+0x5f/0x209
      [   43.177623]  load_module+0x1987/0x1f10
      [   43.177626]  ? ima_post_read_file+0x96/0xa0
      [   43.177629]  SYSC_finit_module+0xfc/0x120
      [   43.177630]  ? SYSC_finit_module+0xfc/0x120
      [   43.177632]  SyS_finit_module+0xe/0x10
      [   43.177634]  do_syscall_64+0x73/0x130
      [   43.177637]  entry_SYSCALL_64_after_hwframe+0x3d/0xa2
      [   43.177638] RIP: 0033:0x7fd2d880b839
      [   43.177639] RSP: 002b:00007ffe0a6b2368 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      [   43.177641] RAX: ffffffffffffffda RBX: 000055cdd86542e0 RCX: 00007fd2d880b839
      [   43.177641] RDX: 0000000000000000 RSI: 00007fd2d84ea0e5 RDI: 0000000000000016
      [   43.177642] RBP: 00007fd2d84ea0e5 R08: 0000000000000000 R09: 00007ffe0a6b2480
      [   43.177643] R10: 0000000000000016 R11: 0000000000000246 R12: 0000000000000000
      [   43.177644] R13: 000055cdd8688930 R14: 0000000000020000 R15: 000055cdd86542e0
      [   43.177645] Code: 48 c7 c7 54 b4 c3 c0 e8 96 9d ec dd e9 d4 fb ff ff 0f 0b 41 be ea ff ff ff e9 c7 fb ff ff 0f 0b 41 be ea ff ff ff e9 ba fb ff ff <0f> 0b e9 d8 f4 ff ff 83 fa 01 0f 84 c4 02 00 00 48 83 78 68 00
      [   43.177675] ---[ end trace d44d9bc41477c2dd ]---
      [   43.177679] BUG: unable to handle kernel NULL pointer dereference at 0000000000000499
      [   43.177723] IP: __video_register_device+0x1cc/0x1090 [videodev]
      [   43.177749] PGD 0 P4D 0
      [   43.177764] Oops: 0000 [#1] SMP PTI
      [   43.177780] Modules linked in: hid_sensor_custom hid_sensor_als hid_sensor_incl_3d hid_sensor_rotation hid_sensor_magn_3d hid_sensor_accel_3d hid_sensor_gyro_3d hid_sensor_trigger industrialio_triggered_buffer kfifo_buf joydev hid_sensor_iio_common hid_rmi(+) rmi_core industrialio videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev hid_multitouch media hid_sensor_hub binfmt_misc nls_iso8859_1 snd_hda_codec_hdmi arc4 snd_soc_skl snd_soc_skl_ipc snd_hda_ext_core snd_soc_sst_dsp snd_soc_sst_ipc snd_hda_codec_realtek snd_soc_acpi snd_hda_codec_generic snd_soc_core snd_compress ac97_bus snd_pcm_dmaengine snd_hda_intel snd_hda_codec intel_rapl snd_hda_core x86_pkg_temp_thermal snd_hwdep intel_powerclamp coretemp snd_pcm kvm_intel snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul
      [   43.178055]  crc32_pclmul ghash_clmulni_intel iwlmvm pcbc mac80211 snd_seq aesni_intel iwlwifi aes_x86_64 snd_seq_device crypto_simd glue_helper cryptd snd_timer intel_cstate intel_rapl_perf input_leds serio_raw intel_wmi_thunderbolt snd wmi_bmof cfg80211 soundcore ideapad_laptop sparse_keymap idma64 virt_dma tpm_crb acpi_pad int3400_thermal acpi_thermal_rel intel_pch_thermal processor_thermal_device mac_hid int340x_thermal_zone mei_me intel_soc_dts_iosf mei intel_lpss_pci shpchp intel_lpss sch_fq_codel vfio_pci nfsd vfio_virqfd parport_pc ppdev auth_rpcgss nfs_acl lockd grace lp parport sunrpc ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid kvmgt vfio_mdev mdev vfio_iommu_type1 vfio kvm irqbypass i915 i2c_algo_bit drm_kms_helper syscopyarea sdhci_pci sysfillrect
      [   43.178337]  sysimgblt cqhci fb_sys_fops sdhci drm i2c_hid wmi hid video pinctrl_sunrisepoint pinctrl_intel
      [   43.178380] CPU: 1 PID: 711 Comm: systemd-udevd Tainted: G        W        4.16.0 #1
      [   43.178411] Hardware name: LENOVO 80UE/VIUU4, BIOS 2UCN10T 10/14/2016
      [   43.178441] RIP: 0010:__video_register_device+0x1cc/0x1090 [videodev]
      [   43.178467] RSP: 0000:ffffa5c5c231b420 EFLAGS: 00010202
      [   43.178490] RAX: ffffffffc0c44cc0 RBX: 0000000000000005 RCX: ffffffffc0c454c0
      [   43.178519] RDX: 0000000000000001 RSI: ffff8eda1d6d9118 RDI: ffffffffc0c44cc0
      [   43.178549] RBP: ffffa5c5c231b478 R08: ffffffffc0c96900 R09: ffff8eda1a51f018
      [   43.178579] R10: 0000000000000600 R11: 00000000000003b6 R12: 0000000000000000
      [   43.178608] R13: 0000000000000005 R14: ffffffffc0c96900 R15: ffff8eda1d6d91c0
      [   43.178636] FS:  00007fd2d8ef2480(0000) GS:ffff8eda33480000(0000) knlGS:0000000000000000
      [   43.178669] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   43.178693] CR2: 0000000000000499 CR3: 0000000456ae2004 CR4: 00000000003606e0
      [   43.178721] Call Trace:
      [   43.178736]  ? devres_add+0x5f/0x70
      [   43.178755]  rmi_f54_probe+0x437/0x470 [rmi_core]
      [   43.178779]  rmi_function_probe+0x25/0x30 [rmi_core]
      [   43.178805]  driver_probe_device+0x310/0x480
      [   43.178828]  __device_attach_driver+0x86/0x100
      [   43.178851]  ? __driver_attach+0xf0/0xf0
      [   43.178884]  bus_for_each_drv+0x6b/0xb0
      [   43.178904]  __device_attach+0xdd/0x160
      [   43.178925]  device_initial_probe+0x13/0x20
      [   43.178948]  bus_probe_device+0x95/0xa0
      [   43.178968]  device_add+0x44b/0x680
      [   43.178987]  rmi_register_function+0x62/0xd0 [rmi_core]
      [   43.181747]  rmi_create_function+0x112/0x1a0 [rmi_core]
      [   43.184677]  ? rmi_driver_clear_irq_bits+0xc0/0xc0 [rmi_core]
      [   43.187505]  rmi_scan_pdt+0xca/0x1a0 [rmi_core]
      [   43.190171]  rmi_init_functions+0x5b/0x120 [rmi_core]
      [   43.192809]  rmi_driver_probe+0x152/0x3c0 [rmi_core]
      [   43.195403]  ? sysfs_create_link+0x25/0x40
      [   43.198253]  driver_probe_device+0x310/0x480
      [   43.201083]  __device_attach_driver+0x86/0x100
      [   43.203800]  ? __driver_attach+0xf0/0xf0
      [   43.206503]  bus_for_each_drv+0x6b/0xb0
      [   43.209291]  __device_attach+0xdd/0x160
      [   43.212207]  device_initial_probe+0x13/0x20
      [   43.215146]  bus_probe_device+0x95/0xa0
      [   43.217885]  device_add+0x44b/0x680
      [   43.220597]  rmi_register_transport_device+0x84/0x100 [rmi_core]
      [   43.223321]  rmi_input_configured+0xbf/0x1a0 [hid_rmi]
      [   43.226051]  ? input_allocate_device+0xdf/0xf0
      [   43.228814]  hidinput_connect+0x4a9/0x37a0 [hid]
      [   43.231701]  hid_connect+0x326/0x3d0 [hid]
      [   43.234548]  hid_hw_start+0x42/0x70 [hid]
      [   43.237302]  rmi_probe+0x115/0x510 [hid_rmi]
      [   43.239862]  hid_device_probe+0xd3/0x150 [hid]
      [   43.242558]  ? sysfs_create_link+0x25/0x40
      [   43.242828] audit: type=1400 audit(1522795151.600:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/core/4206/usr/lib/snapd/snap-confine" pid=1151 comm="apparmor_parser"
      [   43.244859]  driver_probe_device+0x310/0x480
      [   43.244862]  __driver_attach+0xbf/0xf0
      [   43.246982] audit: type=1400 audit(1522795151.600:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/core/4206/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=1151 comm="apparmor_parser"
      [   43.249403]  ? driver_probe_device+0x480/0x480
      [   43.249405]  bus_for_each_dev+0x74/0xb0
      [   43.253200] audit: type=1400 audit(1522795151.600:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/snap/core/4206/usr/lib/snapd/snap-confine//snap_update_ns" pid=1151 comm="apparmor_parser"
      [   43.254055]  ? kmem_cache_alloc_trace+0x1a6/0x1c0
      [   43.256282] audit: type=1400 audit(1522795151.604:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=1152 comm="apparmor_parser"
      [   43.258436]  driver_attach+0x1e/0x20
      [   43.260875] audit: type=1400 audit(1522795151.604:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1152 comm="apparmor_parser"
      [   43.263118]  bus_add_driver+0x167/0x260
      [   43.267676] audit: type=1400 audit(1522795151.604:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-helper" pid=1152 comm="apparmor_parser"
      [   43.268807]  ? 0xffffffffc0cbc000
      [   43.268812]  driver_register+0x60/0xe0
      [   43.271184] audit: type=1400 audit(1522795151.604:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1152 comm="apparmor_parser"
      [   43.274081]  ? 0xffffffffc0cbc000
      [   43.274086]  __hid_register_driver+0x63/0x70 [hid]
      [   43.288367]  rmi_driver_init+0x23/0x1000 [hid_rmi]
      [   43.291501]  do_one_initcall+0x52/0x191
      [   43.292348] audit: type=1400 audit(1522795151.652:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=1242 comm="apparmor_parser"
      [   43.294212]  ? _cond_resched+0x19/0x40
      [   43.300028]  ? kmem_cache_alloc_trace+0xa2/0x1c0
      [   43.303475]  ? do_init_module+0x27/0x209
      [   43.306842]  do_init_module+0x5f/0x209
      [   43.310269]  load_module+0x1987/0x1f10
      [   43.313704]  ? ima_post_read_file+0x96/0xa0
      [   43.317174]  SYSC_finit_module+0xfc/0x120
      [   43.320754]  ? SYSC_finit_module+0xfc/0x120
      [   43.324065]  SyS_finit_module+0xe/0x10
      [   43.327387]  do_syscall_64+0x73/0x130
      [   43.330909]  entry_SYSCALL_64_after_hwframe+0x3d/0xa2
      [   43.334305] RIP: 0033:0x7fd2d880b839
      [   43.337810] RSP: 002b:00007ffe0a6b2368 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      [   43.341259] RAX: ffffffffffffffda RBX: 000055cdd86542e0 RCX: 00007fd2d880b839
      [   43.344613] RDX: 0000000000000000 RSI: 00007fd2d84ea0e5 RDI: 0000000000000016
      [   43.347962] RBP: 00007fd2d84ea0e5 R08: 0000000000000000 R09: 00007ffe0a6b2480
      [   43.351456] R10: 0000000000000016 R11: 0000000000000246 R12: 0000000000000000
      [   43.354845] R13: 000055cdd8688930 R14: 0000000000020000 R15: 000055cdd86542e0
      [   43.358224] Code: c7 05 ad 12 02 00 00 00 00 00 48 8d 88 00 08 00 00 eb 09 48 83 c0 08 48 39 c1 74 31 48 8b 10 48 85 d2 74 ef 49 8b b7 98 04 00 00 <48> 39 b2 98 04 00 00 75 df 48 63 92 f8 04 00 00 f0 48 0f ab 15
      [   43.361764] RIP: __video_register_device+0x1cc/0x1090 [videodev] RSP: ffffa5c5c231b420
      [   43.365281] CR2: 0000000000000499
      
      This patch fixes the array size and changes the WARN_ON() to return an error,
      instead of letting the Kernel to proceed with registering.
      
      Cc: stable@vger.kernel.org # For Kernel 4.16
      Fixes: 4839c58f ("media: v4l2-dev: convert VFL_TYPE_* into an enum")
      Reported-by: NPeter Geis <pgwipeout@gmail.com>
      Reported-by: NJaak Ristioja <jaak@ristioja.ee>
      Reported-by: NMichał Siemek <mihau69@gmail.com>
      Reviewed-by: NHans Verkuil <hans.verkuil@cisco.com>
      Reviewed-by: NSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
      a95845ba
  6. 12 2月, 2018 1 次提交
    • L
      vfs: do bulk POLL* -> EPOLL* replacement · a9a08845
      Linus Torvalds 提交于
      This is the mindless scripted replacement of kernel use of POLL*
      variables as described by Al, done by this script:
      
          for V in IN OUT PRI ERR RDNORM RDBAND WRNORM WRBAND HUP RDHUP NVAL MSG; do
              L=`git grep -l -w POLL$V | grep -v '^t' | grep -v /um/ | grep -v '^sa' | grep -v '/poll.h$'|grep -v '^D'`
              for f in $L; do sed -i "-es/^\([^\"]*\)\(\<POLL$V\>\)/\\1E\\2/" $f; done
          done
      
      with de-mangling cleanups yet to come.
      
      NOTE! On almost all architectures, the EPOLL* constants have the same
      values as the POLL* constants do.  But they keyword here is "almost".
      For various bad reasons they aren't the same, and epoll() doesn't
      actually work quite correctly in some cases due to this on Sparc et al.
      
      The next patch from Al will sort out the final differences, and we
      should be all done.
      Scripted-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a9a08845
  7. 19 12月, 2017 1 次提交
  8. 28 11月, 2017 2 次提交
  9. 15 4月, 2017 1 次提交
  10. 25 12月, 2016 1 次提交
  11. 24 8月, 2016 1 次提交
  12. 23 7月, 2016 1 次提交
  13. 14 4月, 2016 1 次提交
  14. 11 1月, 2016 6 次提交
    • M
      [media] media_entity: remove gfp_flags argument · 0b3b72df
      Mauro Carvalho Chehab 提交于
      We should not be creating device nodes at IRQ contexts. So,
      the only flags we'll be using will be GFP_KERNEL. Let's
      remove the gfp_flags, in order to make the interface simpler.
      
      If we ever need it, it would be easy to revert those changes.
      
      While here, remove an extra blank line.
      Suggested-by: NSakari Ailus <sakari.ailus@iki.fi>
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      0b3b72df
    • M
      [media] uapi/media.h: Rename entities types to functions · 4ca72efa
      Mauro Carvalho Chehab 提交于
      Rename the userspace types from MEDIA_ENT_T_ to MEDIA_ENT_F_
      and add the backward compatibility bits.
      
      The changes at the .c files was generated by the following
      coccinelle script:
      
      @@
      @@
      -MEDIA_ENT_T_UNKNOWN
      +MEDIA_ENT_F_UNKNOWN
      @@
      @@
      -MEDIA_ENT_T_DVB_BASE
      +MEDIA_ENT_F_DVB_BASE
      @@
      @@
      -MEDIA_ENT_T_V4L2_BASE
      +MEDIA_ENT_F_V4L2_BASE
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_BASE
      +MEDIA_ENT_F_V4L2_SUBDEV_BASE
      @@
      @@
      -MEDIA_ENT_T_CONNECTOR_BASE
      +MEDIA_ENT_F_CONNECTOR_BASE
      @@
      @@
      -MEDIA_ENT_T_V4L2_VIDEO
      +MEDIA_ENT_F_IO_V4L
      @@
      @@
      -MEDIA_ENT_T_V4L2_VBI
      +MEDIA_ENT_F_IO_VBI
      @@
      @@
      -MEDIA_ENT_T_V4L2_SWRADIO
      +MEDIA_ENT_F_IO_SWRADIO
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN
      +MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
      @@
      @@
      -MEDIA_ENT_T_CONN_RF
      +MEDIA_ENT_F_CONN_RF
      @@
      @@
      -MEDIA_ENT_T_CONN_SVIDEO
      +MEDIA_ENT_F_CONN_SVIDEO
      @@
      @@
      -MEDIA_ENT_T_CONN_COMPOSITE
      +MEDIA_ENT_F_CONN_COMPOSITE
      @@
      @@
      -MEDIA_ENT_T_CONN_TEST
      +MEDIA_ENT_F_CONN_TEST
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_SENSOR
      +MEDIA_ENT_F_CAM_SENSOR
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_FLASH
      +MEDIA_ENT_F_FLASH
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_LENS
      +MEDIA_ENT_F_LENS
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_DECODER
      +MEDIA_ENT_F_ATV_DECODER
      @@
      @@
      -MEDIA_ENT_T_V4L2_SUBDEV_TUNER
      +MEDIA_ENT_F_TUNER
      @@
      @@
      -MEDIA_ENT_T_DVB_DEMOD
      +MEDIA_ENT_F_DTV_DEMOD
      @@
      @@
      -MEDIA_ENT_T_DVB_DEMUX
      +MEDIA_ENT_F_TS_DEMUX
      @@
      @@
      -MEDIA_ENT_T_DVB_TSOUT
      +MEDIA_ENT_F_IO_DTV
      @@
      @@
      -MEDIA_ENT_T_DVB_CA
      +MEDIA_ENT_F_DTV_CA
      @@
      @@
      -MEDIA_ENT_T_DVB_NET_DECAP
      +MEDIA_ENT_F_DTV_NET_DECAP
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      4ca72efa
    • M
      [media] media-entity.h: rename entity.type to entity.function · 0e576b76
      Mauro Carvalho Chehab 提交于
      Entities should have one or more functions. Calling it as a
      type proofed to not be correct, as an entity could eventually
      have more than one type.
      
      So, rename the field as function.
      
      Please notice that this patch doesn't extend support for
      multiple function entities. Such change will happen when
      we have real case drivers using it.
      
      No functional changes.
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      0e576b76
    • M
      [media] v4l2 core: enable all interface links at init · 13f6e888
      Mauro Carvalho Chehab 提交于
      Interface links are normally enabled, meaning that the interfaces are
      bound to the entities. So, any ioctl send to the interface are reflected
      at the entities managed by the interface.
      
      However, when a device is used, other interfaces for the same hardware
      could be decoupled from the entities linked to them, because the
      hardware may have some parts busy.
      
      That's for example, what happens when an hybrid TV device is in use.
      If it is streaming analog TV or capturing signals from S-Video/Composite
      connectors, typically the digital part of the hardware can't be used and
      vice-versa.
      
      This is generally due to some internal hardware or firmware limitation,
      that it is not easily mapped via data pipelines.
      
      What the Kernel drivers do internally is that they decouple the hardware
      from the interface. So, all changes, if allowed, are done only at some
      interface cache, but not physically changed at the hardware.
      
      The usage is similar to the usage of the MEDIA_LNK_FL_ENABLED on data
      links. So, let's use the same flag to indicate if either the interface
      to entity link is bound/enabled or not.
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      13f6e888
    • M
      [media] v4l2-core: create MC interfaces for devnodes · d9c21e3e
      Mauro Carvalho Chehab 提交于
      V4L2 device (and subdevice) nodes should create an interface, if the
      Media Controller support is enabled.
      
      Please notice that radio devices should not create an entity, as radio
      input/output is either via wires or via ALSA.
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      d9c21e3e
    • M
      [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L · cf490661
      Mauro Carvalho Chehab 提交于
      Now that interfaces and entities are distinct, it makes no sense
      of keeping something named as MEDIA_ENT_T_DEVNODE.
      
      This change was done with this script:
      
      	for i in $(git grep -l MEDIA_ENT_T|grep -v uapi/linux/media.h); do sed s,MEDIA_ENT_T_DEVNODE_V4L,MEDIA_ENT_T_V4L2_VIDEO, <$i >a && mv a $i; done
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      cf490661
  15. 21 10月, 2015 1 次提交
  16. 03 4月, 2015 1 次提交
  17. 03 3月, 2015 2 次提交
  18. 14 2月, 2015 1 次提交
    • M
      [media] media: Fix DVB devnode representation at media controller · e31a0ba7
      Mauro Carvalho Chehab 提交于
      The previous provision for DVB media controller support were to
      define an ID (likely meaning the adapter number) for the DVB
      devnodes.
      
      This is just plain wrong. Just like V4L, DVB devices (and any other
      device node)) are uniquely identified via a (major, minor) tuple.
      
      This is enough to uniquely identify a devnode, no matter what
      API it implements.
      
      So, before we go too far, let's mark the old v4l, fb, dvb and alsa
      "devnode" info as deprecated, and just call it as "dev".
      
      We can latter add fields specific to each API if needed.
      
      As we don't want to break compilation on already existing apps,
      let's just keep the old definitions as-is, adding a note that
      those are deprecated at media-entity.h.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      e31a0ba7
  19. 23 12月, 2014 2 次提交
  20. 25 11月, 2014 1 次提交
  21. 18 7月, 2014 2 次提交
  22. 17 7月, 2014 1 次提交
  23. 05 7月, 2014 1 次提交
  24. 11 3月, 2014 1 次提交
  25. 06 3月, 2014 3 次提交
  26. 28 1月, 2014 1 次提交
  27. 07 1月, 2014 1 次提交
  28. 11 12月, 2013 1 次提交
  29. 24 8月, 2013 1 次提交
    • R
      [media] v4l2-dev: Fix race condition on __video_register_device · 1056e438
      Ricardo Ribalda 提交于
      When 2 devices are registered at the same time, in Part 2 both will get
      the same minor number, making Part6 crash, because it cannot create a
      create a device with a duplicated minor:
      [    7.157648] ------------[ cut here ]------------
      [    7.157666] WARNING: at fs/sysfs/dir.c:530 sysfs_add_one+0xbd/0xe0()
      [    7.157669] sysfs: cannot create duplicate filename '/dev/char/81:1'
      [    7.157672] Modules linked in: qtec_xform(+) qt5023_video(+) videobuf2_vmalloc videobuf2_dma_sg videobuf2_memops videobuf2_core gpio_xilinx(+) qtec_white qtec_cmosis(+) qtec_pcie qt5023
      [    7.157694] CPU: 0 PID: 120 Comm: systemd-udevd Not tainted 3.10.0-qtec-standard #8
      [    7.157698] Hardware name: QTechnology QT5022/QT5022, BIOS PM_2.1.0.309 X64 05/23/2013
      [    7.157702]  0000000000000009 ffff8801788358e8 ffffffff8176c487 ffff880178835928
      [    7.157707]  ffffffff8106f6f0 ffff880175759770 00000000ffffffef ffff880175759930
      [    7.157712]  ffff8801788359e8 ffff880178bff000 ffff880175759930 ffff880178835988
      [    7.157718] Call Trace:
      [    7.157728]  [<ffffffff8176c487>] dump_stack+0x19/0x1b
      [    7.157735]  [<ffffffff8106f6f0>] warn_slowpath_common+0x70/0xa0
      [    7.157740]  [<ffffffff8106f7d6>] warn_slowpath_fmt+0x46/0x50
      [    7.157746]  [<ffffffff81324b35>] ? strlcat+0x65/0x90
      [    7.157750]  [<ffffffff811d516d>] sysfs_add_one+0xbd/0xe0
      [    7.157755]  [<ffffffff811d5c6b>] sysfs_do_create_link_sd+0xdb/0x200
      [    7.157760]  [<ffffffff811d5db1>] sysfs_create_link+0x21/0x40
      [    7.157765]  [<ffffffff813e277b>] device_add+0x21b/0x6d0
      [    7.157772]  [<ffffffff813f2985>] ? pm_runtime_init+0xe5/0xf0
      [    7.157776]  [<ffffffff813e2c4e>] device_register+0x1e/0x30
      [    7.157782]  [<ffffffff8153e8c3>] __video_register_device+0x313/0x610
      [    7.157791]  [<ffffffffa00957c5>] qtec_xform_probe+0x465/0x7a4 [qtec_xform]
      [    7.157797]  [<ffffffff813e7b13>] platform_drv_probe+0x43/0x80
      [    7.157802]  [<ffffffff813e531a>] ? driver_sysfs_add+0x7a/0xb0
      [    7.157807]  [<ffffffff813e584b>] driver_probe_device+0x8b/0x3a0
      [    7.157812]  [<ffffffff813e5c0b>] __driver_attach+0xab/0xb0
      [    7.157816]  [<ffffffff813e5b60>] ? driver_probe_device+0x3a0/0x3a0
      [    7.157820]  [<ffffffff813e37fd>] bus_for_each_dev+0x5d/0xa0
      [    7.157825]  [<ffffffff813e529e>] driver_attach+0x1e/0x20
      [    7.157829]  [<ffffffff813e4d3e>] bus_add_driver+0x10e/0x280
      [    7.157833]  [<ffffffffa0099000>] ? 0xffffffffa0098fff
      [    7.157837]  [<ffffffffa0099000>] ? 0xffffffffa0098fff
      [    7.157842]  [<ffffffff813e6317>] driver_register+0x77/0x170
      [    7.157848]  [<ffffffff81151bcc>] ? __vunmap+0x9c/0x110
      [    7.157852]  [<ffffffffa0099000>] ? 0xffffffffa0098fff
      [    7.157857]  [<ffffffff813e7236>] platform_driver_register+0x46/0x50
      [    7.157863]  [<ffffffffa0099010>] qtec_xform_plat_driver_init+0x10/0x12 [qtec_xform]
      [    7.157869]  [<ffffffff810002ea>] do_one_initcall+0xea/0x1a0
      [    7.157875]  [<ffffffff810cf1f1>] load_module+0x1a91/0x2630
      [    7.157880]  [<ffffffff8133bee0>] ? ddebug_proc_show+0xe0/0xe0
      [    7.157887]  [<ffffffff817760f2>] ? page_fault+0x22/0x30
      [    7.157892]  [<ffffffff810cfe7a>] SyS_init_module+0xea/0x140
      [    7.157898]  [<ffffffff8177e5b9>] tracesys+0xd0/0xd5
      [    7.157902] ---[ end trace 660cc3a65a4bf01b ]---
      [    7.157939] __video_register_device: device_register failed
      Signed-off-by: NRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
      Acked-by: NSakari Ailus <sakari.ailus@iki.fi>
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      1056e438