Commit graph

117,939 commits

Author SHA1 Message Date
Zhanjun Dong
604b5ee4a6 drm/i915/guc: Skip communication warning on reset in progress
GuC IRQ and tasklet handler receive just single G2H message, and let other
messages to be received from next tasklet. During this chained tasklet
process, if reset process started, communication will be disabled.
Skip warning for this condition.

Fixes: 65dd4ed0f4 ("drm/i915/guc: Don't receive all G2H messages in irq handler")
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15018
Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://lore.kernel.org/r/20250929152904.269776-1-zhanjun.dong@intel.com
2025-10-09 01:52:36 -07:00
Taotao Chen
6fa6c7a50e drm/i915: Fix incorrect error handling in shmem_pwrite()
shmem_pwrite() currently checks for short writes before negative error
codes, which can overwrite real errors (e.g., -EFBIG) with -EIO.
Reorder the checks to return negative errors first, then handle short
writes.

Signed-off-by: Taotao Chen <chentaotao@didiglobal.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://lore.kernel.org/r/20250822030651.28099-2-chentaotao@didiglobal.com
2025-09-18 12:57:07 +02:00
Taotao Chen
e296a2266c drm/i915: set O_LARGEFILE in __create_shmem()
Without O_LARGEFILE, file->f_op->write_iter calls
generic_write_check_limits(), which enforces a 2GB (MAX_NON_LFS) limit,
causing -EFBIG on large writes.

In shmem_pwrite(), this error is later masked as -EIO due to the error
handling order, leading to igt failures like gen9_exec_parse(bb-large).

Set O_LARGEFILE in __create_shmem() to prevent -EFBIG on large writes.

Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202508081029.343192ec-lkp@intel.com
Fixes: 048832a3f4 ("drm/i915: Refactor shmem_pwrite() to use kiocb and write_iter")
Signed-off-by: Taotao Chen <chentaotao@didiglobal.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://lore.kernel.org/r/20250822030651.28099-1-chentaotao@didiglobal.com
2025-09-18 12:56:59 +02:00
Joonas Lahtinen
f088104d83 Merge drm/drm-next into drm-intel-gt-next
Backmerge in order to get the commit:

  048832a3f4 ("drm/i915: Refactor shmem_pwrite() to use kiocb and write_iter")

To drm-intel-gt-next as there are followup fixes to be applied.

Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2025-09-16 13:53:20 +03:00
Dave Airlie
5770495279 New feature
- Add glue layer support for Exynos7870 DSIM in Exynos DSI driver
   . Introduces Exynos7870 DSIM bridge integration at Exynos DRM DSI layer.
 
 Bug fixups for exynos7_drm_decon.c module
 - Remove redundant ctx->suspended state handling
   . Cleans up unused state check logic as call flow is now correctly managed.
   . Fixes an issue where decon_commit() was blocked from decon_atomic_enable() due to incorrect state setting.
 -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEoxi+6c5pRPV/gdXcxWAb7Og/+bYFAmjH+W0ACgkQxWAb7Og/
 +bb0hgv/UaPW/ps5hg7vsjhL0CzUOJ8lyi6gTlvXv02auU2JoV70F78BvFmN7OM8
 rO31J9Ptc8b9lNAsy250itsq9j+LQR/RAcBpHmjmnm6429qLu6UthHlJJXQ9ZPEa
 GRyI6sHxdPsTgnDHE+6rHGXRm8+lFsbr3s94/1pj6BI2pugFS6rly5hQzGvLeAQB
 wgkZNQUhxO3FtWT25bAi+BcfLJdOrdIB0zjp0b+3AL5nMOzusDxLPmv5KCnKkVeE
 Yq/+MtevARENGrNfTf93siMZufurOoNcg/2eL0TcSWs31+YxgHdZPyIqtfdj6A7V
 MNQ+Rf1iKBBQ4JvC592Bs8FCn24/YozPKVbNeJfoxD2bE+rKYxSOFw1x8URX/14k
 rdpyG3UWe8JH6GUqpyKeJjt37famQjTRdFpSd/wNP4tGFl52s1zUw14Z3rfLR7/d
 sN9v7lLI4B8+WEEJCGAsFv+nhhyKTEZdANfbga+s3AAirpgO9134mvoyLQdOQd0d
 0W9/gOWD
 =EMj+
 -----END PGP SIGNATURE-----

Merge tag 'exynos-drm-next-for-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next

New feature
- Add glue layer support for Exynos7870 DSIM in Exynos DSI driver
  . Introduces Exynos7870 DSIM bridge integration at Exynos DRM DSI layer.

Bug fixups for exynos7_drm_decon.c module
- Remove redundant ctx->suspended state handling
  . Cleans up unused state check logic as call flow is now correctly managed.
  . Fixes an issue where decon_commit() was blocked from decon_atomic_enable() due to incorrect state setting.

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

From: Inki Dae <inki.dae@samsung.com>
Link: https://lore.kernel.org/r/20250915113543.51294-1-inki.dae@samsung.com
2025-09-16 10:35:52 +10:00
Dave Airlie
35106dd36c New feature
- Add DSIM bridge driver support for Exynos7870
   . Introduces Exynos7870 DSIM IP block support in the samsung-dsim bridge driver.
 - Document Exynos7870 DSIM compatible in dt-bindings
   . Adds exynos7870 compatible string and required clocks in device tree schema.
 -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEoxi+6c5pRPV/gdXcxWAb7Og/+bYFAmjH9LAACgkQxWAb7Og/
 +bZ9EAwAyYvXFtcs9M09JwhYf4csLhmVOulHgcu21hKbbI9NottsnZtXglq6NmrU
 u+PCgmERuSNzLyODna5NN5LHu6BoyQjbR4zrr7Z487vlbCrqk/VAF6j8H/rwTJrH
 npvsdzRTMbo2ZLyIllYuHw6Zr5uilA1Lxbmopr9Gzar6qZwAl4sNgxzU2qz7xLeN
 9ogJqVCInpcHEFWltoQOPP0/VGnDej4q/ZKBZPz3uwwo2zHr1be4rorlCel6LCaI
 O3WRNWczKNskdls1UQNHjPx2n7PmeCFrpTbVXXx9rnnUDoZTOjoaIyh+6otDwYTx
 O6/OnoQ1jSEV1h6G/XTg/PilY4g+j0wjk31e5sDvcu/UBLRrjNlcNCYbc0u5l+4L
 4xba13yjrbBe9o7JXvRoaptUGJPZuzIik5ThHvXhljGq1NCfd2gjrSxadrpHbHME
 IjjpWpnaWtIWmp3+F1gYiVRoD35YzSmXvruvfJO1bYEj9Q0v6aocac5OBSBnxhZB
 E4KeK4up
 =Bl4w
 -----END PGP SIGNATURE-----

