28 Sep, 2016

1 commit

  • A bit smaller pull-req this time around. Some continued DT binding
    cleanup to get the corresponding dts bits merged upstream (through
    other trees). And explicit fence-fd support for submit ioctl.

    * 'msm-next' of git://people.freedesktop.org/~robclark/linux:
    drm/msm: bump kernel api version for explicit fencing
    drm/msm: submit support for out-fences
    drm/msm: move fence allocation out of msm_gpu_submit()
    drm/msm: submit support for in-fences
    drm/msm: extend the submit ioctl to pass in flags
    drm/msm/mdp5: Set rotation property initial value to DRM_ROTATE_0 insted of 0
    drm/msm/hdmi: don't print error when adding i2c adapter fails
    drm/msm/mdp4: mark symbols static where possible
    drm/msm: Remove call to reservation_object_test_signaled_rcu before wait
    drm/msm/hdmi: Clean up HDMI gpio DT bindings
    drm/msm/mdp4: Fix issue with LCDC/LVDS port parsing

    Dave Airlie
     

20 Sep, 2016

2 commits

  • - refactor the sseu code (Imre)
    - refine guc dmesg output (Dave Gordon)
    - more vgpu work
    - more skl wm fixes (Lyude)
    - refactor dpll code in prep for upfront link training (Jim Bride et al)
    - consolidate all platform feature checks into intel_device_info (Carlos Santa)
    - refactor elsp/execlist submission as prep for re-submission after hang
    recovery and eventually scheduling (Chris Wilson)
    - allow synchronous gpu reset handling, to remove tricky/impossible/fragile
    error recovery code (Chris Wilson)
    - prep work for nonblocking (execlist) submission, using fences to track
    depencies and drive elsp submission (Chris Wilson)
    - partial error recover/resubmission of non-guilty batches after hangs (Chris Wilson)
    - full dma-buf implicit fencing support (Chris Wilson)
    - dp link training fixes (Jim, Dhinkaran, Navare, ...)
    - obey dp branch device pixel rate/bpc/clock limits (Mika Kahola), needed for
    many vga dongles
    - bunch of small cleanups and polish all over, as usual

    [airlied: printing macros collided]

    * tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel: (163 commits)
    drm/i915: Update DRIVER_DATE to 20160919
    drm: Fix DisplayPort branch device ID kernel-doc
    drm/i915: use NULL for NULL pointers
    drm/i915: do not use 'false' as a NULL pointer
    drm/i915: make intel_dp_compute_bpp static
    drm: Add DP branch device info on debugfs
    drm/i915: Update bits per component for display info
    drm/i915: Check pixel rate for DP to VGA dongle
    drm/i915: Read DP branch device SW revision
    drm/i915: Read DP branch device HW revision
    drm/i915: Cleanup DisplayPort AUX channel initialization
    drm: Read DP branch device id
    drm: Helper to read max bits per component
    drm: Helper to read max clock rate
    drm: Drop VGA from bpc definitions
    drm: Add missing DP downstream port types
    drm/i915: Add ddb size field to device info structure
    drm/i915/guc: general tidying up (submission)
    drm/i915/guc: general tidying up (loader)
    drm/i915: clarify PMINTRMSK/pm_intr_keep usage
    ...

    Dave Airlie
     
  • More radeon and amdgpu changes for 4.9. Highlights:
    - Initial SI support for amdgpu (controlled by a Kconfig option)
    - misc ttm cleanups
    - runtimepm fixes
    - S3/S4 fixes
    - power improvements
    - lots of code cleanups and optimizations

    * 'drm-next-4.9' of git://people.freedesktop.org/~agd5f/linux: (151 commits)
    drm/ttm: remove cpu_address member from ttm_tt
    drm/radeon/radeon_device: remove unused function
    drm/amdgpu: clean function declarations in amdgpu_ttm.c up
    drm/amdgpu: use the new ring ib and dma frame size callbacks (v2)
    drm/amdgpu/vce3: add ring callbacks for ib and dma frame size
    drm/amdgpu/vce2: add ring callbacks for ib and dma frame size
    drm/amdgpu/vce: add common ring callbacks for ib and dma frame size
    drm/amdgpu/uvd6: add ring callbacks for ib and dma frame size
    drm/amdgpu/uvd5: add ring callbacks for ib and dma frame size
    drm/amdgpu/uvd4.2: add ring callbacks for ib and dma frame size
    drm/amdgpu/sdma3: add ring callbacks for ib and dma frame size
    drm/amdgpu/sdma2.4: add ring callbacks for ib and dma frame size
    drm/amdgpu/cik_sdma: add ring callbacks for ib and dma frame size
    drm/amdgpu/si_dma: add ring callbacks for ib and dma frame size
    drm/amdgpu/gfx8: add ring callbacks for ib and dma frame size
    drm/amdgpu/gfx7: add ring callbacks for ib and dma frame size
    drm/amdgpu/gfx6: add ring callbacks for ib and dma frame size
    drm/amdgpu/ring: add an interface to get dma frame and ib size
    drm/amdgpu/sdma3: drop unused functions
    drm/amdgpu/gfx6: drop gds_switch callback
    ...

    Dave Airlie
     

