01 Aug, 2019

2 commits

  • Generic framebuffer emulation uses a shadow buffer for framebuffers with
    dirty() function. If drivers want to use the shadow FB without such a
    function, they can now set prefer_shadow or prefer_shadow_fbdev in their
    mode_config structures. The former flag is exported to userspace, the
    latter flag is fbdev-only.

    v3:
    * only schedule dirty worker if fbdev uses shadow fb
    * test shadow fb settings with boolean operators
    * use bool for struct drm_mode_config.prefer_shadow_fbdev
    * fix documentation comments

    Signed-off-by: Thomas Zimmermann
    Reviewed-by: Noralf Trønnes
    Tested-by: Noralf Trønnes
    Link: https://patchwork.freedesktop.org/patch/315834/
    Signed-off-by: Gerd Hoffmann

    Thomas Zimmermann
     
  • DRM clients, such as the fbdev emulation, have their buffer objects
    mapped by default. Mapping a buffer implicitly prevents its relocation.
    Hence, the buffer may permanently consume video memory while it's
    allocated. This is a problem for drivers of low-memory devices, such as
    ast, mgag200 or older framebuffer hardware, which will then not have
    enough memory to display other content (e.g., X11).

    This patch introduces drm_client_buffer_vmap() and _vunmap(). Internal
    DRM clients can use these functions to unmap and remap buffer objects
    as needed.

    There's no reference counting for vmap operations. Callers are expected
    to either keep buffers mapped (as it is now), or call vmap and vunmap
    in pairs around code that accesses the mapped memory.

    v2:
    * remove several duplicated NULL-pointer checks
    v3:
    * style and typo fixes

    Signed-off-by: Thomas Zimmermann
    Reviewed-by: Noralf Trønnes
    Link: https://patchwork.freedesktop.org/patch/315831/
    Signed-off-by: Gerd Hoffmann

    Thomas Zimmermann
     

20 Jul, 2019

1 commit

  • Pull drm fixes from Daniel Vetter:
    "Dave is back in shape, but now family got it so I'm doing the pull.
    Two things worthy of note:

    - nouveau feature pull was way too late, Dave&me decided to not take
    that, so Ben spun up a pull with just the fixes.

    - after some chatting with the arm display maintainers we decided to
    change a bit how that's maintained, for more oversight/review and
    cross vendor collab.

    More details below:

    nouveau:
    - bugfixes
    - TU116 enabling (minor iteration) :w

    amdgpu:
    - large pile of fixes for new hw support this release (navi, vega20)
    - audio hotplug fix
    - bunch of corner cases and small fixes all over for amdgpu/kfd

    komeda:
    - back out some new properties (from this merge window) that needs
    more pondering.

    bochs:
    - fb pitch setup

    core:
    - a new panel quirk
    - misc fixes"

    * tag 'drm-next-2019-07-19' of git://anongit.freedesktop.org/drm/drm: (73 commits)
    drm/nouveau/secboot/gp102-: remove WAR for SEC2 RTOS start bug
    drm/nouveau/flcn/gp102-: improve implementation of bind_context() on SEC2/GSP
    drm/nouveau: fix memory leak in nouveau_conn_reset()
    drm/nouveau/dmem: missing mutex_lock in error path
    drm/nouveau/hwmon: return EINVAL if the GPU is powered down for sensors reads
    drm/nouveau: fix bogus GPL-2 license header
    drm/nouveau: fix bogus GPL-2 license header
    drm/nouveau/i2c: Enable i2c pads & busses during preinit
    drm/nouveau/disp/tu102-: wire up scdc parameter setter
    drm/nouveau/core: recognise TU116 chipset
    drm/nouveau/kms: disallow dual-link harder if hdmi connection detected
    drm/nouveau/disp/nv50-: fix center/aspect-corrected scaling
    drm/nouveau/disp/nv50-: force scaler for any non-default LVDS/eDP modes
    drm/nouveau/mcp89/mmu: Use mcp77_mmu_new instead of g84_mmu_new on MCP89.
    drm/amd/display: init res_pool dccg_ref, dchub_ref with xtalin_freq
    drm/amdgpu/pm: remove check for pp funcs in freq sysfs handlers
    drm/amd/display: Force uclk to max for every state
    drm/amdkfd: Remove GWS from process during uninit
    drm/amd/amdgpu: Fix offset for vmid selection in debugfs interface
    drm/amd/powerplay: update vega20 driver if to fit latest SMU firmware
    ...

    Linus Torvalds
     