Merge tag 'exynos-drm-misc-next-for-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next

New feature
- Add DSIM bridge driver support for Exynos7870
  . Introduces Exynos7870 DSIM IP block support in the samsung-dsim bridge driver.
- Document Exynos7870 DSIM compatible in dt-bindings
  . Adds exynos7870 compatible string and required clocks in device tree schema.

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

From: Inki Dae <inki.dae@samsung.com>
Link: https://lore.kernel.org/r/20250915111802.28177-1-inki.dae@samsung.com
2025-09-16 10:31:58 +10:00
Dave Airlie
8299ee7ff7 Merge tag 'drm-msm-next-2025-09-12' of https://gitlab.freedesktop.org/drm/msm into drm-next
Changes for v6.18

GPU and Core:
- in DT bindings describe clocks per GPU type
- GMU bandwidth voting for x1-85
- a663 speedbins
- a623 speedbins
- cleanup some remaining no-iommu leftovers after VM_BIND conversion
- fix GEM obj 32b size truncation
- add missing VM_BIND param validation
- various fixes
- IFPC for x1-85 and a750
- register xml and gen_header.py sync from mesa

Display:
- add missing bindings for display on SC8180X
- added DisplayPort MST bindings
- conversion from round_rate() to determine_rate()
- DSI PHY fixes, correcting programming glitches
- misc small fixes

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Rob Clark <rob.clark@oss.qualcomm.com>
Link: https://lore.kernel.org/r/CACSVV01FgXN+fD6U1Hi6Tj4WCf=V-+NO8BXi+80iS4qOZwpaGg@mail.gmail.com
2025-09-16 10:21:38 +10:00
Krzysztof Karas
f4d4097a03 drm/i915/gem: Avoid accessing uninitialized context in emit_rpcs_query()
Following the error path in that function may lead to usage of
uninitialized struct i915_gem_ww_ctx object, so move call to
i915_gem_ww_ctx_init() a bit earlier.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://lore.kernel.org/r/casutxyfjv7o4ivadvbich2sq2dt22btc5wcke55r56ptgxx2h@lv7hnxrqw5rq
2025-09-15 13:41:32 +02:00
Kaustabh Chakraborty
472df181d7
drm/exynos: dsi: add support for exynos7870
Add glue layer support for Exynos7870's DSIM IP bridge driver.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 20:19:23 +09:00
Kaustabh Chakraborty
e1361a4f1b
drm/exynos: exynos7_drm_decon: remove ctx->suspended
Condition guards are found to be redundant, as the call flow is properly
managed now, as also observed in the Exynos5433 DECON driver. Since
state checking is no longer necessary, remove it.

This also fixes an issue which prevented decon_commit() from
decon_atomic_enable() due to an incorrect state change setting.

Fixes: 96976c3d9a ("drm/exynos: Add DECON driver")
Cc: stable@vger.kernel.org
Suggested-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 20:19:21 +09:00
Kaustabh Chakraborty
77169a11d4
drm/bridge: samsung-dsim: add driver support for exynos7870 DSIM bridge
Add support for Exynos7870's DSIM IP block in the bridge driver.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:55:15 +09:00
Kaustabh Chakraborty
f08051a415
drm/bridge: samsung-dsim: add ability to define clock names for every variant
Presently, all devices refer to clock names from a single array. The
only controlling parameter is the number of clocks (num_clks field of
samsung_dsim_driver_data) which uses the first n clocks of that array.
As new devices are added, this approach turns out to be cumbersome.

Separate the clock names in individual arrays required by each variant,
in a struct clk_bulk_data. Add a pointer field to the driver data struct
which points to their respective clock names, and rework the clock usage
code to use the clk_bulk_* API instead.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:55:10 +09:00
Kaustabh Chakraborty
7ef93667ab
drm/bridge: samsung-dsim: increase timeout value for PLL_STABLE
Exynos7870's DSIM requires more time to stabilize its PLL. The current
timeout value, 1000, doesn't suffice. Increase the value to 3000, which
is just about enough as observed experimentally.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:55:07 +09:00
Kaustabh Chakraborty
f7754d843a
drm/bridge: samsung-dsim: allow configuring the PLL_STABLE bit
The PLL_STABLE bit of DSIM_DPHY_STATUS is hardcoded to BIT(31), but
Exynos7870's DSIM has it in BIT(24) as per downstream kernel sources.

In order to support both, move this bit value to the driver data struct
and define it for every driver compatible. Reference the value from
there instead, in functions wherever required.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:55:04 +09:00
Kaustabh Chakraborty
9aa49c21aa
drm/bridge: samsung-dsim: allow configuring PLL_M and PLL_S offsets
Currently, PLL_P offset of DSIM_PLLCTRL is configurable in the driver
data, while PLL_M and PLL_S offsets are hardcoded as 4-bit and 1-bit
offsets respectively, but Exynos7870's DSIM have them at 3-bit and 0-bit
offsets as per downstream kernel sources.

In order to support both, move both offset values to the driver data
struct and define it for every driver compatible. Reference the values
from there instead, in functions wherever required.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:55:01 +09:00
Kaustabh Chakraborty
d6dbefb2fe
drm/bridge: samsung-dsim: allow configuring the VIDEO_MODE bit
The VIDEO_MODE bit of DSIM_CONFIG is hardcoded to BIT(25), but
Exynos7870's DSIM has it in BIT(18) as per downstream kernel sources.

In order to support both, move this bit value to the driver data struct
and define it for every driver compatible. Reference the value from
there instead, in functions wherever required.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:54:59 +09:00
Kaustabh Chakraborty
4d244122dd
drm/bridge: samsung-dsim: allow configuring the MAIN_VSA offset
The MAIN_VSA offset of DSIM_MSYNC is hardcoded to a 22-bit offset, but
Exynos7870's DSIM has it in a 16-bit offset as per the downstream kernel
sources.

