1. 10 Oct, 2019 2 commits
    • Ronald Tschalär's avatar
      drm/bridge: sil_sii8620: make remote control optional. · 710abfe8
      Ronald Tschalär authored
      commit d6abe6df ("drm/bridge: sil_sii8620: do not have a dependency
      of RC_CORE") changed the driver to select both RC_CORE and INPUT.
      However, this causes problems with other drivers, in particular an input
      driver that depends on MFD_INTEL_LPSS_PCI (to be added in a separate
      commit):
      
        drivers/clk/Kconfig:9:error: recursive dependency detected!
        drivers/clk/Kconfig:9:        symbol COMMON_CLK is selected by MFD_INTEL_LPSS
        drivers/mfd/Kconfig:566:      symbol MFD_INTEL_LPSS is selected by MFD_INTEL_LPSS_PCI
        drivers/mfd/Kconfig:580:      symbol MFD_INTEL_LPSS_PCI is implied by KEYBOARD_APPLESPI
        drivers/input/keyboard/Kconfig:73:    symbol KEYBOARD_APPLESPI depends on INPUT
        drivers/input/Kconfig:8:      symbol INPUT is selected by DRM_SIL_SII8620
        drivers/gpu/drm/bridge/Kconfig:83:    symbol DRM_SIL_SII8620 depends on DRM_BRIDGE
        drivers/gpu/drm/bridge/Kconfig:1:     symbol DRM_BRIDGE is selected by DRM_PL111
        drivers/gpu/drm/pl111/Kconfig:1:      symbol DRM_PL111 depends on COMMON_CLK
      
      According to the docs and general consensus, select should only be used
      for non user-visible symbols, but both RC_CORE and INPUT are
      user-visible. Furthermore almost all other references to INPUT
      throughout the kernel config are depends, not selects. For this reason
      the first part of this change reverts the commit.
      
      In order to address the original reason for the commit, namely
      that not all boards use the remote controller functionality and hence
      should not need have to deal with RC_CORE, the second part of this
      change now makes the remote control support in the driver optional and
      contingent on RC_CORE being defined. And with this the hard dependency
      on INPUT also goes away as that is only needed if RC_CORE is defined
      (which in turn already depends on INPUT).
      
      CC: Inki Dae <inki.dae@samsung.com>
      CC: Andrzej Hajda <a.hajda@samsung.com>
      CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>
      Signed-off-by: default avatarRonald Tschalär <ronald@innovation.ch>
      Reviewed-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      [a.hajda: applied fixup provided by Arnd Bergmann]
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190419081926.13567-2-ronald@innovation.ch
      710abfe8
    • Wolfram Sang's avatar
      gpu: drm: bridge: sii9234: convert to devm_i2c_new_dummy_device · 6b564ad7
      Wolfram Sang authored
      Move from the deprecated i2c_new_dummy() to devm_i2c_new_dummy_device().
      We now get an ERRPTR which we use in error handling and we can skip
      removal of the created devices.
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191008203322.3238-1-wsa+renesas@sang-engineering.com
      6b564ad7
  2. 09 Oct, 2019 9 commits
  3. 08 Oct, 2019 8 commits
    • Oleg Vasilev's avatar
      drm/vkms: prime import support · 94e2ec3f
      Oleg Vasilev authored
      Bring dmabuf sharing through implementing prime_import_sg_table callback.
      This will help to validate userspace conformance in prime configurations
      without using any actual hardware (e.g. in the cloud).
      
      This enables kms_prime IGT testcase on vkms.
      
      V3:
       - Rodrigo: remove redundant vkms_gem_create_private
      V2:
       - Rodrigo: styleguide + return code check
      
      Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Simon Ser <simon.ser@intel.com>
      Tested-by: default avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Reviewed-by: default avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Signed-off-by: default avatarOleg Vasilev <oleg.vasilev@intel.com>
      Signed-off-by: default avatarOleg Vasilev <omrigann@gmail.com>
      Signed-off-by: default avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190930155924.21845-1-oleg.vasilev@intel.com
      94e2ec3f
    • Rodrigo Siqueira's avatar
      drm/drm_vblank: Change EINVAL by the correct errno · aed6105b
      Rodrigo Siqueira authored
      For historical reasons, the function drm_wait_vblank_ioctl always return
      -EINVAL if something gets wrong. This scenario limits the flexibility
      for the userspace to make detailed verification of any problem and take
      some action. In particular, the validation of “if (!dev->irq_enabled)”
      in the drm_wait_vblank_ioctl is responsible for checking if the driver
      support vblank or not. If the driver does not support VBlank, the
      function drm_wait_vblank_ioctl returns EINVAL, which does not represent
      the real issue; this patch changes this behavior by return EOPNOTSUPP.
      Additionally, drm_crtc_get_sequence_ioctl and
      drm_crtc_queue_sequence_ioctl, also returns EINVAL if vblank is not
      supported; this patch also changes the return value to EOPNOTSUPP in
      these functions. Lastly, these functions are invoked by libdrm, which is
      used by many compositors; because of this, it is important to check if
      this change breaks any compositor. In this sense, the following projects
      were examined:
      
      * Drm-hwcomposer
      * Kwin
      * Sway
      * Wlroots
      * Wayland
      * Weston
      * Mutter
      * Xorg (67 different drivers)
      
      For each repository the verification happened in three steps:
      
      * Update the main branch
      * Look for any occurrence of "drmCrtcQueueSequence",
        "drmCrtcGetSequence", and "drmWaitVBlank" with the command git grep -n
        "STRING".
      * Look in the git history of the project with the command
      git log -S<STRING>
      
      None of the above projects validate the use of EINVAL when using
      drmWaitVBlank(), which make safe, at least for these projects, to change
      the return values. On the other hand, mesa and xserver project uses
      drmCrtcQueueSequence() and drmCrtcGetSequence(); this change is harmless
      for both projects.
      
      Change since V5 (Pekka Paalanen):
       - Check if the change also affects Mutter
      
      Change since V4 (Daniel):
       - Also return EOPNOTSUPP in drm_crtc_[get|queue]_sequence_ioctl
      
      Change since V3:
       - Return EINVAL for _DRM_VBLANK_SIGNAL (Daniel)
      
      Change since V2:
       Daniel Vetter and Chris Wilson
       - Replace ENOTTY by EOPNOTSUPP
       - Return EINVAL if the parameters are wrong
      
      Cc: Keith Packard <keithp@keithp.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
      Signed-off-by: default avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Acked-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191002140516.adeyj3htylimmlmg@smtp.gmail.com
      aed6105b
    • Rodrigo Siqueira's avatar
      drm: Add link training repeaters addresses · 55fd0e20
      Rodrigo Siqueira authored
      DP 1.3 specification introduces the Link Training-tunable PHY Repeater,
      and DP 1.4* supplemented it with new features. In the 1.4a spec, it was
      introduced some innovations to make handy to add support for systems
      with Thunderbolt or other repeater devices.
      
      It is important to highlight that DP specification had some updates from
      1.3 through 1.4a. In particular, DP 1.4 defines Repeater_FEC_CAPABILITY
      at the address 0xf0004, and DP 1.4a redefined the address 0xf0004 to
      DP_MAX_LANE_COUNT_PHY_REPEATER.
      
      Changes since V4:
      - Update commit message
      - Fix misleading comments related to the spec version
      Changes since V3:
      - Replace spaces by tabs
      Changes since V2:
      - Drop the kernel-doc comment
      - Reorder LTTPR according to register offset
      Changes since V1:
      - Adjusts registers names to be aligned with spec and the rest of the
        file
      - Update spec comment from 1.4 to 1.4a
      
      Cc: Abdoulaye Berthe <Abdoulaye.Berthe@amd.com>
      Cc: Harry Wentland <harry.wentland@amd.com>
      Cc: Leo Li <sunpeng.li@amd.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Manasi Navare <manasi.d.navare@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
      Signed-off-by: default avatarAbdoulaye Berthe <Abdoulaye.Berthe@amd.com>
      Reviewed-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
      Signed-off-by: default avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190909212144.deeomlsqihwg4l3y@outlook.office365.com
      55fd0e20
    • Sam Ravnborg's avatar
      drm: delete drmP.h + drm_os_linux.h · 4e98f871
      Sam Ravnborg authored
      There is finally no more users left in the kernel of drmP.h
      and drm_os_linux.h (drmP.h was the only user left).
      Delete the header files and delete the corresponding todo entry.
      
      When we started this quest there was more than 700 users of drmP.h.
      And drmP.h was a huge cover-it-all header file.
      
      Daniel Vetter is the one that followed the work from start
      to the end and in between many people have contributed to the
      removal process - thanks to everyone!
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Reviewed-by: default avatarSean Paul <sean@poorly.run>
      Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191007171224.1581-3-sam@ravnborg.org
      4e98f871
    • Sam Ravnborg's avatar
      drm_dp_cec: drop use of drmP.h · 0aa32f8e
      Sam Ravnborg authored
      drmP.h is deprecated and will be deleted.
      Replace use with proper header.
      
      Divide header includes in blocks while touching these.
      
      Build tested with various archtectures and configs.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Fixes: ae85b0df ("drm_dp_cec: add connector info support.")
      Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
      Reviewed-by: default avatarSean Paul <sean@poorly.run>
      Acked-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Cc: Dariusz Marcinkiewicz <darekm@google.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191007171224.1581-2-sam@ravnborg.org
      0aa32f8e
    • Wen He's avatar
      drm/arm/mali-dp: Add display QoS interface configuration for Mali DP500 · d298e6a2
      Wen He authored
      Configure the display Quality of service (QoS) levels priority if the
      optional property node "arm,malidp-aqros-value" is defined in DTS file.
      
      QoS signaling using AQROS and AWQOS AXI interface signals, the AQROS is
      driven from the "RQOS" register, so needed to program the RQOS register
      to avoid the high resolutions flicker issue on the LS1028A platform.
      Signed-off-by: default avatarWen He <wen.he_1@nxp.com>
      Signed-off-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190910075913.17650-2-wen.he_1@nxp.com
      d298e6a2
    • Sean Paul's avatar
      drm: damage_helper: Fix race checking plane->state->fb · 354c2d31
      Sean Paul authored
      Since the dirtyfb ioctl doesn't give us any hints as to which plane is
      scanning out the fb it's marking as damaged, we need to loop through
      planes to find it.
      
      Currently we just reach into plane state and check, but that can race
      with another commit changing the fb out from under us. This patch locks
      the plane before checking the fb and will release the lock if the plane
      is not displaying the dirty fb.
      
      Fixes: b9fc5e01 ("drm: Add helper to implement legacy dirtyfb")
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Deepak Rawat <drawat@vmware.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Thomas Hellstrom <thellstrom@vmware.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <maxime.ripard@bootlin.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: dri-devel@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v5.0+
      Reported-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190904202938.110207-1-sean@poorly.run
      354c2d31
    • Jagan Teki's avatar
      drm/sun4i: dsi: Fix video start delay computation · 9a197c86
      Jagan Teki authored
      The LCD timing definitions between Linux DRM vs Allwinner are different,
      below diagram shows this clear differences.
      
                 Active                 Front           Sync           Back
                 Region                 Porch                          Porch
      <-----------------------><----------------><--------------><-------------->
        //////////////////////|
       ////////////////////// |
      //////////////////////  |..................                ................
                                                 ________________
      <----- [hv]display ----->
      <------------- [hv]sync_start ------------>
      <--------------------- [hv]sync_end ---------------------->
      <-------------------------------- [hv]total ------------------------------>
      
      <----- lcd_[xy] -------->		  <- lcd_[hv]spw ->
      					  <---------- lcd_[hv]bp --------->
      <-------------------------------- lcd_[hv]t ------------------------------>
      
      The DSI driver misinterpreted the vbp term from the BSP code to refer
      only to the backporch, when in fact it was backporch + sync. Thus the
      driver incorrectly used the vertical front porch plus sync in its
      calculation of the DRQ set bit value, when it should not have included
      the sync timing.
      
      Including additional sync timings leads to flip_done timed out as:
      
      WARNING: CPU: 0 PID: 31 at drivers/gpu/drm/drm_atomic_helper.c:1429 drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0
      [CRTC:46:crtc-0] vblank wait timed out
      Modules linked in:
      CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted 5.1.0-next-20190514-00029-g09e5b0ed0a58 #18
      Hardware name: Allwinner sun8i Family
      Workqueue: events deferred_probe_work_func
      [<c010ed54>] (unwind_backtrace) from [<c010b76c>] (show_stack+0x10/0x14)
      [<c010b76c>] (show_stack) from [<c0688c70>] (dump_stack+0x84/0x98)
      [<c0688c70>] (dump_stack) from [<c011d9e4>] (__warn+0xfc/0x114)
      [<c011d9e4>] (__warn) from [<c011da40>] (warn_slowpath_fmt+0x44/0x68)
      [<c011da40>] (warn_slowpath_fmt) from [<c040cd50>] (drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0)
      [<c040cd50>] (drm_atomic_helper_wait_for_vblanks.part.1) from [<c040e694>] (drm_atomic_helper_commit_tail_rpm+0x5c/0x6c)
      [<c040e694>] (drm_atomic_helper_commit_tail_rpm) from [<c040e4dc>] (commit_tail+0x40/0x6c)
      [<c040e4dc>] (commit_tail) from [<c040e5cc>] (drm_atomic_helper_commit+0xbc/0x128)
      [<c040e5cc>] (drm_atomic_helper_commit) from [<c0411b64>] (restore_fbdev_mode_atomic+0x1cc/0x1dc)
      [<c0411b64>] (restore_fbdev_mode_atomic) from [<c04156f8>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0)
      [<c04156f8>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c0415774>] (drm_fb_helper_set_par+0x30/0x54)
      [<c0415774>] (drm_fb_helper_set_par) from [<c03ad450>] (fbcon_init+0x560/0x5ac)
      [<c03ad450>] (fbcon_init) from [<c03eb8a0>] (visual_init+0xbc/0x104)
      [<c03eb8a0>] (visual_init) from [<c03ed1b8>] (do_bind_con_driver+0x1b0/0x390)
      [<c03ed1b8>] (do_bind_con_driver) from [<c03ed780>] (do_take_over_console+0x13c/0x1c4)
      [<c03ed780>] (do_take_over_console) from [<c03ad800>] (do_fbcon_takeover+0x74/0xcc)
      [<c03ad800>] (do_fbcon_takeover) from [<c013c9c8>] (notifier_call_chain+0x44/0x84)
      [<c013c9c8>] (notifier_call_chain) from [<c013cd20>] (__blocking_notifier_call_chain+0x48/0x60)
      [<c013cd20>] (__blocking_notifier_call_chain) from [<c013cd50>] (blocking_notifier_call_chain+0x18/0x20)
      [<c013cd50>] (blocking_notifier_call_chain) from [<c03a6e44>] (register_framebuffer+0x1e0/0x2f8)
      [<c03a6e44>] (register_framebuffer) from [<c04153c0>] (__drm_fb_helper_initial_config_and_unlock+0x2fc/0x50c)
      [<c04153c0>] (__drm_fb_helper_initial_config_and_unlock) from [<c04158c8>] (drm_fbdev_client_hotplug+0xe8/0x1b8)
      [<c04158c8>] (drm_fbdev_client_hotplug) from [<c0415a20>] (drm_fbdev_generic_setup+0x88/0x118)
      [<c0415a20>] (drm_fbdev_generic_setup) from [<c043f060>] (sun4i_drv_bind+0x128/0x160)
      [<c043f060>] (sun4i_drv_bind) from [<c044b598>] (try_to_bring_up_master+0x164/0x1a0)
      [<c044b598>] (try_to_bring_up_master) from [<c044b668>] (__component_add+0x94/0x140)
      [<c044b668>] (__component_add) from [<c0445e1c>] (sun6i_dsi_probe+0x144/0x234)
      [<c0445e1c>] (sun6i_dsi_probe) from [<c0452ef4>] (platform_drv_probe+0x48/0x9c)
      [<c0452ef4>] (platform_drv_probe) from [<c04512cc>] (really_probe+0x1dc/0x2c8)
      [<c04512cc>] (really_probe) from [<c0451518>] (driver_probe_device+0x60/0x160)
      [<c0451518>] (driver_probe_device) from [<c044f7a4>] (bus_for_each_drv+0x74/0xb8)
      [<c044f7a4>] (bus_for_each_drv) from [<c045107c>] (__device_attach+0xd0/0x13c)
      [<c045107c>] (__device_attach) from [<c0450474>] (bus_probe_device+0x84/0x8c)
      [<c0450474>] (bus_probe_device) from [<c0450900>] (deferred_probe_work_func+0x64/0x90)
      [<c0450900>] (deferred_probe_work_func) from [<c0135970>] (process_one_work+0x204/0x420)
      [<c0135970>] (process_one_work) from [<c013690c>] (worker_thread+0x274/0x5a0)
      [<c013690c>] (worker_thread) from [<c013b3d8>] (kthread+0x11c/0x14c)
      [<c013b3d8>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
      Exception stack(0xde539fb0 to 0xde539ff8)
      9fa0:                                     00000000 00000000 00000000 00000000
      9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
      ---[ end trace 495200a78b24980e ]---
      random: fast init done
      [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:46:crtc-0] flip_done timed out
      [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:48:DSI-1] flip_done timed out
      [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:30:plane-0] flip_done timed out
      
      With the terms(as described in above diagram) fixed, the panel
      displays correctly without any timeouts.
      Tested-by: default avatarMerlijn Wajer <merlijn@wizzup.org>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      Signed-off-by: default avatarIcenowy Zheng <icenowy@aosc.io>
      Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191006160303.24413-2-icenowy@aosc.io
      9a197c86
  4. 07 Oct, 2019 5 commits
  5. 05 Oct, 2019 2 commits
  6. 04 Oct, 2019 14 commits