18 Jul, 2019

1 commit

  • …drm-misc into drm-next

    Pull request for drm-misc-fixes-next for v5.3:
    - Revert properties exposed in komeda that need improvement before they become ABI.
    - Only add modes from the cmdline if they are valid.
    - Add orientation quirk for GPD MicroPC.
    - Reduce stack usage in drm selftests.
    - Fix bochs framebuffer setup.

    Signed-off-by: Dave Airlie <airlied@redhat.com>

    From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/e6b84ce4-2728-fb02-87c1-6a6b87703c0b@linux.intel.com

    Dave Airlie
     

16 Jul, 2019

2 commits

  • Pull drm updates from Dave Airlie:
    "The biggest thing in this is the AMD Navi GPU support, this again
    contains a bunch of header files that are large. These are the new AMD
    RX5700 GPUs that just recently became available.

    New drivers:
    - ST-Ericsson MCDE driver
    - Ingenic JZ47xx SoC

    UAPI change:
    - HDR source metadata property

    Core:
    - HDR inforframes and EDID parsing
    - drm hdmi infoframe unpacking
    - remove prime sg_table caching into dma-buf
    - New gem vram helpers to reduce driver code
    - Lots of drmP.h removal
    - reservation fencing fix
    - documentation updates
    - drm_fb_helper_connector removed
    - mode name command handler rewrite

    fbcon:
    - Remove the fbcon notifiers

    ttm:
    - forward progress fixes

    dma-buf:
    - make mmap call optional
    - debugfs refcount fixes
    - dma-fence free with pending signals fix
    - each dma-buf gets an inode

    Panels:
    - Lots of additional panel bindings

    amdgpu:
    - initial navi10 support
    - avoid hw reset
    - HDR metadata support
    - new thermal sensors for vega asics
    - RAS fixes
    - use HMM rather than MMU notifier
    - xgmi topology via kfd
    - SR-IOV fixes
    - driver reload fixes
    - DC use a core bpc attribute
    - Aux fixes for DC
    - Bandwidth calc updates for DC
    - Clock handling refactor
    - kfd VEGAM support

    vmwgfx:
    - Coherent memory support changes

    i915:
    - HDR Support
    - HDMI i2c link
    - Icelake multi-segmented gamma support
    - GuC firmware update
    - Mule Creek Canyon PCH support for EHL
    - EHL platform updtes
    - move i915.alpha_support to i915.force_probe
    - runtime PM refactoring
    - VBT parsing refactoring
    - DSI fixes
    - struct mutex dependency reduction
    - GEM code reorg

    mali-dp:
    - Komeda driver features

    msm:
    - dsi vs EPROBE_DEFER fixes
    - msm8998 snapdragon 835 support
    - a540 gpu support
    - mdp5 and dpu interconnect support

    exynos:
    - drmP.h removal

    tegra:
    - misc fixes

    tda998x:
    - audio support improvements
    - pixel repeated mode support
    - quantisation range handling corrections
    - HDMI vendor info fix

    armada:
    - interlace support fix
    - overlay/video plane register handling refactor
    - add gamma support

    rockchip:
    - RX3328 support

    panfrost:
    - expose perf counters via hidden ioctls

    vkms:
    - enumerate CRC sources list

    ast:
    - rework BO handling

    mgag200:
    - rework BO handling

    dw-hdmi:
    - suspend/resume support

    rcar-du:
    - R8A774A1 Soc Support
    - LVDS dual-link mode support
    - Additional formats
    - Misc fixes

    omapdrm:
    - DSI command mode display support

    stm
    - fb modifier support
    - runtime PM support

    sun4i:
    - use vmap ops

    vc4:
    - binner bo binding rework

    v3d:
    - compute shader support
    - resync/sync fixes
    - job management refactoring

    lima:
    - NULL pointer in irq handler fix
    - scheduler default timeout

    virtio:
    - fence seqno support
    - trace events

    bochs:
    - misc fixes

    tc458767:
    - IRQ/HDP handling

    sii902x:
    - HDMI audio support

    atmel-hlcdc:
    - misc fixes

    meson:
    - zpos support"

    * tag 'drm-next-2019-07-16' of git://anongit.freedesktop.org/drm/drm: (1815 commits)
    Revert "Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next"
    Revert "mm: adjust apply_to_pfn_range interface for dropped token."
    mm: adjust apply_to_pfn_range interface for dropped token.
    drm/amdgpu/navi10: add uclk activity sensor
    drm/amdgpu: properly guard the generic discovery code
    drm/amdgpu: add missing documentation on new module parameters
    drm/amdgpu: don't invalidate caches in RELEASE_MEM, only do the writeback
    drm/amd/display: avoid 64-bit division
    drm/amdgpu/psp11: simplify the ucode register logic
    drm/amdgpu: properly guard DC support in navi code
    drm/amd/powerplay: vega20: fix uninitialized variable use
    drm/amd/display: dcn20: include linux/delay.h
    amdgpu: make pmu support optional
    drm/amd/powerplay: Zero initialize current_rpm in vega20_get_fan_speed_percent
    drm/amd/powerplay: Zero initialize freq in smu_v11_0_get_current_clk_freq
    drm/amd/powerplay: Use memset to initialize metrics structs
    drm/amdgpu/mes10.1: Fix header guard
    drm/amd/powerplay: add temperature sensor support for navi10
    drm/amdgpu: fix scheduler timeout calc
    drm/amdgpu: Prepare for hmm_range_register API change (v2)
    ...

    Linus Torvalds
     
  • This reverts commit 031e610a6a21448a63dff7a0416e5e206724caac, reversing
    changes made to 52d2d44eee8091e740d0d275df1311fb8373c9a9.

    The mm changes in there we premature and not fully ack or reviewed by core mm folks,
    I dropped the ball by merging them via this tree, so lets take em all back out.

    Signed-off-by: Dave Airlie

    Dave Airlie
     