16 Sep, 2016

3 commits


01 Sep, 2016

1 commit


26 Aug, 2016

1 commit

  • Now that we have working partial VMA and faulting support for all
    objects, including fence support, advertise to userspace that it can
    take advantage of unlimited GGTT mmaps.

    v2: Make room in the kerneldoc for a more detailed explanation of the
    limitations of the GTT mmap interface.

    Signed-off-by: Chris Wilson
    Cc: Daniel Vetter
    Cc: Joonas Lahtinen
    Reviewed-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/20160825180519.11341-1-chris@chris-wilson.co.uk

    Chris Wilson
     

25 Aug, 2016

1 commit

  • First drm-next pull for radeon and amdgpu for 4.9. Highlights:
    - powerplay support for iceland asics
    - improved GPU reset (both full asic and per block)
    - UVD and VCE powergating for CZ and ST
    - VCE clockgating for CZ and ST
    - Support for pre-initialized (e.g., zeroed) vram buffers
    - ttm cleanups
    - virtual display support
    - core and radeon/amdgpu support for page_flip_target
    - lots of bug fixes and clean ups

    * 'drm-next-4.9' of git://people.freedesktop.org/~agd5f/linux: (171 commits)
    drm/amdgpu: use memcpy_toio for VCE firmware upload
    drm/amdgpu: use memcpy_to/fromio for UVD fw upload
    drm/amd/powerplay: delete useless code in iceland_hwmgr.c.
    drm/radeon: switch UVD code to use UVD_NO_OP for padding
    drm/amdgpu: switch UVD code to use UVD_NO_OP for padding
    drm/radeon: add support for UVD_NO_OP register
    drm/amdgpu: add support for UVD_NO_OP register
    drm/amdgpu: fix VCE ib alignment value
    drm/amdgpu: fix IB alignment for UVD
    drm/amd/amdgpu: Print ring name in amdgpu_ib_schedule()
    drm/radeon: remove dead code, si_mc_load_microcode (v2)
    drm/radeon/cik: remove dead code (v2)
    drm/amd/powerplay: avoid NULL dereference, cz_hwmgr.c
    drm/amd/powerplay: avoid NULL pointer dereference
    drm/amdgpu/gmc8: remove dead code (v2)
    drm/amdgpu/gmc7: remove dead code (v2)
    drm/amdgpu: Fix indentation in dce_v8_0_audio_write_sad_regs()
    drm/amdgpu: Use correct mask in dce_v8_0_afmt_setmode() and fix comment typos.
    drm/amdgpu: cleanup amdgpu_vm_bo_update params
    drm/amdgpu: stop adding dummy entry in amdgpu_ttm_placement_init
    ...

    Dave Airlie
     

23 Aug, 2016

1 commit


16 Aug, 2016