In order to support both, move this offset value to the driver data
struct and define it for every driver compatible. Reference the value
from there instead, in functions wherever required.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:54:52 +09:00
Kaustabh Chakraborty
f6ba4c1577
drm/bridge: samsung-dsim: allow configuring bits and offsets of CLKCTRL register
DSIM_CLKCTRL bit and offset values hardcoded in the driver:

name                      | bit/offset value
--------------------------+-----------------
DSIM_LANE_ESC_CLK_EN_CLK  | 19
DSIM_LANE_ESC_CLK_EN_DATA | 20
DSIM_BYTE_CLKEN           | 24
DSIM_ESC_CLKEN            | 28
DSIM_TX_REQUEST_HSCLK     | 31

DSIM_CLKCTRL bit and offset values in Exynos7870 DSIM as per downstream
kernel sources:

name                      | bit/offset value
--------------------------+-----------------
DSIM_LANE_ESC_CLK_EN_CLK  | 8
DSIM_LANE_ESC_CLK_EN_DATA | 9
DSIM_BYTE_CLKEN           | 17
DSIM_ESC_CLKEN            | 16
DSIM_TX_REQUEST_HSCLK     | 20

In order to support both, move all values to the driver data struct and
define it for every driver compatible. Reference the values from there
instead, in functions wherever required.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:54:49 +09:00
Kaustabh Chakraborty
92beab1a39
drm/bridge: samsung-dsim: add flag to control header FIFO wait
Exynos7870's DSIM device doesn't require waiting for the header FIFO
during a MIPI DSI transfer. Add a flag in the driver data in order to
control said behavior.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com
2025-09-15 19:54:47 +09:00
Kaustabh Chakraborty
7c9b998947
drm/bridge: samsung-dsim: add SFRCTRL register
On Exynos7870 devices, enabling the display requires disabling
standby by writing to the SFRCTRL register. Add the register and related
bit values. Since this behavior isn't available on other SoCs, implement
a flag in the driver data struct indicating the availability of this
feature.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:54:45 +09:00
Kaustabh Chakraborty
4e445729dc
drm/bridge: samsung-dsim: support separate LINK and DPHY status registers
Exynos7870's DSIM has separate registers for LINK and DPHY status. This
is in contrast to older variants in the driver which use a single
register for both.

Add a driver data flag which indicates that the device variant supports
the legacy status register. Change the register read calls
appropriately.

Suggested-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-09-15 19:54:37 +09:00
Dave Airlie
0d9f0083f7 Linux 6.17-rc6
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCgA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmjHMcoeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG5bwH/23w8iGB4hf7L/7Z
 e7blX42Pe9EXA1uK62iWmwEjDvBuJ7TmVfXH09qYJ56fj6/rJEdpQwtBMd4ypL81
 QA/7lq5UEl0apPzMN86J8EHCzmjNzv7o+UtEd4C/hPFEZHZJa5Hqj9CBglSwSCEn
 fTkLk7Gl6s8SfzBQ/rXX6/ZChAB/RleVWabDlIQMDz++/+9DZ0aqphj+5bYSqysL
 ROQOaj4LOICuLfrup9J61hKNBoF7Dv3sO20vc+Iic0XHRPZ6/lKCnHgCUsqVIOOQ
 L4kDT7XKQg+n3ttjrMe84/8iHZdWtf8VMWrtniPT8e1YGYuMpavVplgIcFoFCoNm
 Qa7NPDs=
 =rZeT
 -----END PGP SIGNATURE-----

Merge tag 'v6.17-rc6' into drm-next

This is a backmerge of Linux 6.17-rc6, needed for msm,
also requested by misc.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2025-09-15 17:51:07 +10:00
Dave Airlie
2cda9a063d Merge tag 'drm-intel-gt-next-2025-09-12' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next
Driver Changes:

- Include the GuC registers in the error state (Daniele)
- Use memdup_user() (Thorsten)
- Selftest improvements (Jonathan)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://lore.kernel.org/r/aMPCfRObHMg6DZAs@jlahtine-mobl
2025-09-15 13:16:54 +10:00
Dave Airlie
cf99b26d30 amd-drm-next-6.18-2025-09-09:
amdgpu:
 - Add CRIU support for gem objects
 - SI UVD fix
 - SI DPM fixes
 - Misc code cleanups
 - RAS updates
 - GPUVM debugfs fixes
 - Cyan Skillfish updates
 - UserQ updates
 - OEM i2c fix
 - SMU 13.0.x updates
 - DPCD probe quirk fix
 - Make vbios build number available in sysfs
 - HDCP updates
 - Brightness curve fixes
 - eDP updates
 - Vblank fixes
 - DCN 3.5 PG fix
 - PBN calcution fix
 
 amdkfd:
 - Add CRIU support for gem objects
 - Flexible array fix
 - P2P topology fix
 - APU memlimit fixes
 - Misc code cleanups
 
 UAPI:
 - Add CRIU support for gem objects
   Proposed userspace: https://github.com/checkpoint-restore/criu/pull/2613
 
 radeon:
 - Use dev_warn_once() in CS parsers
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQgO5Idg2tXNTSZAr293/aFa7yZ2AUCaMBOvAAKCRC93/aFa7yZ
 2LRUAP9I8nrmdifhqnDq9OvNDNdpdCrbSaoMMI9vNhi0Ni8nAAEAh8pig4kjOG0F
 UdMstu3GqjvC5BU14r2TmRbkYhbxBAU=
 =PDOd
 -----END PGP SIGNATURE-----

Merge tag 'amd-drm-next-6.18-2025-09-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-next

amd-drm-next-6.18-2025-09-09:

amdgpu:
- Add CRIU support for gem objects
- SI UVD fix
- SI DPM fixes
- Misc code cleanups
- RAS updates
- GPUVM debugfs fixes
- Cyan Skillfish updates
- UserQ updates
- OEM i2c fix
- SMU 13.0.x updates
- DPCD probe quirk fix
- Make vbios build number available in sysfs
- HDCP updates
- Brightness curve fixes
- eDP updates
- Vblank fixes
- DCN 3.5 PG fix
- PBN calcution fix