01 Jul, 2019

1 commit

  • Putting a large drm_connector object on the stack can lead to warnings
    in some configuration, such as:

    drivers/gpu/drm/selftests/test-drm_cmdline_parser.c:18:12: error: stack frame size of 1040 bytes in function 'drm_cmdline_test_res' [-Werror,-Wframe-larger-than=]
    static int drm_cmdline_test_res(void *ignored)

    Since the object is never modified, just declare it as 'static const'
    and allow this to be passed down.

    Fixes: b7ced38916a9 ("drm/selftests: Add command line parser selftests")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/20190628121712.1928142-1-arnd@arndb.de

    Arnd Bergmann
     

25 Jun, 2019

2 commits

  • Backmerge drm-next and fix up conflicts due to drmP.h removal.

    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • DisplayID blocks allow embedding of CEA blocks. The payloads are
    identical to traditional top level CEA extension blocks, but the header
    is slightly different.

    This change allows the CEA parser to find a CEA block inside a DisplayID
    block. Additionally, it adds support for parsing the embedded CTA
    header. No further changes are necessary due to payload parity.

    This change fixes audio support for the Valve Index HMD.

    Signed-off-by: Andres Rodriguez
    Reviewed-by: Dave Airlie
    Cc: Jani Nikula
    Cc: # v4.15
    Signed-off-by: Dave Airlie
    Link: https://patchwork.freedesktop.org/patch/msgid/20190619180901.17901-1-andresx7@gmail.com

    Andres Rodriguez
     

