18 Apr, 2019

1 commit

  • Add structure dma_buf_phys to store physical address.
    Add DMA_BUF_IOCTL_PHYS to export physical address.

    TODO: checkpatch warnings

    Change-Id: Ib2f24b33462d603f2cbeef975689aaf82447d088
    Signed-off-by: ivan.liu
    Signed-off-by: Vipul Kumar
    Signed-off-by: Srikanth Krishnakar

    ivan.liu
     

16 Jul, 2018

1 commit

  • Fixes the BUG_ON spuriously triggering under the following
    circumstances:

    * reservation_object_reserve_shared is called with shared_count ==
    shared_max - 1, so obj->staged is freed in preparation of an in-place
    update.

    * reservation_object_add_shared_fence is called with the first fence,
    after which shared_count == shared_max.

    * reservation_object_add_shared_fence is called with a follow-up fence
    from the same context.

    In the second reservation_object_add_shared_fence call, the BUG_ON
    triggers. However, nothing bad would happen in
    reservation_object_add_shared_inplace, since both fences are from the
    same context, so they only occupy a single slot.

    Prevent this by moving the BUG_ON to where an overflow would actually
    happen (e.g. if a buggy caller didn't call
    reservation_object_reserve_shared before).

    v2:
    * Fix description of breaking scenario (Christian König)
    * Add bugzilla reference

    Cc: stable@vger.kernel.org
    Bugzilla: https://bugs.freedesktop.org/106418
    Reviewed-by: Chris Wilson # v1
    Reviewed-by: Christian König # v1
    Signed-off-by: Michel Dänzer
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20180704151405.10357-1-michel@daenzer.net

    Michel Dänzer
     

06 Jul, 2018

1 commit

  • drm-misc-next for 4.19:

    UAPI Changes:
    v3d: add fourcc modicfier for fourcc for the Broadcom UIF format (Eric Anholt)

    Cross-subsystem Changes:
    console/fbcon: Add support for deferred console takeover (Hans de Goede)

    Core Changes:
    dma-fence clean up, improvements and docs (Daniel Vetter)
    add mask function for crtc, plane, encoder and connector DRM objects(Ville Syrjälä)

    Driver Changes:
    pl111: add Nomadik LCDC variant (Linus Walleij)

    Signed-off-by: Dave Airlie
    Link: https://patchwork.freedesktop.org/patch/msgid/20180704234641.GA3981@juma

    Dave Airlie
     

04 Jul, 2018

1 commit

  • - Intro section that links to how this is exposed to userspace.
    - Lots more hyperlinks.
    - Minor clarifications and style polish

    v2: Add misplaced hunk of kerneldoc from a different patch.

    Reviewed-by: Christian König
    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20180704092909.6599-6-daniel.vetter@ffwll.ch

    Daniel Vetter
     

03 Jul, 2018

2 commits

  • Almost everyone uses dma_fence_default_wait.

    v2: Also remove the BUG_ON(!ops->wait) (Chris).

    Reviewed-by: Christian König (v1)
    Signed-off-by: Daniel Vetter
    Cc: Chris Wilson
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20180503142603.28513-5-daniel.vetter@ffwll.ch

    Daniel Vetter
     
  • The current Wound-Wait mutex algorithm is actually not Wound-Wait but
    Wait-Die. Implement also Wound-Wait as a per-ww-class choice. Wound-Wait
    is, contrary to Wait-Die a preemptive algorithm and is known to generate
    fewer backoffs. Testing reveals that this is true if the
    number of simultaneous contending transactions is small.
    As the number of simultaneous contending threads increases, Wait-Wound
    becomes inferior to Wait-Die in terms of elapsed time.
    Possibly due to the larger number of held locks of sleeping transactions.

    Update documentation and callers.

    Timings using git://people.freedesktop.org/~thomash/ww_mutex_test
    tag patch-18-06-15

    Each thread runs 100000 batches of lock / unlock 800 ww mutexes randomly
    chosen out of 100000. Four core Intel x86_64:

    Algorithm #threads Rollbacks time
    Wound-Wait 4 ~100 ~17s.
    Wait-Die 4 ~150000 ~19s.
    Wound-Wait 16 ~360000 ~109s.
    Wait-Die 16 ~450000 ~82s.

    Cc: Ingo Molnar
    Cc: Jonathan Corbet
    Cc: Gustavo Padovan
    Cc: Maarten Lankhorst
    Cc: Sean Paul
    Cc: David Airlie
    Cc: Davidlohr Bueso
    Cc: "Paul E. McKenney"
    Cc: Josh Triplett
    Cc: Thomas Gleixner
    Cc: Kate Stewart
    Cc: Philippe Ombredanne
    Cc: Greg Kroah-Hartman
    Cc: linux-doc@vger.kernel.org
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Co-authored-by: Peter Zijlstra
    Signed-off-by: Thomas Hellstrom
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Ingo Molnar

    Thomas Hellstrom
     