amdkfd:
- Add CRIU support for gem objects
- Flexible array fix
- P2P topology fix
- APU memlimit fixes
- Misc code cleanups

UAPI:
- Add CRIU support for gem objects
  Proposed userspace: https://github.com/checkpoint-restore/criu/pull/2613

radeon:
- Use dev_warn_once() in CS parsers

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

From: Alex Deucher <alexander.deucher@amd.com>
Link: https://lore.kernel.org/r/20250909161928.942785-1-alexander.deucher@amd.com
2025-09-12 13:37:41 +10:00
Dave Airlie
8d04ea1a92 drm-misc-next for v6.18:
UAPI Changes:
 
 - Provide 'boot_display' attribute on boot-up devices
 
 amdxdma:
 - Add ioctl DRM_IOCTL_AMDXDNA_GET_ARRAY
 
 Cross-subsystem Changes:
 
 bindings:
 - Add Mayqueen vendor prefix mayqueen-
 
 pci:
 - vgaarb: Use screen_info helpers
 
 Core Changes:
 
 ttm:
 - Add interface to populate buffers
 
 Driver Changes:
 
 amdgpu:
 - Pre-populate exported buffers
 
 ast:
 - Clean up detection of DRAM config
 
 bochs:
 - Clean up
 
 bridge:
 - adv7511: Write full Audio infoframe
 - ite6263: Support vendor-specific infoframes
 - simple: Add support for Realtek RTD2171 DP-to-HDMI plus DT bindings
 - Clean up
 
 gma500:
 - Clean up
 
 nouveau:
 - Pre-populate exported buffers
 
 panel:
 - edp: Add support for additonal mt8189 Chromebook panels
 - lvds: Add DT bindings for EDT ETML0700Z8DHA
 - Clean up
 
 pixpaper:
 - Add support for Mayqueen Pixpaper plus DT bindings
 
 rcar-du:
 - Use RUNTIME_PM_OPS
 - Add support for DSI commands
 
 vkms:
 - Support variants of ARGB8888, ARGB16161616, RGB565, RGB888 and P01x
 - Spport YUV with 16-bit components
 
 xe:
 - Pre-populate exported buffers
 -----BEGIN PGP SIGNATURE-----
 
 iQFPBAABCgA5FiEEchf7rIzpz2NEoWjlaA3BHVMLeiMFAmjCkq0bFIAAAAAABAAO
 bWFudTIsMi41KzEuMTEsMiwyAAoJEGgNwR1TC3ojap8H/0ubAqz1vQ96lALV3p/A
 POKh5xJS5PkzsZANxeXSyNF7kBfQd5wfS/c3Y2Ks5jS24XwgWzmQa+4oTTBCN3Cg
 YhuTlyHvYnhgCM5brXUnFl0C+GDzVPLdqvwgWMzPwtJP6L4LgaIHQITYZeNyt02l
 vqXeWWZrxdDvSiShwSAsGaKEwI5UR5LKx/br4uJS/mgvudeHb31GjcbdwDwMKdWp
 jshBD8K9n+1Mc77Hbov3nYM9soBYXr3Slloh9FuOiFxjtVVYmZA4oRuZDEfAbIzj
 +x833t+ZbYQUo6KXMX2UV9VbUbUv/YQsqAtPHyfkaHAsBjxI/1dwHW63jUPePXJu
 mJg=
 =gsE+
 -----END PGP SIGNATURE-----

Merge tag 'drm-misc-next-2025-09-11' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next

drm-misc-next for v6.18:

UAPI Changes:

- Provide 'boot_display' attribute on boot-up devices

amdxdma:
- Add ioctl DRM_IOCTL_AMDXDNA_GET_ARRAY

Cross-subsystem Changes:

bindings:
- Add Mayqueen vendor prefix mayqueen-

pci:
- vgaarb: Use screen_info helpers

Core Changes:

ttm:
- Add interface to populate buffers

Driver Changes:

amdgpu:
- Pre-populate exported buffers

ast:
- Clean up detection of DRAM config

bochs:
- Clean up

bridge:
- adv7511: Write full Audio infoframe
- ite6263: Support vendor-specific infoframes
- simple: Add support for Realtek RTD2171 DP-to-HDMI plus DT bindings
- Clean up

gma500:
- Clean up

nouveau:
- Pre-populate exported buffers

panel:
- edp: Add support for additonal mt8189 Chromebook panels
- lvds: Add DT bindings for EDT ETML0700Z8DHA
- Clean up

pixpaper:
- Add support for Mayqueen Pixpaper plus DT bindings

rcar-du:
- Use RUNTIME_PM_OPS
- Add support for DSI commands

vkms:
- Support variants of ARGB8888, ARGB16161616, RGB565, RGB888 and P01x
- Spport YUV with 16-bit components