22 Jun, 2019

2 commits


21 Jun, 2019

3 commits

  • drm-misc-next for v5.3:

    UAPI Changes:
    - Give each dma-buf their own inode, add DMA_BUF_SET_NAME ioctl and a show_fdinfo handler.

    Cross-subsystem Changes:
    - Pull in the topic/remove-fbcon-notifiers branch:
    * remove fbdev notifier usage for fbcon, as prep work to clean up the fbcon locking
    * assorted locking checks in vt/console code
    * assorted notifier and cleanups in fbdev and backlight code

    Core Changes:
    - Make drm_debugfs_create_files() never fail.
    - add debug print to update_vblank_count.
    - Add DP_DPCD_QUIRK_NO_SINK_COUNT quirk.
    - Add todo item for drm_gem_objects.
    - Unexport drm_gem_(un)pin/v(un)map.
    - Document struct drm_cmdline_mode.
    - Rewrite the command handler for mode names, and add support to specify
    rotation, reflection and overscan. With a new selftest! :)
    - Fixes to drm/client for improving rotation support, and fixing variable scope.
    - Small fixes to self refresh helper.

    Driver Changes:
    - Add rockchip RK3328 support.
    - Assorted driver fixes to rockchip, vc4, rcar-du, vkms.
    - Expose panfrost performance counters through unstable ioctl's, hidden
    behind a module parameter.
    - Enumerate CRC sources list in vkms.
    - Add a basic kms driver for the Ingenic JZ47xx SoC, which will be expanded
    soon with more advanced features.
    - Suspend/resume fix for stm.

    Signed-off-by: Dave Airlie

    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/18e22ec1-adf3-3a75-34a3-9fe09a91eef5@linux.intel.com

    Dave Airlie
     
  • - The coherent memory changes including mm changes.
    - Some vmwgfx debug fixes.
    - Removal of vmwgfx legacy security checks.

    Signed-off-by: Dave Airlie
    From: Thomas Hellstrom
    Link: https://patchwork.freedesktop.org/patch/msgid/20190619072531.4026-1-thomas@shipmail.org

    Dave Airlie
     
  • Signed-off-by: Huang Rui
    Reviewed-by: Alex Deucher
    Reviewed-by: Hawking Zhang
    Signed-off-by: Alex Deucher

    Huang Rui
     

19 Jun, 2019

10 commits

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • remove-fbcon-notifiers topic branch is based on rc4, so we need a fresh
    backmerge of drm-next to pull it in.

    Signed-off-by: Maarten Lankhorst

    Maarten Lankhorst
     
  • During the connector reset, if that connector has a TV property, it needs
    to be reset to the value provided on the command line.

    Provide a helper to do that.

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/84a7b657f09303a2850e1cc79e68f623547f3fdd.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • Properly configuring the overscan properties might be needed for the
    initial setup of the framebuffer for display that still have overscan.
    Let's allow for more properties on the kernel command line to setup each
    margin.

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/e481f1628e3768ca49226ec2115cfa4dfcbd5e4c.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • The TV margins has been defined as a structure inside the
    drm_connector_state structure so far. However, we will need it in other
    structures as well, so let's move that structure definition so that it can
    be reused.

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/38b773b03f15ec7a135cdf8f7db669e5ada20cf2.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • Rotations and reflections setup are needed in some scenarios to initialise
    properly the initial framebuffer. Some drivers already had a bunch of
    quirks to deal with this, such as either a private kernel command line
    parameter (omapdss) or on the device tree (various panels).

    In order to accomodate this, let's create a video mode parameter to deal
    with the rotation and reflexion.

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/777da16e42db757c1f5b414b5ca34507097fed5c.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • The drm subsystem also uses the video= kernel parameter, and in the
    documentation refers to the fbdev documentation for that parameter.

    However, that documentation also says that instead of giving the mode using
    its resolution we can also give a name. However, DRM doesn't handle that
    case at the moment. Even though in most case it shouldn't make any
    difference, it might be useful for analog modes, where different standards
    might have the same resolution, but still have a few different parameters
    that are not encoded in the modes (NTSC vs NTSC-J vs PAL-M for example).

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/18443e0c3bdbbd16cea4ec63bc7f2079b820b43b.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • The drm_client_panel_rotation function has been used so far to set the
    default rotation based on the panel orientation.

    However, we can have more sources of information to make that decision,
    starting with the command line that we will introduce later in this series.

    Change the name to remove the panel mention.

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/8cb0f0d9569d41685bbf30a1538da6578cd2769b.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • The struct drm_cmdline_mode holds the result of the command line parsers.
    However, it wasn't documented so far, so let's do that.

    Reviewed-by: Noralf Trønnes
    Signed-off-by: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/963c893c16c6a25fc469b53c726f493d99bdc578.1560783090.git-series.maxime.ripard@bootlin.com

    Maxime Ripard
     
  • Maarten needs -rc4 backmerged so he can pull in the fbcon notifier
    removal topic branch into drm-misc-next.

    Signed-off-by: Daniel Vetter

    Daniel Vetter
     