02 Jul, 2018

2 commits

  • When this was introduced in

    commit a519435a96597d8cd96123246fea4ae5a6c90b02
    Author: Christian König
    Date: Tue Oct 20 16:34:16 2015 +0200

    dma-buf/fence: add fence_wait_any_timeout function v2

    there was a restriction added that this only works if the dma-fence
    uses the dma_fence_default_wait hook. Which works for amdgpu, which is
    the only caller. Well, until you share some buffers with e.g. i915,
    then you get an -EINVAL.

    But there's really no reason for this, because all drivers must
    support callbacks. The special ->wait hook is only as an optimization;
    if the driver needs to create a worker thread for an active callback,
    then it can avoid to do that if it knows that there's a process
    context available already. So ->wait is just an optimization, just
    using the logic in dma_fence_default_wait() should work for all
    drivers.

    Let's remove this restriction.

    Reviewed-by: Christian König
    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: Christian König
    Cc: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20180503142603.28513-4-daniel.vetter@ffwll.ch

    Daniel Vetter
     
  • Many drivers have a trivial implementation for ->enable_signaling.
    Let's make it optional by assuming that signalling is already
    available when the callback isn't present.

    v2: Don't do the trick to set the ENABLE_SIGNAL_BIT
    unconditionally, it results in an expensive spinlock take for
    everyone. Instead just check if the callback is present. Suggested by
    Maarten.

    Also move misplaced kerneldoc hunk to the right patch.

    Cc: Maarten Lankhorst
    Reviewed-by: Christian König (v1)
    Reviewed-by: Maarten Lankhorst
    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20180504141034.27727-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

20 Jun, 2018

2 commits


01 Jun, 2018

1 commit


07 May, 2018

1 commit

  • The sync_debug.h header is internal, and only used by
    sw_sync.c. Therefore, SW_SYNC is always defined and there
    is no need for the stubs. Remove them and make the code
    simpler.

    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20180504180037.10661-1-ezequiel@collabora.com

    Ezequiel Garcia
     

03 May, 2018

4 commits

  • I shouldn't have pushed this, CI was right - I failed to remove the
    BUG_ON(!ops->wait);

    Reported-by: Chris Wilson
    Acked-by: Chris Wilson
    Signed-off-by: Daniel Vetter

    Daniel Vetter
     
  • Almost everyone uses dma_fence_default_wait.

    Reviewed-by: Christian König
    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20180427061724.28497-6-daniel.vetter@ffwll.ch

    Daniel Vetter
     
  • When this was introduced in

    commit a519435a96597d8cd96123246fea4ae5a6c90b02
    Author: Christian König
    Date: Tue Oct 20 16:34:16 2015 +0200

    dma-buf/fence: add fence_wait_any_timeout function v2

    there was a restriction added that this only works if the dma-fence
    uses the dma_fence_default_wait hook. Which works for amdgpu, which is
    the only caller. Well, until you share some buffers with e.g. i915,
    then you get an -EINVAL.

    But there's really no reason for this, because all drivers must
    support callbacks. The special ->wait hook is only as an optimization;
    if the driver needs to create a worker thread for an active callback,
    then it can avoid to do that if it knows that there's a process
    context available already. So ->wait is just an optimization, just
    using the logic in dma_fence_default_wait() should work for all
    drivers.

    Let's remove this restriction.

    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: Christian König
    Cc: Alex Deucher
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/20180427061724.28497-5-daniel.vetter@ffwll.ch

    Daniel Vetter
     
  • Many drivers have a trivial implementation for ->enable_signaling.
    Let's make it optional by assuming that signalling is already
    available when the callback isn't present.

    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/20180427061724.28497-4-daniel.vetter@ffwll.ch

    Daniel Vetter
     

19 Feb, 2018

