1. 08 Oct, 2019 6 commits
    • 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
  2. 07 Oct, 2019 5 commits
  3. 05 Oct, 2019 2 commits
  4. 04 Oct, 2019 25 commits
  5. 03 Oct, 2019 2 commits