18 Jun, 2019

2 commits

  • With the vmwgfx dirty tracking, the default TTM fault handler is not
    completely sufficient (vmwgfx need to modify the vma->vm_flags member,
    and also needs to restrict the number of prefaults).

    We also want to replicate the new ttm_bo_vm_reserve() functionality

    So start turning the TTM vm code into helpers: ttm_bo_vm_fault_reserved()
    and ttm_bo_vm_reserve(), and provide a default TTM fault handler for other
    drivers to use.

    Cc: "Christian König"

    Signed-off-by: Thomas Hellstrom
    Reviewed-by: "Christian König" #v1

    Thomas Hellstrom
     
  • Add a pointer to the struct vm_operations_struct in the bo_device, and
    assign that pointer to the default value currently used.

    The driver can then optionally modify that pointer and the new value
    can be used for each new vma created.

    Cc: "Christian König"

    Signed-off-by: Thomas Hellstrom
    Reviewed-by: Christian König

    Thomas Hellstrom
     

17 Jun, 2019

2 commits


15 Jun, 2019

1 commit

  • CH7511 eDP->LVDS bridge doesn't seem to set SINK_COUNT properly
    causing i915 to detect it as disconnected. Add a quirk to ignore
    SINK_COUNT on these devices.

    Cc: David S.
    Cc: Peteris Rudzusiks
    Tested-by: Peteris Rudzusiks
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105406
    Signed-off-by: Ville Syrjälä
    Link: https://patchwork.freedesktop.org/patch/msgid/20190528140650.19230-1-ville.syrjala@linux.intel.com
    Acked-by: Jani Nikula #irc

    Ville Syrjälä
     

14 Jun, 2019