xe:
- Pre-populate exported buffers

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

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250911091737.GA39831@linux.fritz.box
2025-09-12 12:58:17 +10:00
Dave Airlie
b1c1c52448 Cross-subsystem Changes:
- iopoll: Generalize read_poll_timeout() into poll_timeout_us() (Ville)
 
 Non-display related:
  - PREEMPT_RT fix (Sebastian)
  - Replace DRM_DEBUG_SELFTEST with DRM_KUNIT_TEST (Ruben, Imre)
  - Some changes oeveral like in RPS, SoC, debugfs targeting display separation (Jani)
 
 Display related:
  - General refactor in favor of intel_display (Suraj)
  - Prune modes for YUV420 (Suraj)
  - Reject HBR3 in any eDP Panel (Ankit)
  - Change AUX DPCD probe address (Imre)
  - Display Wa fix, additions, and updates (Ankit, Vinod, Nemesa, Suraj, Jouni))
  - DP: Fix 2.7 Gbps link training on g4x (Ville)
  - DP: Adjust the idle pattern handling (Ville)
  - DP: Shuffle the link training code a bit (Ville)
  - Don't set/read the DSI C clock divider on GLK (Ville)
  - Precompute plane SURF address/etc (Ville)
  - Enable_psr kernel parameter changes (Jouni)
  - PHY LFPS sending configuration fixes (Jouni)
  - Fix dma_fence_wait_timeout() return value handling (Aakash)
  - DP: Fix disabling training pattern (Imre)
  - Small code clean-ups (Gustavo, Colin, Jani, Juha-Pekka)
  - Change vblank log from err to debug (Suraj)
  - More display clean-up towards intel_display split (Jani)
  - Use the recomended min_hblank values (Arun)
  - Block hpd during suspend (Dibin)
  - DSI: Fix overflow issue in pclk parsing (Jouni)
  - PSR: Do not trigger Frame Change events from frontbuffer flush (Jouni)
  - VBT cleanups and new fields (Jani, Suraj)
  - Type-C enabled/disconnected dp-alt sink (Imre)
  - Optimize panel power-on wait time (Dibin)
  - Wildcat Lake enabling (Imre, Chaitanya)
  - DP HDR updates (Chaitanya)
  - Fix divide by 0 error in i9xx_set_backlight (Suraj)
  - Fixes for PSR (Jouni)
  - Remove the encoder check in hdcp enable (Suraj)
  - Control HDMI output bpc (Lee)
  - Fix possible overflow on tc power (Mika)
  - Convert code towards poll_timeout_* (Jani)
  - Use REG_BIT on FW_BLC_SELF_* macros (Luca)
  - ALPM LFPS and silence period calculation (Jouni)
  - Remove power state verification before HW readout (Imre)
  - Fix HPD mtp_tc_hpd_enable_detection (Ville)
  - DRAM detection (Ville)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEbSBwaO7dZQkcLOKj+mJfZA7rE8oFAmi7W6AACgkQ+mJfZA7r
 E8orzQf/f+ni+KvvwcPuS73TXWbywem/ingl9iY76VIMNNNU6kn9PplGO/pF/XrO
 uCw6yPuYG/Ok43iHhh/fUSq9WD+rlTTxKCQZXZcaUYTR7phxRdCcHL/BjoacsZzc
 VRaZYCHHvDwbOLTf8FUSJlGkEwkSsN3MsfZP20BCuOtw56gHbxKZQ+XiaDJTiH7s
 oDuC+sx6Nk4VjJM8p4oePwOgjYPWJT8yIhLJxw0a3+gj0fr5vSAK94G9xpzZGrM+
 yIXTkoESZkaLPS/lC68DozNdVQwK4Lp96bbvQiZLK1LXlF2KK45mOS6tSAcM5Ybo
 4Vb/f0FCEiQwW23i2YKV3eMa/6fHcQ==
 =tbh/
 -----END PGP SIGNATURE-----

Merge tag 'drm-intel-next-2025-09-05' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next

Cross-subsystem Changes:
 - iopoll: Generalize read_poll_timeout() into poll_timeout_us() (Ville)

Non-display related:
 - PREEMPT_RT fix (Sebastian)
 - Replace DRM_DEBUG_SELFTEST with DRM_KUNIT_TEST (Ruben, Imre)
 - Some changes oeveral like in RPS, SoC, debugfs targeting display separation (Jani)

Display related:
 - General refactor in favor of intel_display (Suraj)
 - Prune modes for YUV420 (Suraj)
 - Reject HBR3 in any eDP Panel (Ankit)
 - Change AUX DPCD probe address (Imre)
 - Display Wa fix, additions, and updates (Ankit, Vinod, Nemesa, Suraj, Jouni))
 - DP: Fix 2.7 Gbps link training on g4x (Ville)
 - DP: Adjust the idle pattern handling (Ville)
 - DP: Shuffle the link training code a bit (Ville)
 - Don't set/read the DSI C clock divider on GLK (Ville)
 - Precompute plane SURF address/etc (Ville)
 - Enable_psr kernel parameter changes (Jouni)
 - PHY LFPS sending configuration fixes (Jouni)
 - Fix dma_fence_wait_timeout() return value handling (Aakash)
 - DP: Fix disabling training pattern (Imre)
 - Small code clean-ups (Gustavo, Colin, Jani, Juha-Pekka)
 - Change vblank log from err to debug (Suraj)
 - More display clean-up towards intel_display split (Jani)
 - Use the recomended min_hblank values (Arun)
 - Block hpd during suspend (Dibin)
 - DSI: Fix overflow issue in pclk parsing (Jouni)
 - PSR: Do not trigger Frame Change events from frontbuffer flush (Jouni)
 - VBT cleanups and new fields (Jani, Suraj)
 - Type-C enabled/disconnected dp-alt sink (Imre)
 - Optimize panel power-on wait time (Dibin)
 - Wildcat Lake enabling (Imre, Chaitanya)
 - DP HDR updates (Chaitanya)
 - Fix divide by 0 error in i9xx_set_backlight (Suraj)
 - Fixes for PSR (Jouni)
 - Remove the encoder check in hdcp enable (Suraj)
 - Control HDMI output bpc (Lee)
 - Fix possible overflow on tc power (Mika)
 - Convert code towards poll_timeout_* (Jani)
 - Use REG_BIT on FW_BLC_SELF_* macros (Luca)
 - ALPM LFPS and silence period calculation (Jouni)
 - Remove power state verification before HW readout (Imre)
 - Fix HPD mtp_tc_hpd_enable_detection (Ville)
 - DRAM detection (Ville)

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

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/aLtc-gk3jhwcWxZh@intel.com
2025-09-12 12:17:10 +10:00
Dave Airlie
9a3f210737 - Don't touch survivability_mode on fini (Michal)
- Fixes around eviction and suspend (Thomas)
 - Extend Wa_13011645652 to PTL-H, WCL (Julia)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEbSBwaO7dZQkcLOKj+mJfZA7rE8oFAmjC6toACgkQ+mJfZA7r
 E8q/IQf8CNF5UxeohpunvIR6lO/igxmy4JxPPGt8/GLhz3rktJqXM/YWfZTBuy31
 0w/egd/nxtisTjgfZHPNUeMwVrNfer8w4VtwWfANVj6iQCRGDbwReo1vO3FK6ISA
 4bNUtv3kDx9VcaGMvyn13I8beAR+EHxNQ8qMGMczYvO3luCr6OcWTqIUmm4coEBL
 Cbiolupi8SSDIXRC+FUXSgwK9VU5928UVxmyim88sFT63FJSRO5CX+5u53LfBrlv
 qdlSO3wXnjE5RbCAxVnAPnfT5DYa0KEuzG8c+KpI3iQ9oDLUgqHafhW7B7L4XIB7
 iHrlRsvfRgZNGuiTFTj9kr+OEZjj8w==
 =xwQv
 -----END PGP SIGNATURE-----