1 commit

  • drivers/dma-buf/sw_sync.c:248: warning: No description found for parameter 'obj'
    drivers/dma-buf/sw_sync.c:248: warning: No description found for parameter 'value'
    drivers/dma-buf/sw_sync.c:248: warning: Excess function parameter 'parent' description in 'sync_pt_create'
    drivers/dma-buf/sw_sync.c:248: warning: Excess function parameter 'inc' description in 'sync_pt_create'

    Signed-off-by: Chris Wilson
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20180208113816.8288-1-chris@chris-wilson.co.uk

    Chris Wilson
     

16 Feb, 2018

1 commit

  • drm-misc-next for 4.17:

    UAPI Changes:
    - drm/vc4: Expose performance counters to userspace (Boris)

    Cross-subsystem Changes:
    - MAINTAINERS: Linus to maintain panel-arm-versatile in -misc (Linus)

    Core Changes:
    - Only use swiotlb when necessary (Chunming)

    Driver Changes:
    - drm/panel: Add support for ARM Versatile panels (Linus)
    - pl111: Improvements around versatile panel support (Linus)

    ----------------------------------------
    Tagged on 2018-02-06:
    drm-misc-next for 4.17:

    UAPI Changes:
    - Validate mode flags + type (Ville)
    - Deprecate unused mode flags PIXMUX, BCAST (Ville)
    - Deprecate unused mode types BUILTIN, CRTC_C, CLOCK_C, DEFAULT (Ville)

    Cross-subsystem Changes:
    - MAINTAINERS: s/Daniel/Maarten/ for drm-misc (Daniel)

    Core Changes:
    - gem: Export gem functions for drivers to use (Samuel)
    - bridge: Introduce bridge timings in drm_bridge (Linus)
    - dma-buf: Allow exclusive fence to be bundled in fence array when
    calling reservation_object_get_fences_rcu (Christian)
    - dp: Add training pattern 4 and HBR3 support to dp helpers (Manasi)
    - fourcc: Add alpha bit to formats to avoid driver format LUTs (Maxime)
    - mode: Various cleanups + add new device-wide .mode_valid hook (Ville)
    - atomic: Fix state leak when non-blocking commits fail (Leo)
    NOTE: IIRC, this was cross-picked to -fixes so it might fall out
    - crc: Allow polling on the data fd (Maarten)

    Driver Changes:
    - bridge/vga-dac: Add THS8134* support (Linus)
    - tinydrm: Various MIPI DBI improvements/cleanups (Noralf)
    - bridge/dw-mipi-dsi: Cleanups + use create_packet helper (Brian)
    - drm/sun4i: Add Display Engine frontend support (Maxime)
    - drm/sun4i: Add zpos support + increase num planes from 2 to 4 (Maxime)
    - various: Use drm_mode_get_hv_timing() to fill plane clip rectangle (Ville)
    - stm: Add 8-bit clut support, add dsi phy v1.31 support, +fixes (Phillipe)

    Cc: Boris Brezillon
    Cc: Chunming Zhou
    Cc: Samuel Li
    Cc: Linus Walleij
    Cc: Noralf Trønnes
    Cc: Brian Norris
    Cc: Maxime Ripard
    Cc: Ville Syrjala
    Cc: Christian König
    Cc: Manasi Navare
    Cc: Philippe Cornu
    Cc: Leo (Sunpeng) Li
    Cc: Daniel Vetter
    Cc: Maarten Lankhorst

    * tag 'drm-misc-next-2018-02-13' of git://anongit.freedesktop.org/drm/drm-misc: (115 commits)
    drm/radeon: only enable swiotlb path when need v2
    drm/amdgpu: only enable swiotlb alloc when need v2
    drm: add func to get max iomem address v2
    drm/vc4: Expose performance counters to userspace
    drm: Print the pid when debug logging an ioctl error.
    drm/stm: ltdc: remove non-alpha color formats on layer 2 for older hw
    drm/stm: ltdc: add non-alpha color formats
    drm/bridge/synopsys: dsi: Add 1.31 version support
    drm/bridge/synopsys: dsi: Add read feature
    drm/pl111: Support multiple endpoints on the CLCD
    drm/pl111: Support variants with broken VBLANK
    drm/pl111: Support variants with broken clock divider
    drm/pl111: Handle the Versatile RGB/BGR565 mode
    drm/pl111: Properly detect the ARM PL110 variants
    drm/panel: Add support for ARM Versatile panels
    drm/panel: Device tree bindings for ARM Versatile panels
    drm/bridge: Rename argument from crtc to bridge
    drm/crc: Add support for polling on the data fd.
    drm/sun4i: Use drm_mode_get_hv_timing() to populate plane clip rectangle
    drm/rcar-du: Use drm_mode_get_hv_timing() to populate plane clip rectangle
    ...

    Dave Airlie
     