7 commits

  • drm-misc-next for v5.3:

    UAPI Changes:

    Cross-subsystem Changes:
    - Add code to signal all dma-fences when freed with pending signals.
    - Annotate reservation object access in CONFIG_DEBUG_MUTEXES

    Core Changes:
    - Assorted documentation fixes.
    - Use irqsave/restore spinlock to add crc entry.
    - Move code around to drm_client, for internal modeset clients.
    - Make drm_crtc.h and drm_debugfs.h self-contained.
    - Remove drm_fb_helper_connector.
    - Add bootsplash to todo.
    - Fix lock ordering in pan_display_legacy.
    - Support pinning buffers to current location in gem-vram.
    - Remove the now unused locking functions from gem-vram.
    - Remove the now unused kmap-object argument from vram helpers.
    - Stop checking return value of debugfs_create.
    - Add atomic encoder enable/disable helpers.
    - pass drm_atomic_state to atomic connector check.
    - Add atomic support for bridge enable/disable.
    - Add self refresh helpers to core.

    Driver Changes:
    - Add extra delay to make MTP SDM845 work.
    - Small fixes to virtio, vkms, sii902x, sii9234, ast, mcde, analogix, rockchip.
    - Add zpos and ?BGR8888 support to meson.
    - More removals of drm_os_linux and drmP headers for amd, radeon, sti, r128, r128, savage, sis.
    - Allow synopsis to unwedge the i2c hdmi bus.
    - Add orientation quirks for GPD panels.
    - Edid cleanups and fixing handling for edid < 1.2.
    - Add runtime pm to stm.
    - Handle s/r in dw-hdmi.
    - Add hooks for power on/off to dsi for stm.
    - Remove virtio dirty tracking code, done in drm core.
    - Rework BO handling in ast and mgag200.

    Tiny conflict in drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c,
    needed #include to make it compile.

    Signed-off-by: Daniel Vetter
    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/0e01de30-9797-853c-732f-4a5bd6e61445@linux.intel.com

    Daniel Vetter
     
  • Sean writes:

    meson: A few G12A fixes across the driver (Neil)
    quirks: A couple quirks for GPD devices (Hans)
    gem_shmem: Use writecombine when vmapping non-dmabuf BOs (Boris)
    panfrost: A couple tweaks to requiring devfreq (Neil & Ezequiel)
    edid: Ensure we return the override mode when ddc probe fails (Jani)

    Cc: Hans de Goede
    Cc: Neil Armstrong
    Cc: Boris Brezillon
    Cc: Ezequiel Garcia
    Cc: Jani Nikula
    Signed-off-by: Daniel Vetter
    From: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190613143946.GA24233@art_vandelay

    Daniel Vetter
     
  • This patch adds a new drm helper library to help drivers implement
    self refresh. Drivers choosing to use it will register crtcs and
    will receive callbacks when it's time to enter or exit self refresh
    mode.

    In its current form, it has a timer which will trigger after a
    driver-specified amount of inactivity. When the timer triggers, the
    helpers will submit a new atomic commit to shut the refreshing pipe
    off. On the next atomic commit, the drm core will revert the self
    refresh state and bring everything back up to be actively driven.

    From the driver's perspective, this works like a regular disable/enable
    cycle. The driver need only check the 'self_refresh_active' state in
    crtc_state. It should initiate self refresh mode on the panel and enter
    an off or low-power state.

    Changes in v2:
    - s/psr/self_refresh/ (Daniel)
    - integrated the psr exit into the commit that wakes it up (Jose/Daniel)
    - made the psr state per-crtc (Jose/Daniel)
    Changes in v3:
    - Remove the self_refresh_(active|changed) from connector state (Daniel)
    - Simplify loop in drm_self_refresh_helper_alter_state (Daniel)
    - Improve self_refresh_aware comment (Daniel)
    - s/self_refresh_state/self_refresh_data/ (Daniel)
    Changes in v4:
    - Move docbook location below panel (Daniel)
    - Improve docbook with references and more detailed explanation (Daniel)
    - Instead of register/unregister, use init/cleanup (Daniel)
    Changes in v5:
    - Resolved conflict in drm_atomic_helper.c #include block
    - Resolved conflict in rst with HDCP helper docs
    Changes in v6:
    - Fix include ordering, clean up forward declarations (Sam)

    Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190228210939.83386-2-sean@poorly.run
    Link to v2: https://patchwork.freedesktop.org/patch/msgid/20190326204509.96515-1-sean@poorly.run
    Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-6-sean@poorly.run
    Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-6-sean@poorly.run
    Link to v5: https://patchwork.freedesktop.org/patch/msgid/20190611160844.257498-6-sean@poorly.run

    Cc: Daniel Vetter
    Cc: Jose Souza
    Cc: Zain Wang
    Cc: Tomasz Figa
    Cc: Ville Syrjälä
    Cc: Sam Ravnborg
    Tested-by: Heiko Stuebner
    Reviewed-by: Daniel Vetter
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190612145026.191846-1-sean@poorly.run

    Sean Paul
     
  • Everyone who implements connector_helper_funcs->atomic_check reaches
    into the connector state to get the atomic state. Instead of continuing
    this pattern, change the callback signature to just give atomic state
    and let the driver determine what it does and does not need from it.

    Eventually all atomic functions should do this, but that's just too much
    busy work for me.

    Changes in v3:
    - Added to the set
    Changes in v4:
    - None
    Changes in v5:
    - intel_digital_connector_atomic_check declaration moved to i915_atomic.h

    Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-5-sean@poorly.run
    Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-5-sean@poorly.run

    Cc: Daniel Vetter
    Cc: Ville Syrjälä
    Cc: Jani Nikula
    Cc: Joonas Lahtinen
    Cc: Rodrigo Vivi
    Cc: Ben Skeggs
    Cc: Laurent Pinchart
    Cc: Kieran Bingham
    Cc: Eric Anholt
    Tested-by: Heiko Stuebner
    Reviewed-by: Laurent Pinchart [for rcar lvds]
    Acked-by: Daniel Vetter
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190611160844.257498-5-sean@poorly.run

    Sean Paul
     
  • This patch adds atomic variants for all of
    pre_enable/enable/disable/post_disable bridge functions. These will be
    called from the appropriate atomic helper functions. If the bridge
    driver doesn't implement the atomic version of the function, we will
    fall back to the vanilla implementation.

    Note that some drivers call drm_bridge_disable directly, and these cases
    are not covered. It's up to the driver to decide whether to implement
    both atomic_disable and disable, or if it's not necessary.

    Changes in v3:
    - Added to the patchset
    Changes in v4:
    - Fix up docbook references (Daniel)
    Changes in v5:
    - None

    Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-4-sean@poorly.run
    Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-4-sean@poorly.run

    Cc: Daniel Vetter
    Cc: Ville Syrjälä
    Tested-by: Heiko Stuebner
    Reviewed-by: Daniel Vetter
    Reviewed-by: Andrzej Hajda
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190611160844.257498-4-sean@poorly.run

    Sean Paul
     
  • Add functions to the atomic core to retrieve the old and new connectors
    associated with an encoder in a drm_atomic_state. This is useful for
    encoders and bridges that need to access the connector, for instance for
    the drm_display_info.

    The CRTC associated with the encoder can also be retrieved through the
    connector state, and from it, the old and new CRTC states.

    Changed in v4:
    - Added to the set
    Changed in v5:
    - Fix up docbook (Daniel & Laurent)
    Changed in v6:
    - Updated commit subject (Sam)

    Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-3-sean@poorly.run
    Link to v5: https://patchwork.freedesktop.org/patch/msgid/20190611160844.257498-3-sean@poorly.run

    Cc: Daniel Vetter
    Cc: Sam Ravnborg
    Tested-by: Heiko Stuebner
    Reviewed-by: Daniel Vetter
    Signed-off-by: Laurent Pinchart

    [seanpaul removed WARNs from helpers and added docs to explain why
    returning NULL might be valid]
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190611205147.181298-1-sean@poorly.run

    Laurent Pinchart
     
  • This patch adds atomic_enable and atomic_disable callbacks to the
    encoder helpers. This will allow encoders to make informed decisions in
    their start-up/shutdown based on the committed state.

    Aside from the new hooks, this patch also introduces the new signature
    for .atomic_* functions going forward. Instead of passing object state
    (well, encoders don't have atomic state, but let's ignore that), we pass
    the entire atomic state so the driver can inspect more than what's
    happening locally.

    This is particularly important for the upcoming self refresh helpers.

    Changes in v3:
    - Added patch to the set
    Changes in v4:
    - Move atomic_disable above prepare (Daniel)
    - Add breadcrumb to .enable() docbook (Daniel)
    Changes in v5:
    - None
    Changes in v6:
    - Tweak kerneldoc some more (Sam)

    Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-2-sean@poorly.run
    Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-2-sean@poorly.run
    Link to v5: https://patchwork.freedesktop.org/patch/msgid/20190611160844.257498-2-sean@poorly.run

    Cc: Daniel Vetter
    Cc: Ville Syrjälä
    Cc: Sam Ravnborg
    Tested-by: Heiko Stuebner
    Reviewed-by: Daniel Vetter
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190611204959.180855-1-sean@poorly.run

    Sean Paul
     