Merge tag 'drm-xe-fixes-2025-09-11' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes

- Don't touch survivability_mode on fini (Michal)
- Fixes around eviction and suspend (Thomas)
- Extend Wa_13011645652 to PTL-H, WCL (Julia)

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

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://lore.kernel.org/r/aMLq7QlaEPHGKXKX@intel.com
2025-09-12 09:44:07 +10:00
Dave Airlie
dab1f85526 A maintainer update, an out-of-bound check for panthor and a revert for
nouveau to fix a race.
 -----BEGIN PGP SIGNATURE-----
 
 iJUEABMJAB0WIQTkHFbLp4ejekA/qfgnX84Zoj2+dgUCaMLy9QAKCRAnX84Zoj2+
 dsYUAX9Bt5DDci551vnKMVVoR8zMLT+qIx/cCOcYLaXFq9eAmm0hT/fpnWNhOXIF
 WuLWeJABf1WW2ahPXpkyFk2kwtmvEDPchdNsdEDPNO3KLqN9/tjLxZMwy4HCq4K1
 FyF9D/vM0A==
 =mqBh
 -----END PGP SIGNATURE-----

Merge tag 'drm-misc-fixes-2025-09-11' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes

A maintainer update, an out-of-bound check for panthor and a revert for
nouveau to fix a race.

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

From: Maxime Ripard <mripard@redhat.com>
Link: https://lore.kernel.org/r/20250911-glistening-uakari-of-serendipity-06ceb1@houat
2025-09-12 09:34:48 +10:00
Dave Airlie
f2c8bbb6e9 Mediatek DRM Fixes - 20250910
1. fix potential OF node use-after-free
 -----BEGIN PGP SIGNATURE-----
 
 iQJMBAABCgA2FiEEACwLKSDmq+9RDv5P4cpzo8lZTiQFAmjBdZEYHGNodW5rdWFu
 Zy5odUBrZXJuZWwub3JnAAoJEOHKc6PJWU4kq+YP/3Ujdf9xfBJ8sqS7AyFJdLDz
 wb1eJbhgvuce+jHJU5NLdNSLCVdcU1RKYHkrMbY0DhdxevN/a2LKZMYDjyv9NlA9
 jreTvGC7BVmZvadkBNY0bMD2GjTGs4/PlHgclApVB6GIQxbWCWPvy7XlaGVcTSRO
 EsZ3RFDVaIL6516wX7/kNNBpMtGaQRScptw8bDTguZtMc+bfCcZbO9LVHS5x5DVu
 h6WrBynLzPxoft0Tk3UIsvGsTAoH0MWymIERWd/2x7NgABPE1vVeyjBOcdn+7Zsv
 ZS2QIvYTlF6/bCNGD3/WJvbe3xdI4W1o5uSd13FhdhT6MSTbs32TTDlSGBgfvaTt
 pq/n+dZJLXzOLiB+lkVEn9pVhALmL3v90CYCG1b77n126kKa10HYEHgmnPxUBn6a
 qYAyaBRZmvaTXLMQWqV71imrvVyYkJFsHIAHjBNTqht0FQ2FdPXqY2ZVrtmYRgb+
 Cf9U3D32E5xC1ofMGly2dmOyyq9DwnqEuLmm34yRD40txbzgh2aSnUUcS6pWMnF9
 +iZQ6X2FvI46iS2UOL2M4iX/hPuw94HNJ9JhBjecqHHpuf3BSY+OdqDFkDM7/5aF
 c0bockFtYgEIhTV773b44pw6jI+9V2dkT+mY44raRAUZUdqKg/H6ZRbwqEKq1XA+
 MtlOMEncm6EJneBgE5yi
 =7CAS
 -----END PGP SIGNATURE-----

Merge tag 'mediatek-drm-fixes-20250910' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-fixes

Mediatek DRM Fixes - 20250910

1. fix potential OF node use-after-free

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

From: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Link: https://lore.kernel.org/r/20250910231813.3526-1-chunkuang.hu@kernel.org
2025-09-12 09:31:27 +10:00
Dave Airlie
1d00adb873 amd-drm-fixes-6.17-2025-09-10:
amdgpu:
 - PSP 11.x fix
 - DPCD quirk handing fix
 - DCN 3.5 PG fix
 - Audio suspend fix
 - OEM i2c clean up fix
 - Module unload memory leak fix
 - DC delay fix
 - ISP firmware fix
 - VCN fixes
 
 amdkfd:
 - P2P topology fix
 - APU mem limit calculation fix
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQgO5Idg2tXNTSZAr293/aFa7yZ2AUCaMGmiwAKCRC93/aFa7yZ
 2IEjAP9j+7yMgZUOrvoQAQcs/Y60zSJF2qRvQRc5q8JrJJHCOgD5AVtiVLnimhor
 VjnS6UwVjHquePksYg4ix6sJhiTtFw4=
 =2uez
 -----END PGP SIGNATURE-----

Merge tag 'amd-drm-fixes-6.17-2025-09-10' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes

amd-drm-fixes-6.17-2025-09-10:

amdgpu:
- PSP 11.x fix
- DPCD quirk handing fix
- DCN 3.5 PG fix
- Audio suspend fix
- OEM i2c clean up fix
- Module unload memory leak fix
- DC delay fix
- ISP firmware fix
- VCN fixes

amdkfd:
- P2P topology fix
- APU mem limit calculation fix

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