2 commits

  • shadow bo is the shadow of a bo, which is always in GTT,
    which can be used to backup the original bo.
    V2:
    reference shadow parent, shadow bo will be freed by who allocted him.

    Signed-off-by: Chunming Zhou
    Reviewed-by: Christian König
    Signed-off-by: Alex Deucher

    Chunming Zhou
     
  • Daniel Vetter proposed a new challenge to the serialisation inside the
    busy-ioctl that exposed a flaw that could result in us reporting the
    wrong engine as being busy. If the request is reallocated as we test
    its busyness and then reassigned to this object by another thread, we
    would not notice that the test itself was incorrect.

    We are faced with a choice of using __i915_gem_active_get_request_rcu()
    to first acquire a reference to the request preventing the race, or to
    acknowledge the race and accept the limitations upon the accuracy of the
    busy flags. Note that we guarantee that we never falsely report the
    object as idle (providing userspace itself doesn't race), and so the
    most important use of the busy-ioctl and its guarantees are fulfilled.

    Signed-off-by: Chris Wilson
    Cc: Daniel Vetter
    Cc: Joonas Lahtinen
    Reviewed-by: Joonas Lahtinen
    Reviewed-by: Mika Kuoppala
    Reviewed-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/1471337440-16777-1-git-send-email-chris@chris-wilson.co.uk

    Chris Wilson
     

11 Aug, 2016

1 commit

  • These flags allow userspace to explicitly specify the target vertical
    blank period when a flip should take effect.

    v2:
    * Add new struct drm_mode_crtc_page_flip_target instead of modifying
    struct drm_mode_crtc_page_flip, to make sure all existing userspace
    code keeps compiling (Daniel Vetter)

    Acked-by: Christian König
    Reviewed-by: Daniel Vetter
    Signed-off-by: Michel Dänzer
    Signed-off-by: Alex Deucher

    Michel Dänzer
     

08 Aug, 2016

1 commit


05 Aug, 2016

3 commits

  • Through the GTT interface to the fence registers, we can only handle
    linear, X and Y tiling. The more esoteric tiling patterns are ignored.
    Document that the tiling ABI only supports upto Y tiling, and reject any
    attempts to set a tiling mode other than NONE, X or Y.

    Signed-off-by: Chris Wilson
    Cc: Joonas Lahtinen
    Reviewed-by: Joonas Lahtinen
    Link: http://patchwork.freedesktop.org/patch/msgid/1470388464-28458-17-git-send-email-chris@chris-wilson.co.uk

    Chris Wilson
     
  • Backmerge the 4.8 pull request state from Dave - conflicts were
    getting out of hand, and Chris has some patches which outright don't
    apply without everything merged together again.

    Signed-off-by: Daniel Vetter

    Daniel Vetter
     
  • Our GPUs impose certain requirements upon buffers that depend upon how
    exactly they are used. Typically this is expressed as that they require
    a larger surface than would be naively computed by pitch * height.
    Normally such requirements are hidden away in the userspace driver, but
    when we accept pointers from strangers and later impose extra conditions
    on them, the original client allocator has no idea about the
    monstrosities in the GPU and we require the userspace driver to inform
    the kernel how many padding pages are required beyond the client
    allocation.

    v2: Long time, no see
    v3: Try an anonymous union for uapi struct compatibility

    Signed-off-by: Chris Wilson
    Cc: Tvrtko Ursulin
    Reviewed-by: Tvrtko Ursulin
    Link: http://patchwork.freedesktop.org/patch/msgid/1470324762-2545-7-git-send-email-chris@chris-wilson.co.uk

    Chris Wilson
     

27 Jul, 2016

1 commit

  • Suddenly everyone shows up with their trivial patch series!
    - piles of if (!ptr) check removals from Markus Elfring
    - more of_node_put fixes from Peter Chen
    - make fbdev support really optional in all drivers (except vmwgfx),
    somehow this fell through the cracks when we did all the hard prep work
    a while ago. Patches from Tobias Jakobi.
    - leftover patches for the connector reg/unreg cleanup (required that I
    backmerged drm-next) from Chris
    - last vgem fence patch from Chris
    - fix up warnings in the new sphinx gpu docs build
    - misc other small bits

    * tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel: (57 commits)
    GPU-DRM-Exynos: Delete an unnecessary check before the function call "vunmap"
    GPU-DRM-sun4i: Delete an unnecessary check before drm_fbdev_cma_hotplug_event()
    drm/atomic: Delete an unnecessary check before drm_property_unreference_blob()
    drm/rockchip: analogix_dp: add missing clk_disable_unprepare() on error
    drm: drm_connector->s/connector_id/index/ for consistency
    drm/virtio: Fix non static symbol warning
    drm/arc: Remove redundant dev_err call in arcpgu_load()
    drm/arc: Fix some sparse warnings
    drm/vgem: Fix non static symbol warning
    drm/doc: Spinx leftovers
    drm/dp-mst: Missing kernel doc
    drm/dp-mst: Remove tx_down_in_progress
    drm/doc: Fix missing kerneldoc for drm_dp_helper.c
    drm: Extract&Document drm_irq.h
    drm/doc: document all the properties in drm_mode_config
    drm/drm-kms.rst: Remove unused drm_fourcc.h include directive
    drm/doc: Add kerneldoc for @index
    drm: Unexport drm_connector_unregister_all()
    drm/sun4i: Remove redundant call to drm_connector_unregister_all()
    drm/ttm: Delete an unnecessary check before the function call "ttm_tt_destroy"
    ...

    Dave Airlie
     

20 Jul, 2016

1 commit

  • The purpose for each MOCS entry isn't well defined atm. Defining these
    is important to remove any uncertainty about the use of these entries
    for example in terms of performance and GPU/CPU coherency.

    Suggested by Ville.

    v4:
    - Rename I915_MOCS_AUTO to I915_MOCS_PTE. (Chris)

    CC: Rong R Yang
    CC: Yakui Zhao
    CC: Ville Syrjälä
    CC: Chris Wilson
    Signed-off-by: Imre Deak
    Reviewed-by: Ville Syrjälä
    Link: http://patchwork.freedesktop.org/patch/msgid/1467383528-16142-1-git-send-email-imre.deak@intel.com

    Imre Deak
     

19 Jul, 2016

2 commits

  • Backmerge drm-next to be able to apply Chris' connector_unregister_all
    cleanup (need latest i915 and sun4i state for that).

    Also there's a trivial conflict in ttm_bo.c that git rerere fails to
    remember.

    Signed-off-by: Daniel Vetter

    Daniel Vetter
     
  • Two different sets of flag bits are stored in the 'flags' member of a
    'struct drm_i915_gem_exec_object2', and they're defined in two different
    source files, increasing the risk of an accidental clash.

    Some flags in this field are supplied by the user; these are defined in
    i915_drm.h, and they start from the LSB and work up.

    Other flags are defined in i915_gem_execbuffer, for internal use within
    that file only; they start from the MSB and work down.

    So here we add a compile-time check that the two sets of flags do not
    overlap, which would cause all sorts of confusion.

    Signed-off-by: Dave Gordon
    Reviewed-by: Daniel Vetter
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/1468504324-12690-1-git-send-email-david.s.gordon@intel.com

    Dave Gordon
     

18 Jul, 2016

1 commit

  • vGEM buffers are useful for passing data between software clients and
    hardware renders. By allowing the user to create and attach fences to
    the exported vGEM buffers (on the dma-buf), the user can implement a
    deferred renderer and queue hardware operations like flipping and then
    signal the buffer readiness (i.e. this allows the user to schedule
    operations out-of-order, but have them complete in-order).

    This also makes it much easier to write tightly controlled testcases for
    dma-buf fencing and signaling between hardware drivers.

    v2: Don't pretend the fences exist in an ordered timeline, but allocate
    a separate fence-context for each fence so that the fences are
    unordered.
    v3: Make the debug output more interesting, and show the signaled status.
    v4: Automatically signal the fence to prevent userspace from
    indefinitely hanging drivers.

    Testcase: igt/vgem_basic/dmabuf-fence
    Testcase: igt/vgem_slow/nohang
    Signed-off-by: Chris Wilson
    Cc: Sean Paul
    Cc: Zach Reizner
    Cc: Gustavo Padovan
    Cc: Daniel Vetter
    Acked-by: Zach Reizner
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/1468571471-12610-1-git-send-email-chris@chris-wilson.co.uk

    Chris Wilson
     

16 Jul, 2016

3 commits

  • Doesn't do anything too interesting until we wire up shrinker. Pretty
    much lifted from i915.

    Signed-off-by: Rob Clark

    Rob Clark
     
  • This pull request brings in vc4 shader validation for branching,
    allowing GLSL shaders with non-unrolled loops.

    * tag 'drm-vc4-next-2016-07-15' of https://github.com/anholt/linux:
    drm/vc4: Fix a "the the" typo in a comment.
    drm/vc4: Fix definition of QPU_R_MS_REV_FLAGS
    drm/vc4: Add a getparam to signal support for branches.
    drm/vc4: Add support for branching in shader validation.
    drm/vc4: Add a bitmap of branch targets during shader validation.
    drm/vc4: Move validation's current/max ip into the validation struct.
    drm/vc4: Add a getparam ioctl for getting the V3D identity regs.

    Dave Airlie
     
  • Userspace needs to know if it can create shaders that do branching.
    Otherwise, for backwards compatibility with old kernels it needs to
    lower if statements to conditional assignments.

    Signed-off-by: Eric Anholt

    Eric Anholt
     

15 Jul, 2016

1 commit

  • - select igt testing depencies for CONFIG_DRM_I915_DEBUG (Chris)
    - track outputs in crtc state and clean up all our ad-hoc connector/encoder
    walking in modest code (Ville)
    - demidlayer drm_device/drm_i915_private (Chris Wilson)
    - thundering herd fix from Chris Wilson, with lots of help from Tvrtko Ursulin
    - piles of assorted clean and fallout from the thundering herd fix
    - documentation and more tuning for waitboosting (Chris)
    - pooled EU support on bxt (Arun Siluvery)
    - bxt support is no longer considered prelimary!
    - ring/engine vfunc cleanup from Tvrtko
    - introduce intel_wait_for_register helper (Chris)
    - opregion updates (Jani Nukla)
    - tuning and fixes for wait_for macros (Tvrkto&Imre)
    - more kabylake pci ids (Rodrigo)
    - pps cleanup and fixes for bxt (Imre)
    - move sink crc support over to atomic state (Maarten)
    - fix up async fbdev init ordering (Chris)
    - fbc fixes from Paulo and Chris

    * tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel: (223 commits)
    drm/i915: Update DRIVER_DATE to 20160711
    drm/i915: Select DRM_VGEM for igt
    drm/i915: Select X86_MSR for igt
    drm/i915: Fill unused GGTT with scratch pages for VT-d
    drm/i915: Introduce Kabypoint PCH for Kabylake H/DT.
    drm/i915:gen9: implement WaMediaPoolStateCmdInWABB
    drm/i915: Check for invalid cloning earlier during modeset
    drm/i915: Simplify hdmi_12bpc_possible()
    drm/i915: Kill has_dsi_encoder
    drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/
    drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s
    drm/i915: Kill has_dp_encoder from pipe_config
    drm/i915: Replace manual lvds and sdvo/hdmi counting with intel_crtc_has_type()
    drm/i915: Unify intel_pipe_has_type() and intel_pipe_will_have_type()
    drm/i915: Add output_types bitmask into the crtc state
    drm/i915: Remove encoder type checks from MST suspend/resume
    drm/i915: Don't mark eDP encoders as MST capable
    drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action()
    drm/i915: Group the irq breadcrumb variables into the same cacheline
    drm/i915: Wake up the bottom-half if we steal their interrupt
    ...

    Dave Airlie
     

14 Jul, 2016

1 commit

  • As I extend the driver to support different V3D revisions, userspace
    needs to know what version it's targeting. This is most easily
    detected using the V3D identity registers.

    v2: Make sure V3D is runtime PM on when reading the registers.
    v3: Switch to a 64-bit param value (suggested by Rob Clark in review)

    Signed-off-by: Eric Anholt
    Acked-by: Daniel Vetter (v2)
    Reviewed-by: Rob Clark (v3, over irc)

    Eric Anholt
     

08 Jul, 2016

1 commit


04 Jul, 2016

1 commit

  • igt likes to inject GPU hangs into its command streams. However, as we
    expect these hangs, we don't actually want them recorded in the dmesg
    output or stored in the i915_error_state (usually). To accommodate this
    allow userspace to set a flag on the context that any hang emanating
    from that context will not be recorded. We still do the error capture
    (otherwise how do we find the guilty context and know its intent?) as
    part of the reason for random GPU hang injection is to exercise the race
    conditions between the error capture and normal execution.

    v2: Split out the request->ringbuf error capture changes.
    v3: Move the flag defines next to the intel_context->flags definition

    Signed-off-by: Chris Wilson
    Acked-by: Daniel Vetter
    Reviewed-by: Dave Gordon
    Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-9-git-send-email-chris@chris-wilson.co.uk

    Chris Wilson
     

01 Jul, 2016

1 commit

  • Pooled EU is a bxt only feature and kernel changes are already merged. This
    feature is not yet exposed to userspace as the support was not yet
    available. Beignet team expressed interest and added patches to use this.

    Since we now have a user and patches to use them, expose them from the
    kernel side as well.

    v2: fix compile error

    [1] https://lists.freedesktop.org/archives/beignet/2016-June/007698.html
    [2] https://lists.freedesktop.org/archives/beignet/2016-June/007699.html

    Cc: Winiarski, Michal
    Cc: Zou, Nanhai
    Cc: Yang, Rong R
    Cc: Tim Gore
    Cc: Jeff McGee
    Signed-off-by: Arun Siluvery
    Acked-by: Chris Wilson
    Signed-off-by: Tvrtko Ursulin
    Link: http://patchwork.freedesktop.org/patch/msgid/1467369782-25992-1-git-send-email-arun.siluvery@linux.intel.com
    Acked-by: Jani Nikula

    arun.siluvery@linux.intel.com
     

13 May, 2016

10 commits