12 Feb, 2018

1 commit

  • 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/^\([^\"]*\)\(\\)/\\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: Al Viro
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

02 Feb, 2018

1 commit

  • Pull drm updates from Dave Airlie:
    "This seems to have been a comparatively quieter merge window, I assume
    due to holidays etc. The "biggest" change is AMD header cleanups, which
    merge/remove a bunch of them. The AMD gpu scheduler is now being made generic
    with the etnaviv driver wanting to reuse the code, hopefully other drivers
    can go in the same direction.

    Otherwise it's the usual lots of stuff in i915/amdgpu, not so much stuff
    elsewhere.

    Core:
    - Add .last_close and .output_poll_changed helpers to reduce driver footprints
    - Fix plane clipping
    - Improved debug printing support
    - Add panel orientation property
    - Update edid derived properties at edid setting
    - Reduction in fbdev driver footprint
    - Move amdgpu scheduler into core for other drivers to use.

    i915:
    - Selftest and IGT improvements
    - Fast boot prep work on IPS, pipe config
    - HW workarounds for Cannonlake, Geminilake
    - Cannonlake clock and HDMI2.0 fixes
    - GPU cache invalidation and context switch improvements
    - Display planes cleanup
    - New PMU interface for perf queries
    - New firmware support for KBL/SKL
    - Geminilake HW workaround for perforamce
    - Coffeelake stolen memory improvements
    - GPU reset robustness work
    - Cannonlake horizontal plane flipping
    - GVT work

    amdgpu/radeon:
    - RV and Vega header file cleanups (lots of lines gone!)
    - TTM operation context support
    - 48-bit GPUVM support for Vega/RV
    - ECC support for Vega
    - Resizeable BAR support
    - Multi-display sync support
    - Enable swapout for reserved BOs during allocation
    - S3 fixes on Raven
    - GPU reset cleanup and fixes
    - 2+1 level GPU page table

    amdkfd:
    - GFX7/8 SDMA user queues support
    - Hardware scheduling for multiple processes
    - dGPU prep work

    rcar:
    - Added R8A7743/5 support
    - System suspend/resume support

    sun4i:
    - Multi-plane support for YUV formats
    - A83T and LVDS support

    msm:
    - Devfreq support for GPU

    tegra:
    - Prep work for adding Tegra186 support
    - Tegra186 HDMI support
    - HDMI2.0 and zpos support by using generic helpers

    tilcdc:
    - Misc fixes

    omapdrm:
    - Support memory bandwidth limits
    - DSI command mode panel cleanups
    - DMM error handling

    exynos:
    - drop the old IPP subdriver.

    etnaviv:
    - Occlusion query fixes
    - Job handling fixes
    - Prep work for hooking in gpu scheduler

    armada:
    - Move closer to atomic modesetting
    - Allow disabling primary plane if overlay is full screen

    imx:
    - Format modifier support
    - Add tile prefetch to PRE
    - Runtime PM support for PRG

    ast:
    - fix LUT loading"

    * tag 'drm-for-v4.16' of git://people.freedesktop.org/~airlied/linux: (1471 commits)
    drm/ast: Load lut in crtc_commit
    drm: Check for lessee in DROP_MASTER ioctl
    drm: fix gpu scheduler link order
    drm/amd/display: Demote error print to debug print when ATOM impl missing
    dma-buf: fix reservation_object_wait_timeout_rcu once more v2
    drm/amdgpu: Avoid leaking PM domain on driver unbind (v2)
    drm/amd/amdgpu: Add Polaris version check
    drm/amdgpu: Reenable manual GPU reset from sysfs
    drm/amdgpu: disable MMHUB power gating on raven
    drm/ttm: Don't unreserve swapped BOs that were previously reserved
    drm/ttm: Don't add swapped BOs to swap-LRU list
    drm/amdgpu: only check for ECC on Vega10
    drm/amd/powerplay: Fix smu_table_entry.handle type
    drm/ttm: add VADDR_FLAG_UPDATED_COUNT to correctly update dma_page global count
    drm: Fix PANEL_ORIENTATION_QUIRKS breaking the Kconfig DRM menuconfig
    drm/radeon: fill in rb backend map on evergreen/ni.
    drm/amdgpu/gfx9: fix ngg enablement to clear gds reserved memory (v2)
    drm/ttm: only free pages rather than update global memory count together
    drm/amdgpu: fix CPU based VM updates
    drm/amdgpu: fix typo in amdgpu_vce_validate_bo
    ...

    Linus Torvalds
     

31 Jan, 2018

1 commit


29 Jan, 2018

1 commit

  • In dma_fence_release() there is a WARN_ON which could be triggered by
    several cases of wrong dma-fence usage. This patch adds a comment to
    explain two use-cases to help driver developers that use dma-fence
    and trigger that WARN_ON to better understand the reasons for it.

    v2: change to a more generic, one-liner comment

    Reviewed-by: Daniel Vetter
    Signed-off-by: Oded Gabbay

    Oded Gabbay
     

24 Jan, 2018

1 commit

  • Change reservation_object_get_fences_rcu to make the exclusive fence
    pointer optional.

    If not specified the exclusive fence is put into the fence array as
    well.

    This is helpful for a couple of cases where we need all fences in a
    single array.

    Reviewed-by: Chunming Zhou
    Acked-by: Daniel Vetter
    Signed-off-by: Christian König
    Signed-off-by: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20180110125341.3618-1-christian.koenig@amd.com

    Christian König
     

23 Jan, 2018

1 commit

  • We need to set shared_count even if we already have a fence to wait for.

    v2: init i to -1 as well

    Signed-off-by: Christian König
    Cc: stable@vger.kernel.org
    Tested-by: Lyude Paul
    Reviewed-by: Lyude Paul
    Reviewed-by: Chris Wilson
    Signed-off-by: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20180122200003.6665-1-christian.koenig@amd.com

    Christian König
     

04 Dec, 2017

1 commit

  • Cross-subsystem Changes:

    - device tree doc for the Mitsubishi AA070MC01 and Tianma TM070RVHG71
    panels (Lukasz Majewski) and for a 2nd endpoint on stm32 (Philippe Cornu)

    Core Changes:

    The most important changes are:

    - Add drm_driver .last_close and .output_poll_changed helpers to reduce
    fbdev emulation footprint in drivers (Noralf)
    - Fix plane clipping in core and for vmwgfx (Ville)

    Then we have a bunch of of improvement for print and debug such as the
    addition of a framebuffer debugfs file. ELD connector, HDMI and
    improvements. And a bunch of misc improvements, clean ups and style
    changes and doc updates

    [airlied: drop eld bits from amdgpu_dm]

    Driver Changes:

    - sii8620: filter unsupported modes and add DVI mode support (Maciej Purski)
    - rockchip: analogix_dp: Remove unnecessary init code (Jeffy Chen)
    - virtio, cirrus: add fb create_handle support to enable screenshots(Lepton Wu)
    - virtio: replace reference/unreference with get/put (Aastha Gupta)
    - vc4, gma500: Convert timers to use timer_setup() (Kees Cook)
    - vc4: Reject HDMI modes with too high of clocks (Eric)
    - vc4: Add support for more pixel formats (Dave Stevenson)
    - stm: dsi: Rename driver name to "stm32-display-dsi" (Philippe Cornu)
    - stm: ltdc: add a 2nd endpoint (Philippe Cornu)
    - via: use monotonic time for VIA_WAIT_IRQ (Arnd Bergmann)

    * tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc: (96 commits)
    drm/bridge: tc358767: add copyright lines
    MAINTAINERS: change maintainer for Rockchip drm drivers
    drm/vblank: Fix vblank timestamp debugs
    drm/via: use monotonic time for VIA_WAIT_IRQ
    dma-buf: Fix ifnullfree.cocci warnings
    drm/printer: Add drm_vprintf()
    drm/edid: Allow HDMI infoframe without VIC or S3D
    video/hdmi: Allow "empty" HDMI infoframes
    dma-buf/fence: Fix lock inversion within dma-fence-array
    drm/sti: Handle return value of platform_get_irq_byname
    drm/vc4: Add support for NV21 and NV61.
    drm/vc4: Use .pixel_order instead of custom .flip_cbcr
    drm/vc4: Add support for DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888
    drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c
    drm: Check crtc_state->enable rather than crtc->enabled in drm_plane_helper_check_state()
    drm/vmwgfx: Try to fix plane clipping
    drm/vmwgfx: Use drm_plane_helper_check_state()
    drm/vmwgfx: Remove bogus crtc coords vs fb size check
    gpu: gma500: remove unneeded DRIVER_LICENSE #define
    drm: don't link DP aux i2c adapter to the hardware device node
    ...

    Dave Airlie
     

29 Nov, 2017

1 commit


28 Nov, 2017

1 commit


23 Nov, 2017

1 commit

  • NULL check before some freeing functions is not needed.
    drivers/dma-buf/dma-buf.c:1183:2-26: WARNING: NULL check before freeing debugfs_remove_recursive
    Generated by: scripts/coccinelle/free/ifnullfree.cocci

    Signed-off-by: Vasyl Gomonovych
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/1511364161-6074-1-git-send-email-gomonovych@gmail.com

    Vasyl Gomonovych
     

22 Nov, 2017

1 commit

  • Ages ago Rob Clark noted,

    "Currently with fence-array, we have a potential deadlock situation. If
    we fence_add_callback() on an array-fence, the array-fence's lock is
    acquired first, and in it's ->enable_signaling() callback, it will install
    cbs on it's array-member fences, so the array-member's lock is acquired
    second.

    But in the signal path, the array-member's lock is acquired first, and
    the array-fence's lock acquired second."

    Rob proposed either extensive changes to dma-fence to unnest the
    fence-array signaling, or to defer the signaling onto a workqueue. This
    is a more refined version of the later, that should keep the latency
    of the fence signaling to a minimum by using an irq-work, which is
    executed asap.

    Reported-by: Rob Clark
    Suggested-by: Rob Clark
    References: 1476635975-21981-1-git-send-email-robdclark@gmail.com
    Signed-off-by: Chris Wilson
    Cc: Rob Clark
    Cc: Gustavo Padovan
    Cc: Sumit Semwal
    Cc: Christian König
    Reviewed-by: Christian König
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114162719.30958-1-chris@chris-wilson.co.uk

    Chris Wilson
     

21 Nov, 2017

1 commit

  • Bake in the conflict between the drm_print.h extraction and the
    addition of DRM_DEBUG_LEASES since we lost it a few too many times.

    Also fix a new use of drm_plane_helper_check_state in msm to follow
    Ville's conversion in

    commit a01cb8ba3f6282934cff65e89ab36b18b14cbe27
    Author: Ville Syrjälä
    Date: Wed Nov 1 22:16:19 2017 +0200

    drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c

    Acked-by: Ville Syrjälä
    Signed-off-by: Daniel Vetter

    Daniel Vetter
     

18 Nov, 2017

1 commit

  • Pull tracing updates from

    - allow module init functions to be traced

    - clean up some unused or not used by config events (saves space)

    - clean up of trace histogram code

    - add support for preempt and interrupt enabled/disable events

    - other various clean ups

    * tag 'trace-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (30 commits)
    tracing, thermal: Hide cpu cooling trace events when not in use
    tracing, thermal: Hide devfreq trace events when not in use
    ftrace: Kill FTRACE_OPS_FL_PER_CPU
    perf/ftrace: Small cleanup
    perf/ftrace: Fix function trace events
    perf/ftrace: Revert ("perf/ftrace: Fix double traces of perf on ftrace:function")
    tracing, dma-buf: Remove unused trace event dma_fence_annotate_wait_on
    tracing, memcg, vmscan: Hide trace events when not in use
    tracing/xen: Hide events that are not used when X86_PAE is not defined
    tracing: mark trace_test_buffer as __maybe_unused
    printk: Remove superfluous memory barriers from printk_safe
    ftrace: Clear hashes of stale ips of init memory
    tracing: Add support for preempt and irq enable/disable events
    tracing: Prepare to add preempt and irq trace events
    ftrace/kallsyms: Have /proc/kallsyms show saved mod init functions
    ftrace: Add freeing algorithm to free ftrace_mod_maps
    ftrace: Save module init functions kallsyms symbols for tracing
    ftrace: Allow module init functions to be traced
    ftrace: Add a ftrace_free_mem() function for modules to use
    tracing: Reimplement log2
    ...

    Linus Torvalds
     

16 Nov, 2017

1 commit

  • Pull drm updates from Dave Airlie:
    "This is the main drm pull request for v4.15.

    Core:
    - Atomic object lifetime fixes
    - Atomic iterator improvements
    - Sparse/smatch fixes
    - Legacy kms ioctls to be interruptible
    - EDID override improvements
    - fb/gem helper cleanups
    - Simple outreachy patches
    - Documentation improvements
    - Fix dma-buf rcu races
    - DRM mode object leasing for improving VR use cases.
    - vgaarb improvements for non-x86 platforms.

    New driver:
    - tve200: Faraday Technology TVE200 block.

    This "TV Encoder" encodes a ITU-T BT.656 stream and can be found in
    the StorLink SL3516 (later Cortina Systems CS3516) as well as the
    Grain Media GM8180.

    New bridges:
    - SiI9234 support

    New panels:
    - S6E63J0X03, OTM8009A, Seiko 43WVF1G, 7" rpi touch panel, Toshiba
    LT089AC19000, Innolux AT043TN24

    i915:
    - Remove Coffeelake from alpha support
    - Cannonlake workarounds
    - Infoframe refactoring for DisplayPort
    - VBT updates
    - DisplayPort vswing/emph/buffer translation refactoring
    - CCS fixes
    - Restore GPU clock boost on missed vblanks
    - Scatter list updates for userptr allocations
    - Gen9+ transition watermarks
    - Display IPC (Isochronous Priority Control)
    - Private PAT management
    - GVT: improved error handling and pci config sanitizing
    - Execlist refactoring
    - Transparent Huge Page support
    - User defined priorities support
    - HuC/GuC firmware refactoring
    - DP MST fixes
    - eDP power sequencing fixes
    - Use RCU instead of stop_machine
    - PSR state tracking support
    - Eviction fixes
    - BDW DP aux channel timeout fixes
    - LSPCON fixes
    - Cannonlake PLL fixes

    amdgpu:
    - Per VM BO support
    - Powerplay cleanups
    - CI powerplay support
    - PASID mgr for kfd
    - SR-IOV fixes
    - initial GPU reset for vega10
    - Prime mmap support
    - TTM updates
    - Clock query interface for Raven
    - Fence to handle ioctl
    - UVD encode ring support on Polaris
    - Transparent huge page DMA support
    - Compute LRU pipe tweaks
    - BO flag to allow buffers to opt out of implicit sync
    - CTX priority setting API
    - VRAM lost infrastructure plumbing

    qxl:
    - fix flicker since atomic rework

    amdkfd:
    - Further improvements from internal AMD tree
    - Usermode events
    - Drop radeon support

    nouveau:
    - Pascal temperature sensor support
    - Improved BAR2 handling
    - MMU rework to support Pascal MMU

    exynos:
    - Improved HDMI/mixer support
    - HDMI audio interface support

    tegra:
    - Prep work for tegra186
    - Cleanup/fixes

    msm:
    - Preemption support for a5xx
    - Display fixes for 8x96 (snapdragon 820)
    - Async cursor plane fixes
    - FW loading rework
    - GPU debugging improvements

    vc4:
    - Prep for DSI panels
    - fix T-format tiling scanout
    - New madvise ioctl

    Rockchip:
    - LVDS support

    omapdrm:
    - omap4 HDMI CEC support

    etnaviv:
    - GPU performance counters groundwork

    sun4i:
    - refactor driver load + TCON backend
    - HDMI improvements
    - A31 support
    - Misc fixes

    udl:
    - Probe/EDID read fixes.

    tilcdc:
    - Misc fixes.

    pl111:
    - Support more variants

    adv7511:
    - Improve EDID handling.
    - HDMI CEC support

    sii8620:
    - Add remote control support"

    * tag 'drm-for-v4.15' of git://people.freedesktop.org/~airlied/linux: (1480 commits)
    drm/rockchip: analogix_dp: Use mutex rather than spinlock
    drm/mode_object: fix documentation for object lookups.
    drm/i915: Reorder context-close to avoid calling i915_vma_close() under RCU
    drm/i915: Move init_clock_gating() back to where it was
    drm/i915: Prune the reservation shared fence array
    drm/i915: Idle the GPU before shinking everything
    drm/i915: Lock llist_del_first() vs llist_del_all()
    drm/i915: Calculate ironlake intermediate watermarks correctly, v2.
    drm/i915: Disable lazy PPGTT page table optimization for vGPU
    drm/i915/execlists: Remove the priority "optimisation"
    drm/i915: Filter out spurious execlists context-switch interrupts
    drm/amdgpu: use irq-safe lock for kiq->ring_lock
    drm/amdgpu: bypass lru touch for KIQ ring submission
    drm/amdgpu: Potential uninitialized variable in amdgpu_vm_update_directories()
    drm/amdgpu: potential uninitialized variable in amdgpu_vce_ring_parse_cs()
    drm/amd/powerplay: initialize a variable before using it
    drm/amd/powerplay: suppress KASAN out of bounds warning in vega10_populate_all_memory_levels
    drm/amd/amdgpu: fix evicted VRAM bo adjudgement condition
    drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
    drm/rockchip: add CONFIG_OF dependency for lvds
    ...

    Linus Torvalds
     

15 Nov, 2017

2 commits

  • The amdgpu issue to also need signaled fences in the reservation objects should
    be fixed by now.

    Optimize the handling by replacing a signaled fence when adding a new
    shared one.

    Signed-off-by: Christian König
    Reviewed-by: Chris Wilson
    Signed-off-by: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114142436.1360-2-christian.koenig@amd.com

    Christian König
     
  • The amdgpu issue to also need signaled fences in the reservation objects
    should be fixed by now.

    Optimize the list by keeping only the not signaled yet fences around.

    v2: temporary put the signaled fences at the end of the new container
    v3: put the old fence at the end of the new container as well.

    Signed-off-by: Christian König
    Reviewed-by: Chris Wilson
    Tested-by: Chris Wilson
    Signed-off-by: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114142436.1360-1-christian.koenig@amd.com

    Christian König
     

10 Nov, 2017

1 commit

  • Use rcu_assign_pointer() when setting an rcu protected pointer.
    This gets rid of another sparse warning.

    Cc: Dave Airlie
    Cc: Jason Ekstrand
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: linux-media@vger.kernel.org
    Cc: Alex Deucher
    Cc: Christian König
    Cc: Sumit Semwal
    Cc: Chris Wilson
    Signed-off-by: Ville Syrjälä
    Link: https://patchwork.freedesktop.org/patch/msgid/20171102200336.23347-5-ville.syrjala@linux.intel.com
    Reviewed-by: Daniel Vetter
    Reviewed-by: Christian König .
    Acked-by: Sumit Semwal

    Ville Syrjälä
     

02 Nov, 2017

3 commits

  • Mappings need to be unmapped by calling dma_buf_unmap_attachment() and
    not by calling again dma_buf_map_attachment(). Also fix some spelling
    mistakes.

    Signed-off-by: Liviu Dudau
    Reviewed-by: Alex Deucher
    Reviewed-by: Christian König
    Signed-off-by: Gustavo Padovan
    Link: https://patchwork.freedesktop.org/patch/msgid/20171101140630.2884-1-Liviu.Dudau@arm.com

    Liviu Dudau
     
  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Linux 4.14-rc7

    Requested by Ben Skeggs for nouveau to avoid major conflicts,
    and things were getting a bit conflicty already, esp around amdgpu
    reverts.

    Dave Airlie
     

17 Oct, 2017

1 commit

  • Commit e941759c74 ("fence: dma-buf cross-device synchronization") added
    trace event fence_annotate_wait_on, but never used it. It was renamed
    to dma_fence_annotate_wait_on by commit f54d186700 ("dma-buf: Rename
    struct fence to dma_fence") but still not used. As defined trace events
    have data structures and functions created for them, it is a waste of
    memory if they are not used. Remove the unused trace event.

    Link: http://lkml.kernel.org/r/20171013100625.6c820059@gandalf.local.home

    Reviewed-by: Christian König
    Acked-by: Sumit Semwal
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

10 Oct, 2017

1 commit

  • sync_file_ioctl_fence_info has a race between filling the status
    of the underlying fences and the overall status of the sync_file.
    If fence transitions in the time frame between its sync_fill_fence_info
    and the later dma_fence_is_signaled for the sync_file, the returned
    information is inconsistent showing non-signaled underlying fences but
    an overall signaled state.

    This patch changes sync_file_ioctl_fence_info to track what has been
    encoded and using that as the overall sync_file status.

    Tested-by: Vamsidhar Reddy Gaddam
    Signed-off-by: John Einar Reitan
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: dri-devel@lists.freedesktop.org
    Reviewed-by: Chris Wilson
    Signed-off-by: Gustavo Padovan
    Link: https://patchwork.freedesktop.org/patch/msgid/20171009134936.27219-1-john.reitan@arm.com

    John Einar Reitan