From: Alex Deucher <alexander.deucher@amd.com>
Link: https://lore.kernel.org/r/20250910162855.2507853-1-alexander.deucher@amd.com
2025-09-12 09:24:57 +10:00
Dave Airlie
467360e295 Merge tag 'drm-intel-fixes-2025-09-10' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-fixes
- Fix size for for_each_set_bit() in abox iteration [display] (Jani Nikula)

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Tvrtko Ursulin <tursulin@igalia.com>
Link: https://lore.kernel.org/r/aMFUtRdJ46qK-EXl@linux
2025-09-12 09:21:20 +10:00
Dave Airlie
2c38074c36 - Add drm-rust tree to MAINTAINERS
- Require CONFIG_64BIT for Nova
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEg5KilE1kBwrxSL2yBFi+7ljGOUYFAmi6rMQACgkQBFi+7ljG
 OUZk1BAAmfVVGcZ7tmLB1BCYygmb6IHaaEH29jHk6sBb25fdX1UcVduOYsBNiTe/
 1SEEbGcy02aSehOYP8aJ6WiX1bY6lWRvtSnE1AwzOobX1/IF3KieJdnmZt7eo8DS
 FJZMEkVhIQAuWqILiBRG6IO3uKxYLlAHbCfUTFV4XoazQnxi2mLgBX0p8nLbMOf7
 v+BfqYf4+PtkC94yWx7DK2Ezyum+JUeV1nuhPfnJ0jEV7vg/GkUvf6c3olRhF8uF
 qaHfYw72FEv8XCXWg70UDQtRLf0HEyLd8RHOO+7PCLtOxt3gyO650m5uTgOKY+ig
 LjBCGjku/zPJrVJnVO1b68T0hAxaa++IL39mYw8KZFIvudobKXunyaB535E+mReF
 FWXJn9bfHdkKfci7Nm9TJZtqEjpVu0Yez1cCX5oz9Haj2cYew6myJ268Jh1d0ntr
 JuE4b/m01fUZSD+8XCuvLf7Btl9a32cHldS1JGl3bJMHP86+2mb5XtzucURYdowg
 U7j+WONF7jbRn8Sg0JTD5T5KhSYwtggP3XHm26bCnIV7Zdrl3c6N9lRAzdYKmO8W
 nwH5ewYBUs5xDCR+EBk8E2vyTgR2aFJ8OGrtzLLo5Co6JJ+BePvqhewtT2K+1Jxw
 i30b+z4C7twDdV6xR+S1T3TCa08HqLwCPkT68M0B48+fGImcMcQ=
 =9plZ
 -----END PGP SIGNATURE-----

Merge tag 'drm-rust-fixes-2025-09-05' of https://gitlab.freedesktop.org/drm/rust/kernel into drm-fixes

- Add drm-rust tree to MAINTAINERS
- Require CONFIG_64BIT for Nova

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

From: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/aLquN1YvdyI_6PJS@google.com
2025-09-12 09:05:42 +10:00
Daniele Ceraolo Spurio
ba391a102e drm/i915/guc: Include the GuC registers in the error state
If GuC hangs, the GuC logs might not contain enough information to
understand exactly why the hang occurred. In this case, we need to
look at the GuC HW state to try to understand where the GuC is stuck. It
is therefore useful to include the GuC HW state in the error capture.

The list of registers that are part of the GuC HW state can change based
on platform, but it is the same for all platforms from TGL to MTL so we
only need to support one version for i915.

v2: revised list
v3: remove confusing comment, use sizeof(u32) instead of 4 (John)

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://lore.kernel.org/r/20250909223621.3782625-2-daniele.ceraolospurio@intel.com
2025-09-11 11:28:02 -07:00
Dave Airlie
91494dee10 xe: populate buffers before exporting them.
Before exporting a buffer, make sure it has been populated with
pages at least once.

While discussing cgroups we noticed a problem where you could export
a BO to a dma-buf without having it ever being backed or accounted for.

This meant in low memory situations or eventually with cgroups, a
lower privledged process might cause the compositor to try and allocate
a lot of memory on it's behalf and this could fail. At least make
sure the exporter has managed to allocate the RAM at least once
before exporting the object.

This only applies currently to TTM_PL_SYSTEM objects, because
GTT objects get populated on first validate, and VRAM doesn't
use TT.

Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://lore.kernel.org/r/20250904021643.2050497-4-airlied@gmail.com
2025-09-11 10:04:58 +10:00
Dave Airlie
3629e1b22e nouveau: populate buffers before exporting them.
Before exporting a buffer, make sure it has been populated with
pages at least once.

While discussing cgroups we noticed a problem where you could export
a BO to a dma-buf without having it ever being backed or accounted for.

This meant in low memory situations or eventually with cgroups, a
lower privledged process might cause the compositor to try and allocate
a lot of memory on it's behalf and this could fail. At least make
sure the exporter has managed to allocate the RAM at least once
before exporting the object.

This only applies currently to TTM_PL_SYSTEM objects, because
GTT objects get populated on first validate, and VRAM doesn't
use TT.

Acked-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://lore.kernel.org/r/20250904021643.2050497-3-airlied@gmail.com
2025-09-11 10:04:55 +10:00
Dave Airlie
619ddf57cf amdgpu: populate buffers before exporting them.
Before exporting a buffer, make sure it has been populated with
pages at least once.

While discussing cgroups we noticed a problem where you could export
a BO to a dma-buf without having it ever being backed or accounted for.

This meant in low memory situations or eventually with cgroups, a
lower privledged process might cause the compositor to try and allocate
a lot of memory on it's behalf and this could fail. At least make
sure the exporter has managed to allocate the RAM at least once
before exporting the object.

This only applies currently to TTM_PL_SYSTEM objects, because
GTT objects get populated on first validate, and VRAM doesn't
use TT.

Reviewed-by: Christian Koenig <christian.koenig@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://lore.kernel.org/r/20250904021643.2050497-2-airlied@gmail.com
2025-09-11 10:04:31 +10:00
Dave Airlie
5024307986 ttm/bo: add an API to populate a bo before exporting.
While discussing cgroups we noticed a problem where you could export
a BO to a dma-buf without having it ever being backed or accounted for.

This meant in low memory situations or eventually with cgroups, a
lower privledged process might cause the compositor to try and allocate
a lot of memory on it's behalf and this could fail. At least make
sure the exporter has managed to allocate the RAM at least once
before exporting the object.

This only applies currently to TTM_PL_SYSTEM objects, because
GTT objects get populated on first validate, and VRAM doesn't
use TT.

Reviewed-by: Christian Koenig <christian.koenig@amd.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Simona Vetter <simona.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://lore.kernel.org/r/20250904021643.2050497-1-airlied@gmail.com
2025-09-11 10:01:38 +10:00
Rob Clark
b5bad77e1e drm/msm/registers: Sync GPU registers from mesa
In particular, to pull in a SP_READ_SEL_LOCATION bitfield size fix to
fix a7xx GPU snapshot.

