Akhil P Oommen
06097e372a
drm/msm: Correct pm_runtime votes in recover worker
...
In the scenario where there is one a single submit which is hung, gpu is
power collapsed when it is retired. Because of this, by the time we call
reover(), gpu state would be already clear. Fix this by correctly
managing the pm runtime votes.
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Patchwork: https://patchwork.freedesktop.org/patch/498391/
Link: https://lore.kernel.org/r/20220819015030.v5.3.Ib07ecec3d5c17cb0e1efa6fcddaaa019ec2fb556@changeid
Signed-off-by: Rob Clark <robdclark@chromium.org >
2022-08-28 09:29:27 -07:00
Akhil P Oommen
5b26f37d13
drm/msm: Take single rpm refcount on behalf of all submits
...
Instead of separate refcount for each submit, take single rpm refcount
on behalf of all the submits. This makes it easier to drop the rpm
refcount during recovery in an upcoming patch.
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Patchwork: https://patchwork.freedesktop.org/patch/498392/
Link: https://lore.kernel.org/r/20220819015030.v5.2.Ifee853f6d8217a0fdacc459092bbc9e81a8a7ac7@changeid
Signed-off-by: Rob Clark <robdclark@chromium.org >
2022-08-28 09:29:27 -07:00
Akhil P Oommen
125e03b2b2
drm/msm: Remove unnecessary pm_runtime_get/put
...
We already enable gpu power from msm_gpu_submit(), so avoid a duplicate
pm_runtime_get/put from msm_job_run().
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com >
Patchwork: https://patchwork.freedesktop.org/patch/498390/
Link: https://lore.kernel.org/r/20220819015030.v5.1.Icf1e8f0c9b3e7e9933c3b48c70477d0582f3243f@changeid
Signed-off-by: Rob Clark <robdclark@chromium.org >
2022-08-28 09:29:27 -07:00
Rob Clark
80059b87a3
drm/msm: De-open-code some CP_EVENT_WRITE
...
Replace some open coding to improve readability.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/499272/
Link: https://lore.kernel.org/r/20220821155441.1092134-1-robdclark@gmail.com
2022-08-28 09:28:28 -07:00
Rob Clark
70bccecfca
drm/msm/iommu: optimize map/unmap
...
Using map_pages/unmap_pages cuts down on the # of pgtable walks needed
in the process of finding where to insert/remove an entry. The end
result is ~5-10x faster than mapping a single page at a time.
v2: Rename iommu_pgsize(), drop obsolete comments, fix error handling
in msm_iommu_pagetable_map()
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com >
Patchwork: https://patchwork.freedesktop.org/patch/498892/
Link: https://lore.kernel.org/r/20220823163719.90399-1-robdclark@gmail.com
2022-08-28 08:32:12 -07:00
Rob Clark
6d29709de8
drm/msm: Add fault-injection support
...
Intended as a way to trigger error paths in mesa.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Patchwork: https://patchwork.freedesktop.org/patch/496710/
Link: https://lore.kernel.org/r/20220807172848.2432845-1-robdclark@gmail.com
2022-08-28 08:32:11 -07:00
Rob Clark
d95c196ddb
drm/msm/gem: Convert to lockdep assert
...
Utilize the power of lockdep for our GEM locking related sanity
checking.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496139/
Link: https://lore.kernel.org/r/20220802155152.1727594-16-robdclark@gmail.com
2022-08-28 08:31:49 -07:00
Rob Clark
d4d7d3630d
drm/msm/gem: Add msm_gem_assert_locked()
...
All use of msm_gem_is_locked() is just for WARN_ON()s, so extract out
into an msm_gem_assert_locked() patch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496136/
Link: https://lore.kernel.org/r/20220802155152.1727594-15-robdclark@gmail.com
2022-08-27 09:32:45 -07:00
Rob Clark
025d27239a
drm/msm/gem: Evict active GEM objects when necessary
...
If we are under enough memory pressure, we should stall waiting for
active buffers to become idle in order to evict.
v2: Check for __GFP_ATOMIC before blocking
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496135/
Link: https://lore.kernel.org/r/20220802155152.1727594-14-robdclark@gmail.com
2022-08-27 09:32:45 -07:00
Rob Clark
dd2f0d7859
drm/msm/gem: Consolidate shrinker trace
...
Combine separate trace events for purge vs evict into one. When we add
support for purging/evicting active buffers we'll just add more info
into this one trace event, rather than adding a bunch more events.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496133/
Link: https://lore.kernel.org/r/20220802155152.1727594-13-robdclark@gmail.com
2022-08-27 09:32:45 -07:00
Rob Clark
f371bcc0c2
drm/msm/gem: Unpin buffers earlier
...
We've already attached the fences, so obj->resv (which shrinker checks)
tells us whether they are still active. So we can unpin sooner, before
we drop the queue lock.
This also avoids the need to grab the obj lock in the retire path,
avoiding potential for lock contention between submit and retire.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496132/
Link: https://lore.kernel.org/r/20220802155152.1727594-12-robdclark@gmail.com
2022-08-27 09:32:45 -07:00
Rob Clark
b352ba54a8
drm/msm/gem: Convert to using drm_gem_lru
...
This converts over to use the shared GEM LRU/shrinker helpers. Note
that it means we are no longer tracking purgeable or willneed buffers
that are active separately. But the most recently pinned buffers should
be at the tail of the various LRUs, and the shrinker is already prepared
to encounter objects which are still active.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496131/
Link: https://lore.kernel.org/r/20220802155152.1727594-11-robdclark@gmail.com
2022-08-27 09:32:45 -07:00
Rob Clark
e7c2af13f8
drm/gem: Add LRU/shrinker helper
...
Add a simple LRU helper to assist with driver's shrinker implementation.
It handles tracking the number of backing pages associated with a given
LRU, and provides a helper to implement shrinker_scan.
A driver can use multiple LRU instances to track objects in various
states, for example a dontneed LRU for purgeable objects, a willneed LRU
for evictable objects, and an unpinned LRU for objects without backing
pages.
All LRUs that the object can be moved between must share a single lock.
v2: lockdep_assert_held() instead of WARN_ON(!mutex_is_locked())
v3: make drm_gem_lru_move_tail_locked() static until there is a user
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Patchwork: https://patchwork.freedesktop.org/patch/496128/
Link: https://lore.kernel.org/r/20220802155152.1727594-10-robdclark@gmail.com
2022-08-27 09:32:45 -07:00
Rob Clark
da53d8b546
drm/msm/gem: Remove active refcnt
...
At this point the pinned refcnt is sufficient, and the shrinker is
already prepared to encounter objects which are still active according
to fences attached to the resv.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496122/
Link: https://lore.kernel.org/r/20220802155152.1727594-9-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
9fd5ff7f28
drm/msm/gem: Consolidate pin/unpin paths
...
Avoid having multiple spots where we increment/decrement pin_count (and
associated LRU updating)
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496130/
Link: https://lore.kernel.org/r/20220802155152.1727594-8-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
e7cd5ee9aa
drm/msm/gem: Rename to pin/unpin_pages
...
Since that is what these fxns actually do.. they are getting *pinned*
pages (as opposed to cases where we need pages, but don't need them
pinned, like CPU mappings).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496121/
Link: https://lore.kernel.org/r/20220802155152.1727594-7-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
901df24d7c
drm/msm/gem: Rename update_inactive
...
Really what this is doing is updating various LRU lists.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496115/
Link: https://lore.kernel.org/r/20220802155152.1727594-6-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
01780d0263
drm/msm/gem: Check for active in shrinker path
...
Currently in our shrinker path we shouldn't be encountering anything
that is active, but this will change in subsequent patches. So check
if there are unsignaled fences.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496117/
Link: https://lore.kernel.org/r/20220802155152.1727594-5-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
05ba44b370
drm/msm: Split out idr_lock
...
Otherwise if we hit reclaim pinning objects in the submit path, we'll be
blocking retire_worker trying to free a submit.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496116/
Link: https://lore.kernel.org/r/20220802155152.1727594-4-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
fc1dd04c38
drm/msm: Small submit cleanup
...
Move more initialization into submit_create().
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496120/
Link: https://lore.kernel.org/r/20220802155152.1727594-3-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Rob Clark
f0de40a131
drm/msm: Reorder lock vs submit alloc
...
This lets us drop the NORETRY.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Patchwork: https://patchwork.freedesktop.org/patch/496114/
Link: https://lore.kernel.org/r/20220802155152.1727594-2-robdclark@gmail.com
2022-08-27 09:32:44 -07:00
Lucas Stach
332f847212
drm/etnaviv: reap idle mapping if it doesn't match the softpin address
...
When a idle BO, which is held open by another process, gets freed by
userspace and subsequently referenced again by e.g. importing it again,
userspace may assign a different softpin VA than the last time around.
As the kernel GEM object still exists, we likely have a idle mapping
with the old VA still cached, if it hasn't been reaped in the meantime.
As the context matches, we then simply try to resurrect this mapping by
increasing the refcount. As the VA in this mapping does not match the
new softpin address, we consequently fail the otherwise valid submit.
Instead of failing, reap the idle mapping.
Cc: stable@vger.kernel.org # 5.19
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
2022-08-26 21:36:55 +02:00
Lucas Stach
5a40837deb
drm/etnaviv: move idle mapping reaping into separate function
...
The same logic is already used in two different places and now
it will also be needed outside of the compilation unit, so split
it into a separate function.
Cc: stable@vger.kernel.org # 5.19
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
2022-08-26 21:36:47 +02:00
Matt Roper
25bcc828d2
drm/i915/dg2: Incorporate Wa_16014892111 into DRAW_WATERMARK tuning
...
Although register tuning settings are generally implemented via the
workaround infrastructure, it turns out that the DRAW_WATERMARK register
is not properly saved/restored by hardware around power events (i.e.,
RC6 entry) so updates to the value cannot be applied in the usual
manner. New workaround Wa_16014892111 informs us that any tuning
updates to this register must instead be applied via an INDIRECT_CTX
batch buffer. This will ensure that the necessary value is re-applied
when a context begins running, even if an RC6 entry had wiped the
register back to hardware defaults since the last context ran.
Fixes: 6dc85721df ("drm/i915/dg2: Add additional tuning settings")
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6642
Signed-off-by: Matt Roper <matthew.d.roper@intel.com >
Reviewed-by: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220823202449.83727-1-matthew.d.roper@intel.com
2022-08-26 08:49:35 -07:00
Linus Walleij
61a9fa154d
drm/tve200: Fix smatch warning
...
The "ret" variable is ambiguously returning something that
could be zero in the tve200_modeset_init() function, assign
it an explicit error return code to make this unambiguous.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220505215019.2332613-1-linus.walleij@linaro.org
2022-08-26 14:22:59 +02:00
Marek Vasut
378e0f9f0b
drm: bridge: icn6211: Add support for external REFCLK
...
The ICN6211 is capable of deriving its internal PLL clock from either
MIPI DSI HS clock, external REFCLK clock, or even internal oscillator.
Currently supported is only the first option. Add support for external
REFCLK clock input in addition to that.
There is little difference between these options, except that in case
of MIPI DSI HS clock input, the HS clock are pre-divided by a fixed /4
divider before being fed to the PLL input, while in case of external
REFCLK, the RECLK clock are fed directly into the PLL input.
Per exceptionally poor documentation, the REFCLK must be in range of
10..154 MHz.
Signed-off-by: Marek Vasut <marex@denx.de >
Cc: Jagan Teki <jagan@amarulasolutions.com >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Robert Foss <robert.foss@linaro.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20220801131747.183041-2-marex@denx.de
2022-08-26 13:54:52 +02:00
Marek Vasut
4d054ca9ad
drm: bridge: icn6211: Add and use hs_rate and lp_rate
...
Fill in hs_rate and lp_rate to struct mipi_dsi_device for this bridge and
adjust DSI input frequency calculations such that they expect the DSI host
to configure HS clock according to hs_rate.
This is an optimization for the DSI burst mode case. In case the DSI device
supports DSI burst mode, it is recommended to operate the DSI interface at
the highest possible HS clock frequency which the DSI device supports. This
permits the DSI host to send as short as possible bursts of data on the DSI
link and keep the DSI data lanes in LP mode otherwise, which reduces power
consumption.
Signed-off-by: Marek Vasut <marex@denx.de >
Cc: Jagan Teki <jagan@amarulasolutions.com >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Robert Foss <robert.foss@linaro.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20220801131555.182969-1-marex@denx.de
2022-08-26 13:54:52 +02:00
Randy Dunlap
eb7de49645
drm: fix drm_mipi_dbi build errors
...
drm_mipi_dbi needs lots of DRM_KMS_HELPER support, so select
that Kconfig symbol like it is done is most other uses, and
the way that it was before MIPS_DBI was moved from tinydrm
to its core location.
Fixes these build errors:
ld: drivers/gpu/drm/drm_mipi_dbi.o: in function `mipi_dbi_buf_copy':
drivers/gpu/drm/drm_mipi_dbi.c:205: undefined reference to `drm_gem_fb_get_obj'
ld: drivers/gpu/drm/drm_mipi_dbi.c:211: undefined reference to `drm_gem_fb_begin_cpu_access'
ld: drivers/gpu/drm/drm_mipi_dbi.c:215: undefined reference to `drm_gem_fb_vmap'
ld: drivers/gpu/drm/drm_mipi_dbi.c:222: undefined reference to `drm_fb_swab'
ld: drivers/gpu/drm/drm_mipi_dbi.c:224: undefined reference to `drm_fb_memcpy'
ld: drivers/gpu/drm/drm_mipi_dbi.c:227: undefined reference to `drm_fb_xrgb8888_to_rgb565'
ld: drivers/gpu/drm/drm_mipi_dbi.c:235: undefined reference to `drm_gem_fb_vunmap'
ld: drivers/gpu/drm/drm_mipi_dbi.c:237: undefined reference to `drm_gem_fb_end_cpu_access'
ld: drivers/gpu/drm/drm_mipi_dbi.o: in function `mipi_dbi_dev_init_with_formats':
ld: drivers/gpu/drm/drm_mipi_dbi.o:/X64/../drivers/gpu/drm/drm_mipi_dbi.c:469: undefined reference to `drm_gem_fb_create_with_dirty'
Fixes: 174102f4de ("drm/tinydrm: Move mipi-dbi")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org >
Reported-by: kernel test robot <lkp@intel.com >
Cc: Dillon Min <dillon.minfei@gmail.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Noralf Trønnes <noralf@tronnes.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20220823004243.11596-1-rdunlap@infradead.org
2022-08-26 13:41:33 +02:00
Randy Dunlap
84dfc46594
drm/panel: use 'select' for Ili9341 panel driver helpers
...
Use 'select' instead of 'depends on' for DRM helpers for the
Ilitek ILI9341 panel driver.
This is what is done in the vast majority of other cases and
this makes it possible to fix a build error with drm_mipi_dbi.
Fixes: 5a04227326 ("drm/panel: Add ilitek ili9341 panel driver")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org >
Cc: Dillon Min <dillon.minfei@gmail.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Noralf Trønnes <noralf@tronnes.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20220823004227.10820-1-rdunlap@infradead.org
2022-08-26 13:40:47 +02:00
Ville Syrjälä
b183db8f47
drm/i915: Skip wm/ddb readout for disabled pipes
...
The stuff programmed into the wm/ddb registers of planes
on disabled pipes doesn't matter. So during readout just
leave our software state tracking for those zeroed.
This should avoid us trying too hard to clean up after
whatever mess the VBIOS/GOP left in there. The actual
hardware state will get cleaned up if/when we enable
the pipe anyway.
Cc: stable@vger.kernel.org
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5711
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220617195948.24007-1-ville.syrjala@linux.intel.com
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com >
2022-08-26 10:13:36 +03:00
Dave Airlie
2c2d7a67de
Merge tag 'drm-intel-gt-next-2022-08-24' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
...
UAPI Changes:
- Create gt/gtN/.defaults/ for per gt sysfs defaults
Create a gt/gtN/.defaults/ directory (similar to
engine/<engine-name>/.defaults/) to expose default parameter values for
each gt in sysfs. This allows userspace to restore default parameter values
after they have changed.
Driver Changes:
- Support GuC v69 in parallel to v70 (Daniele)
- Improve TLB invalidation to limit performance regression (Chris, Mauro)
- Expose per-gt RPS defaults in sysfs (Ashutosh)
- Suppress OOM warning for shmemfs object allocation failure (Chris, Nirmoy)
- Disable PCI resize on 32-bit machines (Nirmoy)
- Update DG2 to GuC v70.4.1 (John)
- Fix CCS data copying on DG2 during swapping (Matt A)
- Add DG2 performance tuning setting recommended by spec (Matt R)
- Add GuC <-> kernel time stamp translation information to error logs (John)
- Record GuC CTB info in error logs (John)
- Route semaphores to GuC for Gen12+ when enabled (Michal Wi, John)
- Improve resilency to bug #3575 : Handle reset timeouts under unrelated kernel hangs (Chris, Ashutosh)
- Avoid system freeze by removing shared locking on freeing objects (Chris, Nirmoy)
- Demote GuC error "No response for request" into debug when expected (Zhanjun)
- Fix GuC capture size warning and bump the size (John)
- Use streaming loads to speed up dumping the GuC log (Chris, John)
- Don't abort on CTB_UNUSED status from GuC (John)
- Don't send spurious policy update for GuC child contexts (Daniele)
- Don't leak the CCS state (Matt A)
- Prefer drm_err over pr_err (John)
- Eliminate unused calc_ctrl_surf_instr_size (Matt A)
- Add dedicated function for non-ctx register tuning settings (Matt R)
- Style and typo fixes, documentation improvements (Jason Wang, Mauro)
- Selftest improvements (Matt B, Rahul, John)
Signed-off-by: Dave Airlie <airlied@redhat.com >
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/YwYTCjA/Rhpd1n4A@jlahtine-mobl.ger.corp.intel.com
2022-08-26 10:03:43 +10:00
Dave Airlie
100d0ae82b
Merge tag 'amd-drm-fixes-6.0-2022-08-25' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
...
amd-drm-fixes-6.0-2022-08-25:
amdgpu:
- GFX 11.0 fixes
- PSP XGMI handling fixes
- GFX9 fix for compute-only IPs
- Drop duplicated function call
- Fix warning due to missing header
- NBIO 7.7 fixes
- DCN 3.1.4 fixes
- SDMA 6.0 fixes
- SMU 13.0 fixes
- Arcturus GPUVM page table fix
- MMHUB 1.0 fix
amdkfd:
- GC 10.3.7 fix
radeon:
- Delayed work flush fix
Signed-off-by: Dave Airlie <airlied@redhat.com >
From: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220825181243.5853-1-alexander.deucher@amd.com
2022-08-26 09:56:53 +10:00
Dave Airlie
064d491f73
Merge tag 'drm-misc-fixes-2022-08-25' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
...
Short summary of fixes pull:
* gem: Fixes handle release leak
* nouveau: Fix fencing when moving BO
* vc4: HDMI fixes
* Backmerging for v6.0-rc1
Signed-off-by: Dave Airlie <airlied@redhat.com >
From: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/YwclSWheC+Ai+u+v@linux-uq9g
2022-08-26 09:48:22 +10:00
ye xingchen
9d3feb6333
drm/mediatek: Remove the unneeded result
...
Return the value drm_mode_config_helper_suspend() directly instead of
storing it in another redundant variable.
Reported-by: Zeal Robot <zealci@zte.com.cn >
Signed-off-by: ye xingchen <ye.xingchen@zte.com.cn >
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20220825072335.228921-1-ye.xingchen@zte.com.cn/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2022-08-26 07:34:49 +08:00
Maíra Canal
fd0fcdf33d
drm/mediatek: Drop of_gpio header
...
These drivers include the deprecated OF GPIO header <linux/of_gpio.h>
yet fail to use symbols from it, so drop the include.
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org >
Cc: Philipp Zabel <p.zabel@pengutronix.de >
Cc: Matthias Brugger <matthias.bgg@gmail.com >
Cc: linux-mediatek@lists.infradead.org
Signed-off-by: Maíra Canal <mairacanal@riseup.net >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20220812205746.609107-3-mairacanal@riseup.net/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2022-08-26 07:19:32 +08:00
Juston Li
6127b3bcd3
drm/i915/pxp: don't start pxp without mei_pxp bind
...
pxp will not start correctly until after mei_pxp bind completes and
intel_pxp_init_hw() is called.
Wait for the bind to complete before proceeding with startup.
This fixes a race condition during bootup where we observed a small
window for pxp commands to be sent, starting pxp before mei_pxp bind
completed.
Changes since v2:
- wait for pxp_component to bind instead of returning -EAGAIN (Daniele)
Changes since v1:
- check pxp_component instead of pxp_component_added (Daniele)
- pxp_component needs tee_mutex (Daniele)
- return -EAGAIN so caller knows to retry (Daniele)
Signed-off-by: Juston Li <justonli@chromium.org >
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com >
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818174205.2412730-1-justonli@chromium.org
2022-08-25 15:58:09 -07:00
José Roberto de Souza
f02c7d5a8f
drm/i915/display/mtl: Extend MBUS programming
...
Display version 14 also supports MBUS joining just like ADL-P
and also it does not need MBUS initialization, so extending ADL-P
code paths to display version 14 and higher.
Bspec: 49213
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-20-radhakrishna.sripada@intel.com
2022-08-25 14:54:46 -07:00
Radhakrishna Sripada
3d46edeec2
drm/i915/mtl: Reuse adl-p DBUF calculations
...
Meteorlake uses a similar DBUF calculations as ADL-P.
Reuse the call flow for meteorlake.
Bspec: 49255
Original Author: Caz Yokoyama
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-19-radhakrishna.sripada@intel.com
2022-08-25 14:54:46 -07:00
Radhakrishna Sripada
3eb4ad9325
drm/i915/mtl: Update memory bandwidth parameters
...
Like ADL_P, Meteorlake has different memory characteristics from
past platforms. Update the values used by our memory bandwidth
calculations accordingly.
Bspec: 64631
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-17-radhakrishna.sripada@intel.com
2022-08-25 14:54:46 -07:00
Radhakrishna Sripada
c41aa0204d
drm/i915/mtl: memory latency data from LATENCY_LPX_LPY for WM
...
Since Xe LPD+, Memory latency data are in LATENCY_LPX_LPY registers
instead of GT driver mailbox.
v2: Use the extracted wm latency adjustment function(Matt)
v3: Use Odd/even for Latency fields(MattR)
Bspec: 64608
Cc: Matt Roper <matthew.d.roper@intel.com >
Original Author: Caz Yokoyama
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/ <20220818234202.451742-15-radhakrishna.sripada@intel.com >
2022-08-25 14:53:54 -07:00
Radhakrishna Sripada
a2b4cefafa
drm/i915: Extract wm latency adjustment to its own function
...
Watermark latency is adjusted in cases when latency is 0us for level
greater than 1, the subsequent levels are disabled. Extract this logic
into its own function.
v2: Pass dev_priv to the extracted function(MattR)
Suggested-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-14-radhakrishna.sripada@intel.com
2022-08-25 14:46:21 -07:00
Clint Taylor
dc35583ba9
drm/i915/mtl: Fix rawclk for Meteorlake PCH
...
MTL has a fixed rawclk of 38400Khz. Register does not need to be
reprogrammed.
Bspec: 49304
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-13-radhakrishna.sripada@intel.com
2022-08-25 12:52:59 -07:00
Radhakrishna Sripada
61c8657822
drm/i915/mtl: Add support for MTL in Display Init sequences
...
The initialization sequence for Meteorlake reuses the sequence for
icelake for most parts. Some changes viz. reset PICA handshake
are added.
Bspec: 49189
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-10-radhakrishna.sripada@intel.com
2022-08-25 12:52:00 -07:00
Imre Deak
612dc41445
drm/i915/mtl: Add VBT port and AUX_CH mapping
...
Add the proper VBT port,AUX_CH -> i915 port,AUX_CH mapping which just
follows the ADL_P one.
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Imre Deak <imre.deak@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-9-radhakrishna.sripada@intel.com
2022-08-25 12:51:26 -07:00
Radhakrishna Sripada
b078c16bde
drm/i915/mtl: Add PCH support
...
Add support for Meteorpoint(MTP) PCH used with Meteorlake.
Cc: Matt Roper <matthew.d.roper@intel.com >
Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com >
Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-7-radhakrishna.sripada@intel.com
2022-08-25 12:50:40 -07:00
Matt Roper
068a0f5c82
drm/i915/mtl: Don't mask off CCS according to DSS fusing
...
Unlike the Xe_HP platforms, MTL only has a single CCS engine; the
quad-based engine masking logic does not apply to this platform (or
presumably any future platforms that only have 0 or 1 CCS).
Signed-off-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Reviewed-by: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-5-radhakrishna.sripada@intel.com
2022-08-25 11:00:43 -07:00
Matt Roper
da30390b93
drm/i915/mtl: MMIO range is now 4MB
...
Previously only dgfx platforms had a 4MB MMIO range, but starting with
MTL we now use the larger range for all platforms.
Bspec: 63834, 63830
Signed-off-by: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Reviewed-by: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220818234202.451742-4-radhakrishna.sripada@intel.com
2022-08-25 11:00:29 -07:00
Radhakrishna Sripada
6509dd1111
drm/i915: Skip Bit12 fw domain reset for gen12+
...
Bit12 of the Forcewake request register should not be cleared post
gen12. Do not touch this bit while clearing during fw domain reset.
v2: Tweak the comment to drop older platforms(MattR)
Bspec: 52542
Signed-off-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com >
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com >
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220817224304.255767-1-radhakrishna.sripada@intel.com
2022-08-25 10:59:33 -07:00
Qu Huang
b8983d4252
drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
...
The mmVM_L2_CNTL3 register is not assigned an initial value
Signed-off-by: Qu Huang <jinsdb@126.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2022-08-25 13:54:35 -04:00
Likun Gao
61251b2cff
drm/amdgpu: add MGCG perfmon setting for gfx11
...
Enable GFX11 MGCG perfmon setting.
V2: set rlc to saft mode before setting.
Signed-off-by: Likun Gao <Likun.Gao@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2022-08-25 13:54:20 -04:00