1. 20 Feb, 2022 9 commits
  2. 19 Feb, 2022 1 commit
  3. 17 Feb, 2022 2 commits
  4. 11 Feb, 2022 4 commits
  5. 10 Feb, 2022 1 commit
  6. 09 Feb, 2022 2 commits
    • Lucas De Marchi's avatar
      drm/i915/guc: Use a single pass to calculate regset · bf890040
      Lucas De Marchi authored
      The ADS initialitazion was using 2 passes to calculate the regset sent
      to GuC to initialize each engine: the first pass to just have the final
      object size and the second to set each register in place in the final
      gem object.
      
      However in order to maintain an ordered set of registers to pass to guc,
      each register needs to be added and moved in the final array. The second
      phase may actually happen in IO memory rather than system memory and
      accessing IO memory by simply dereferencing the pointer doesn't work on
      all architectures. Other places of the ADS initializaition were
      converted to use the iosys_map API, but here there may be a lot more
      accesses to IO memory. So, instead of following that same approach,
      convert the regset initialization to calculate the final array in 1
      pass and in the second pass that array is just copied to its final
      location, updating the pointers for each engine written to the ADS blob.
      
      One important thing is that struct temp_regset now have
      different semantics: `registers` continues to track the registers of a
      single engine, however the other fields are updated together, according
      to the newly added `storage`, which tracks the memory allocated for
      all the registers. So rename some of these fields and add a
      __mmio_reg_add(): this function (possibly) allocates memory and operates
      on the storage pointer while guc_mmio_reg_add() continues to manage the
      registers pointer.
      
      On a Tiger Lake system using enable_guc=3, the following log message is
      now seen:
      
      	[  187.334310] i915 0000:00:02.0: [drm:intel_guc_ads_create [i915]] Used 4 KB for temporary ADS regset
      
      This change has also been tested on an ARM64 host with DG2 and other
      discrete graphics cards.
      
      v2 (Daniele):
        - Fix leaking tempset on error path
        - Add comments on struct temp_regset to document the meaning of each
          field
      
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: John Harrison <John.C.Harrison@Intel.com>
      Cc: Matthew Brost <matthew.brost@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220208070141.2095177-3-lucas.demarchi@intel.com
      bf890040
    • Lucas De Marchi's avatar
      drm/i915/guc: Prepare for error propagation · f4044ca1
      Lucas De Marchi authored
      Currently guc_mmio_reg_add() relies on having enough memory available in
      the array to add a new slot. It uses
      `GEM_BUG_ON(count >= regset->size);` to protect going above the
      threshold.
      
      In order to allow guc_mmio_reg_add() to handle the memory allocation by
      itself, it must return an error in case of failures.  Adjust return code
      so this error can be propagated to the callers of guc_mmio_reg_add() and
      guc_mmio_regset_init().
      
      No intended change in behavior.
      
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: John Harrison <John.C.Harrison@Intel.com>
      Cc: Matthew Brost <matthew.brost@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220208070141.2095177-2-lucas.demarchi@intel.com
      f4044ca1
  7. 03 Feb, 2022 1 commit
  8. 01 Feb, 2022 3 commits
    • Matt Roper's avatar
      drm/i915: Introduce G12 subplatform of DG2 · 86df4141
      Matt Roper authored
      Another fork of the DG2 design has appeared, known as "DG2-G12;" let's
      add it as a new subplatform.  As with G11, the GT stepping resets back
      to A0 (so a DG2-G12 A0 is similar, but not identical, to a DG2-G10 C0)
      but the display steppings continue to use the same numbering scheme as
      G10 and G11.
      
      Some existing DG2 workarounds are starting to be extended to the DG2-G12
      subplatform.  So far only workarounds that were "permanent" for both
      DG2-G10 and DG2-G11 have been tagged for DG2-G12, but more
      stepping-specific workarounds are likely to show up in the future.
      
      Bspec: 44477
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: default avatarRadhakrishna Sripada <radhakrishna.sripada@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220120235016.1209326-1-matthew.d.roper@intel.com
      86df4141
    • Thomas Hellström's avatar
      drm/i915/ttm: Return some errors instead of trying memcpy move · 29b9702f
      Thomas Hellström authored
      The i915_ttm_accel_move() function may return error codes that should
      be propagated further up the stack rather than consumed assuming that
      the accel move failed and could be replaced with a memcpy move.
      
      For -EINTR, -ERESTARTSYS and -EAGAIN, just propagate those codes, rather
      than retrying with a memcpy move.
      
      Fixes: 2b0a750c ("drm/i915/ttm: Failsafe migration blits")
      Cc: Matthew Auld <matthew.auld@intel.com>
      Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220201070340.16457-1-thomas.hellstrom@linux.intel.com
      29b9702f
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-2022-01-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · 53dbee49
      Dave Airlie authored
      [airlied: add two missing Kconfig]
      
      drm-misc-next for v5.18:
      
      UAPI Changes:
      - Fix invalid IN_FORMATS blob when plane->format_mod_supported is NULL.
      
      Cross-subsystem Changes:
      - Assorted dt bindings updates.
      - Fix vga16fb vga checking on x86.
      - Fix extra semicolon in rwsem.h's _down_write_nest_lock.
      - Assorted small fixes to agp and fbdev drivers.
      - Fix oops in creating a udmabuf with 0 pages.
      - Hot-unplug firmware fb devices on forced removal
      - Reqquest memory region in simplefb and simpledrm, and don't make the ioresource as busy.
      
      Core Changes:
      - Mock a drm_plane in drm-plane-helper selftest.
      - Assorted bug fixes to device logging, dbi.
      - Use DP helper for sink count in mst.
      - Assorted documentation fixes.
      - Assorted small fixes.
      - Move DP headers to drm/dp, and add a drm dp helper module.
      - Move the buddy allocator from i915 to common drm.
      - Add simple pci and platform module init macros to remove a lot of boilerplate from some drivers.
      - Support microsoft extension for HMDs and specialized monitors.
      - Improve edid parser's deep color handling.
      - Add type 7 timing support to edid parser.
      - Add a weak backpointer to the ttm_bo from ttm_resource
      - Add 3 eDP panels.
      
      Driver Changes:
      - Add support for HDMI and JZ4780 to ingenic.
      - Add support for higher DP/eDP bitrates to nouveau.
      - Assorted driver fixes to tilcdc, vmwgfx, sn65dsi83, meson, stm, panfrost, v3d, gma500, vc4, virtio, mgag200, ast, radeon, amdgpu, nouveau, various bridge drivers.
      - Convert and revert exynos dsi support to bridge driver.
      - Add vcc supply regulator support for sn65dsi83.
      - More conversion of bridge/chipone-icn6211 to atomic.
      - Remove conflicting fb's from stm, and add support for new hw version.
      - Add device link in parade-ps8640 to fix suspend/resume.
      - Update Boe-tv110c9m init sequence.
      - Add wide screen support to AST2600.
      - Fix omapdrm implicit dma_buf fencing.
      - Add support for multiple overlay planes to vkms.
      - Convert bridge/anx7625 to atomic, add HDCP support,
        add eld support for audio, and fix HPD.
      - Add driver for ChromeOS privacy screen.
      - Handover display from firmware to vc4 more gracefully, and support nomodeset.
      - Add flexible and ycbcr pixel formats to stm/ltdc.
      - Convert exynos mipi dsi to atomic.
      - Add initial dual core group GPUs support to panfrost.
      - No longer add exclusive fence in amdgpu as shared fence.
      - Add CSC and full range supoprt to vc4.
      - Shutdown the display on system shutdown and unbind.
      - Add Multi-Inno Technology MI0700S4T-6 simple panel.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/456a23c6-7324-7543-0c45-751f30ef83f7@linux.intel.com
      53dbee49
  9. 31 Jan, 2022 1 commit
  10. 30 Jan, 2022 16 commits