13 Jun, 2019

2 commits


12 Jun, 2019

2 commits

  • I copied the kerneldoc for encoder_funcs.atomic_enable from encoder_funcs.enable
    in a recent patch [1]. Sam rightly pointed out in the review that "for symmetry
    with" text is awkward [2]. So here's a patch to fix up the source of the awkward
    language.

    [1] https://patchwork.freedesktop.org/patch/msgid/20190611160844.257498-2-sean@poorly.run
    [2] https://patchwork.freedesktop.org/patch/msgid/20190611185352.GA16305@ravnborg.org

    Suggested-by: Sam Ravnborg
    Reviewed-by: Sam Ravnborg
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20190612150038.194843-1-sean@poorly.run

    Sean Paul
     
  • We've moved the override and firmware EDID (simply "override EDID" from
    now on) handling to the low level drm_do_get_edid() function in order to
    transparently use the override throughout the stack. The idea is that
    you get the override EDID via the ->get_modes() hook.

    Unfortunately, there are scenarios where the DDC probe in drm_get_edid()
    called via ->get_modes() fails, although the preceding ->detect()
    succeeds.

    In the case reported by Paul Wise, the ->detect() hook,
    intel_crt_detect(), relies on hotplug detect, bypassing the DDC. In the
    case reported by Ilpo Järvinen, there is no ->detect() hook, which is
    interpreted as connected. The subsequent DDC probe reached via
    ->get_modes() fails, and we don't even look at the override EDID,
    resulting in no modes being added.

    Because drm_get_edid() is used via ->detect() all over the place, we
    can't trivially remove the DDC probe, as it leads to override EDID
    effectively meaning connector forcing. The goal is that connector
    forcing and override EDID remain orthogonal.

    Generally, the underlying problem here is the conflation of ->detect()
    and ->get_modes() via drm_get_edid(). The former should just detect, and
    the latter should just get the modes, typically via reading the EDID. As
    long as drm_get_edid() is used in ->detect(), it needs to retain the DDC
    probe. Or such users need to have a separate DDC probe step first.

    The EDID caching between ->detect() and ->get_modes() done by some
    drivers is a further complication that prevents us from making
    drm_do_get_edid() adapt to the two cases.

    Work around the regression by falling back to a separate attempt at
    getting the override EDID at drm_helper_probe_single_connector_modes()
    level. With a working DDC and override EDID, it'll never be called; the
    override EDID will come via ->get_modes(). There will still be a failing
    DDC probe attempt in the cases that require the fallback.

    v2:
    - Call drm_connector_update_edid_property (Paul)
    - Update commit message about EDID caching (Daniel)

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107583
    Reported-by: Paul Wise
    Cc: Paul Wise
    References: http://mid.mail-archive.com/alpine.DEB.2.20.1905262211270.24390@whs-18.cs.helsinki.fi
    Reported-by: Ilpo Järvinen
    Cc: Ilpo Järvinen
    Suggested-by: Daniel Vetter
    References: 15f080f08d48 ("drm/edid: respect connector force for drm_get_edid ddc probe")
    Fixes: 53fd40a90f3c ("drm: handle override and firmware EDID at drm_do_get_edid() level")
    Cc: # v4.15+ 56a2b7f2a39a drm/edid: abstract override/firmware EDID retrieval
    Cc: # v4.15+
    Cc: Daniel Vetter
    Cc: Ville Syrjälä
    Cc: Harish Chegondi
    Tested-by: Paul Wise
    Reviewed-by: Daniel Vetter
    Signed-off-by: Jani Nikula
    Link: https://patchwork.freedesktop.org/patch/msgid/20190610093054.28445-1-jani.nikula@intel.com

    Jani Nikula