Sync from mesa commit 15ee3873aa4d ("freedreno/registers: Update GMU
register xml").

Cc: Karmjit Mahil <karmjit.mahil@igalia.com>
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/673558/
2025-09-10 14:48:12 -07:00
Rob Clark
60e9f776b7 drm/msm/registers: Generate _HI/LO builders for reg64
The upstream mesa copy of the GPU regs has shifted more things to reg64
instead of seperate 32b HI/LO reg32's.  This works better with the "new-
style" c++ builders that mesa has been migrating to for a6xx+ (to better
handle register shuffling between gens), but it leaves the C builders
with missing _HI/LO builders.

So handle the special case of reg64, automatically generating the
missing _HI/LO builders.

Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/673559/
2025-09-10 14:48:12 -07:00
Rob Clark
29e087f31b drm/msm/registers: Make TPL1_BICUBIC_WEIGHTS_TABLE an array
Synced from mesa commit 77c42c1a5752 ("freedreno/registers: Make
TPL1_BICUBIC_WEIGHTS_TABLE an array").

Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/673552/
2025-09-10 14:48:12 -07:00
Rob Clark
9052817620 drm/msm/registers: Sync gen_header.py from mesa
Sync from mesa commit 04e2140d8be7 ("freedreno/registers: remove python
3.9 dependency for compiling msm").

Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/673556/
2025-09-10 14:48:12 -07:00
Rob Clark
f03464c638 drm/msm/registers: Remove license/etc from generated headers
Since these generated files are no longer checked in, either in mesa or
in the linux kernel, simplify things by dropping the verbose generated
comment.

These were semi-nerf'd on the kernel side, in the name of build
reproducibility, by commit ba64c6737f ("drivers: gpu: drm: msm:
registers: improve reproducibility"), but in a way that was semi-
kernel specific.  We can just reduce the divergence between kernel
and mesa by just dropping all of this.

Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/673551/
2025-09-10 14:48:11 -07:00
Mario Limonciello (AMD)
7df7b728c3 DRM: Add a new 'boot_display' attribute
On systems with multiple GPUs there can be uncertainty which GPU is the
primary one used to drive the display at bootup. In some desktop
environments this can lead to increased power consumption because
secondary GPUs may be used for rendering and never go to a low power
state. In order to disambiguate this add a new sysfs attribute
'boot_display' that uses the output of video_is_primary_device() to
populate whether the PCI device was used for driving the display.

Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/issues/23
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250811162606.587759-5-superm1@kernel.org
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
2025-09-10 09:35:33 -05:00
Johan Hovold
9ba2556cef drm/mediatek: clean up driver data initialisation
The platform and drm devices are only used to look up the drm device and
its driver data respectively when initialising the driver data during
bind().

Drop the reference counts as soon as they have been used to make the
code more readable.

Note that the crtc count is never incremented on lookup failures.

Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20250829090345.21075-3-johan@kernel.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
2025-09-10 12:52:59 +00:00
Johan Hovold
4de37a48b6 drm/mediatek: fix potential OF node use-after-free
The for_each_child_of_node() helper drops the reference it takes to each
node as it iterates over children and an explicit of_node_put() is only
needed when exiting the loop early.

Drop the recently introduced bogus additional reference count decrement
at each iteration that could potentially lead to a use-after-free.

Fixes: 1f403699c4 ("drm/mediatek: Fix device/node reference count leaks in mtk_drm_get_all_drm_priv")
Cc: Ma Ke <make24@iscas.ac.cn>
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20250829090345.21075-2-johan@kernel.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
2025-09-10 12:49:37 +00:00
David Rosca
3318f2d20c drm/amdgpu/vcn: Allow limiting ctx to instance 0 for AV1 at any time
There is no reason to require this to happen on first submitted IB only.
We need to wait for the queue to be idle, but it can be done at any
time (including when there are multiple video sessions active).

Signed-off-by: David Rosca <david.rosca@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 8908fdce06)
Cc: stable@vger.kernel.org
2025-09-09 16:42:26 -04:00
David Rosca
2b10cb58d7 drm/amdgpu/vcn4: Fix IB parsing with multiple engine info packages
There can be multiple engine info packages in one IB and the first one
may be common engine, not decode/encode.
We need to parse the entire IB instead of stopping after finding first
engine info.

Signed-off-by: David Rosca <david.rosca@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit dc8f9f0f45)
Cc: stable@vger.kernel.org
2025-09-09 16:41:49 -04:00
Pratap Nirujogi
857ccfc19f drm/amd/amdgpu: Declare isp firmware binary file
Declare isp firmware file isp_4_1_1.bin required by isp4.1.1 device.

Suggested-by: Alexey Zagorodnikov <xglooom@gmail.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Pratap Nirujogi <pratap.nirujogi@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit d97b74a833)
Cc: stable@vger.kernel.org
2025-09-09 16:41:15 -04:00
Alex Deucher
1d66c3f2b8 drm/amd/display: use udelay rather than fsleep
This function can be called from an atomic context so we can't use
fsleep().

Fixes: 01f60348d8 ("drm/amd/display: Fix 'failed to blank crtc!'")
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4549
Cc: Wen Chen <Wen.Chen3@amd.com>
Cc: Fangzhi Zuo <jerry.zuo@amd.com>
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 27e4dc2c05)
2025-09-09 16:39:16 -04:00
Alex Deucher
7838fb5f11 drm/amdgpu: fix a memory leak in fence cleanup when unloading
Commit b61badd20b ("drm/amdgpu: fix usage slab after free")
reordered when amdgpu_fence_driver_sw_fini() was called after
that patch, amdgpu_fence_driver_sw_fini() effectively became
a no-op as the sched entities we never freed because the
ring pointers were already set to NULL.  Remove the NULL
setting.

Reported-by: Lin.Cao <lincao12@amd.com>
Cc: Vitaly Prosyak <vitaly.prosyak@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Fixes: b61badd20b ("drm/amdgpu: fix usage slab after free")
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit a525fa37aa)
Cc: stable@vger.kernel.org
2025-09-09 16:38:26 -04:00