]> git.ipfire.org Git - thirdparty/linux.git/log
thirdparty/linux.git
2 months agodrm/ttm: Increase pool shrinker batch target
Tvrtko Ursulin [Tue, 3 Jun 2025 11:27:50 +0000 (12:27 +0100)] 
drm/ttm: Increase pool shrinker batch target

The default core shrink target of 128 pages (SHRINK_BATCH) is quite low
relative to how cheap TTM pool shrinking is, and how the free pages are
distributed in page order pools.

We can make the target a bit more aggressive by making it roughly the
average number of pages across all pools, freeing more of the cached
pages every time shrinker core invokes our callback.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
Link: https://lore.kernel.org/r/20250603112750.34997-3-tvrtko.ursulin@igalia.com
2 months agodrm/ttm: Respect the shrinker core free target
Tvrtko Ursulin [Tue, 3 Jun 2025 11:27:49 +0000 (12:27 +0100)] 
drm/ttm: Respect the shrinker core free target

Currently the TTM shrinker aborts shrinking as soon as it frees pages from
any of the page order pools and by doing so it can fail to respect the
freeing target which was configured by the shrinker core.

We use the wording "can fail" because the number of freed pages will
depend on the presence of pages in the pools and the order of the pools on
the LRU list. For example if there are no free pages in the high order
pools the shrinker core may require multiple passes over the TTM shrinker
before it will free the default target of 128 pages (assuming there are
free pages in the low order pools). This inefficiency can be compounded by
the pool LRU where multiple further calls into the TTM shrinker are
required to end up looking at the pool with pages.

Improve this by never freeing less than the shrinker core has requested.

At the same time we start reporting the number of scanned pages (freed in
this case), which prevents the core shrinker from giving up on the TTM
shrinker too soon and moving on.

v2:
 * Simplify loop logic. (Christian)
 * Improve commit message.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
Link: https://lore.kernel.org/r/20250603112750.34997-2-tvrtko.ursulin@igalia.com
2 months agoMerge drm-next-2025-05-28 into drm-misc-next
Maxime Ripard [Tue, 3 Jun 2025 13:07:39 +0000 (15:07 +0200)] 
Merge drm-next-2025-05-28 into drm-misc-next

Christian needs a recent drm-next branch to merge fence patches.

Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/udl: use DRM_GEM_SHMEM_DRIVER_OPS_NO_MAP_SGT
Shixiong Ou [Thu, 22 May 2025 07:07:14 +0000 (15:07 +0800)] 
drm/udl: use DRM_GEM_SHMEM_DRIVER_OPS_NO_MAP_SGT

Import dmabuf without mapping its sg_table to avoid issues likes:
   udl 2-1.4:1.0: swiotlb buffer is full (sz: 2097152 bytes), total 65536 (slots), used 1 (slots)

Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250522070714.439824-3-oushixiong1025@163.com
2 months agodrm/ast: use DRM_GEM_SHMEM_DRIVER_OPS_NO_MAP_SGT
Shixiong Ou [Thu, 22 May 2025 07:07:13 +0000 (15:07 +0800)] 
drm/ast: use DRM_GEM_SHMEM_DRIVER_OPS_NO_MAP_SGT

Import dmabuf without mapping its sg_table to avoid issues likes:
  ast 0000:07:00.0: swiotlb buffer is full (sz: 3145728 bytes), total 32768 (slots), used 0 (slots)

Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250522070714.439824-2-oushixiong1025@163.com
2 months agodrm/shmem-helper: Import dmabuf without mapping its sg_table
Shixiong Ou [Thu, 22 May 2025 07:07:12 +0000 (15:07 +0800)] 
drm/shmem-helper: Import dmabuf without mapping its sg_table

[WHY]
1. Drivers using DRM_GEM_SHADOW_PLANE_HELPER_FUNCS and
   DRM_GEM_SHMEM_DRIVER_OPS (e.g., udl, ast) do not require
   sg_table import.
   They only need dma_buf_vmap() to access the shared buffer's
   kernel virtual address.

2. On certain Aspeed-based boards, a dma_mask of 0xffff_ffff may
   trigger SWIOTLB during dmabuf import. However, IO_TLB_SEGSIZE
   restricts the maximum DMA streaming mapping memory, resulting in
   errors like:

   ast 0000:07:00.0: swiotlb buffer is full (sz: 3145728 bytes), total 32768 (slots), used 0 (slots)

[HOW]
Provide a gem_prime_import implementation without sg_table mapping
to avoid issues (e.g., "swiotlb buffer is full"). Drivers that do not
require sg_table can adopt this.

Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250522070714.439824-1-oushixiong1025@163.com
2 months agodrm/panfrost: Fix panfrost device variable name in devfreq
Adrián Larumbe [Tue, 20 May 2025 17:44:02 +0000 (18:44 +0100)] 
drm/panfrost: Fix panfrost device variable name in devfreq

Commit 64111a0e22a9 ("drm/panfrost: Fix incorrect updating of current
device frequency") was a Panfrost port of a similar fix in Panthor.

Fix the Panfrost device pointer variable name so that it follows
Panfrost naming conventions.

Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Fixes: 64111a0e22a9 ("drm/panfrost: Fix incorrect updating of current device frequency")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250520174634.353267-6-adrian.larumbe@collabora.com
2 months agodrm/panfrost: show device-wide list of DRM GEM objects over DebugFS
Adrián Larumbe [Tue, 20 May 2025 17:44:01 +0000 (18:44 +0100)] 
drm/panfrost: show device-wide list of DRM GEM objects over DebugFS

This change is essentially a Panfrost port of commit a3707f53eb3f
("drm/panthor: show device-wide list of DRM GEM objects over DebugFS").

The DebugFS file is almost the same as in Panthor, minus the GEM object
usage flags, since Panfrost has no kernel-only BO's.

Two additional GEM state flags which are displayed but aren't relevant
to Panthor are 'Purged' and 'Purgeable', since Panfrost implements an
explicit shrinker and a madvise ioctl to flag objects as reclaimable.

Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250520174634.353267-5-adrian.larumbe@collabora.com
2 months agodrm/panfrost: Add driver IOCTL for setting BO labels
Adrián Larumbe [Tue, 20 May 2025 17:44:00 +0000 (18:44 +0100)] 
drm/panfrost: Add driver IOCTL for setting BO labels

Allow UM to label a BO for which it possesses a DRM handle.

Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250520174634.353267-4-adrian.larumbe@collabora.com
2 months agodrm/panfrost: Internally label some BOs
Adrián Larumbe [Tue, 20 May 2025 17:43:59 +0000 (18:43 +0100)] 
drm/panfrost: Internally label some BOs

Perfcnt samples buffer is not exposed to UM, but we would like to keep
a tag on it as a potential debug aid.

PRIME imported GEM buffers are UM exposed, but since the usual Panfrost
UM driver code path is not followed in their creation, they might remain
unlabelled for their entire lifetime, so a generic tag was deemed
preferable. The tag is assigned before a UM handle is created so it
doesn't contradict the logic about labelling internal BOs.

Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250520174634.353267-3-adrian.larumbe@collabora.com
2 months agodrm/panfrost: Add BO labelling to Panfrost
Adrián Larumbe [Tue, 20 May 2025 17:43:58 +0000 (18:43 +0100)] 
drm/panfrost: Add BO labelling to Panfrost

Functions for labelling UM-exposed an internal BOs are provided. An
example of the latter would be the Perfcnt sample buffer.

This commit is done in preparation of a following one that will allow
UM to set BO labels through a new ioctl().

Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250520174634.353267-2-adrian.larumbe@collabora.com
2 months agoaccel/ivpu: Add inference_timeout_ms module parameter
Karol Wachowski [Thu, 15 May 2025 09:31:28 +0000 (11:31 +0200)] 
accel/ivpu: Add inference_timeout_ms module parameter

Add new inference_timeout_ms parameter that allows specifying
maximum allowed duration in milliseconds that inference can take before
triggering a recovery.

Calculate maximum number of heartbeat retries based on ratio between
inference timeout and tdr timeout.

Signed-off-by: Karol Wachowski <karol.wachowski@intel.com>
Reviewed-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://lore.kernel.org/r/20250515093128.252041-1-jacek.lawrynowicz@linux.intel.com
2 months agodma-buf: Add forward declaration of struct seq_file in dma-fence.h
Herbert Xu [Fri, 30 May 2025 08:40:05 +0000 (16:40 +0800)] 
dma-buf: Add forward declaration of struct seq_file in dma-fence.h

Add forward declaration of struct seq_file before using it in
function prototype.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://lore.kernel.org/r/aDlu5TGyA1WuMsvw@gondor.apana.org.au
2 months agodrm/sched/tests: Use one lock for fence context
Philipp Stanner [Tue, 27 May 2025 10:10:30 +0000 (12:10 +0200)] 
drm/sched/tests: Use one lock for fence context

There is no need for separate locks for single jobs and the entire
scheduler. The dma_fence context can be protected by the scheduler lock,
allowing for removing the jobs' locks. This simplifies things and
reduces the likelyhood of deadlocks etc.

Replace the jobs' locks with the mock scheduler lock.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Signed-off-by: Philipp Stanner <phasta@kernel.org>
Link: https://lore.kernel.org/r/20250527101029.56491-2-phasta@kernel.org
2 months agodrm/tests: hdmi: Add test for unsuccessful fallback to YUV420
Cristian Ciocaltea [Tue, 27 May 2025 12:11:27 +0000 (15:11 +0300)] 
drm/tests: hdmi: Add test for unsuccessful fallback to YUV420

Provide test to verify a mandatory fallback to YUV420 output cannot
succeed when driver doesn't advertise YUV420 support.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-19-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Add max TMDS rate fallback tests for YUV420 mode
Cristian Ciocaltea [Tue, 27 May 2025 12:11:26 +0000 (15:11 +0300)] 
drm/tests: hdmi: Add max TMDS rate fallback tests for YUV420 mode

Provide tests to verify drm_atomic_helper_connector_hdmi_check() helper
fallback behavior when using YUV420 output format.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-18-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Provide EDID supporting 4K@30Hz with RGB/YUV
Cristian Ciocaltea [Tue, 27 May 2025 12:11:25 +0000 (15:11 +0300)] 
drm/tests: hdmi: Provide EDID supporting 4K@30Hz with RGB/YUV

Create a test EDID advertising the following capabilities:

Max resolution: 3840x2160@30Hz with RGB, YUV444, YUV422, YUV420
Max BPC:        16 for all modes
Max TMDS clock: 340 MHz

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-17-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Rename max TMDS rate fallback tests
Cristian Ciocaltea [Tue, 27 May 2025 12:11:24 +0000 (15:11 +0300)] 
drm/tests: hdmi: Rename max TMDS rate fallback tests

In preparation to extend the max TMDS rate fallback tests for covering
YUV420 output, update the rather generic function names
drm_test_check_max_tmds_rate_{bpc|format}_fallback() to properly
indicate the intended test cases.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-16-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Add limited range tests for YUV420 mode
Cristian Ciocaltea [Tue, 27 May 2025 12:11:23 +0000 (15:11 +0300)] 
drm/tests: hdmi: Add limited range tests for YUV420 mode

Provide tests to verify that drm_atomic_helper_connector_hdmi_check()
helper behaviour when using YUV420 output format is to always set the
limited RGB quantization range to 'limited', no matter what the value of
Broadcast RGB property is.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-15-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Provide EDID supporting 4K@30Hz with YUV420 only
Cristian Ciocaltea [Tue, 27 May 2025 12:11:22 +0000 (15:11 +0300)] 
drm/tests: hdmi: Provide EDID supporting 4K@30Hz with YUV420 only

Create a test EDID advertising the following capabilities:

Max resolution:
- 1920x1080@60Hz with RGB, YUV444, YUV422
- 3840x2160@30Hz with YUV420 only

Max BPC:         16 for all modes
Max TMDS clock:  200 MHz

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-14-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Switch to drm_atomic_get_new_connector_state() where possible
Cristian Ciocaltea [Tue, 27 May 2025 12:11:21 +0000 (15:11 +0300)] 
drm/tests: hdmi: Switch to drm_atomic_get_new_connector_state() where possible

Replace the calls to drm_atomic_get_connector_state() with
drm_atomic_get_new_connector_state() for cases which do not require
allocating the connector state, e.g. after drm_atomic_check_only() when
the intent is to only read the new connector state.

The rational is to avoid the need to handle the potential EDEADLK error
returned by the former helper, which would require restarting the entire
atomic sequence.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-13-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Setup ycbcr_420_allowed before initializing connector
Cristian Ciocaltea [Tue, 27 May 2025 12:11:20 +0000 (15:11 +0300)] 
drm/tests: hdmi: Setup ycbcr_420_allowed before initializing connector

Initializing HDMI connector via drmm_connector_hdmi_init() requires its
->ycbcr_420_allowed flag to be adjusted according to the supported
formats passed as function argument, prior to the actual invocation.

In order to allow providing test coverage for YUV420 modes, ensure the
flag is properly setup.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-12-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Drop unused drm_kunit_helper_connector_hdmi_init_funcs()
Cristian Ciocaltea [Tue, 27 May 2025 12:11:19 +0000 (15:11 +0300)] 
drm/tests: hdmi: Drop unused drm_kunit_helper_connector_hdmi_init_funcs()

After updating the code to make use of the new EDID setup helper,
drm_kunit_helper_connector_hdmi_init_funcs() became unused, hence drop
it.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-11-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Replace open coded EDID setup
Cristian Ciocaltea [Tue, 27 May 2025 12:11:18 +0000 (15:11 +0300)] 
drm/tests: hdmi: Replace open coded EDID setup

Make use of the recently introduced macros to reduce boilerplate code
around EDID setup. This also helps dropping the redundant calls to
set_connector_edid().

No functional changes intended.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-10-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Add macro to simplify EDID setup
Cristian Ciocaltea [Tue, 27 May 2025 12:11:17 +0000 (15:11 +0300)] 
drm/tests: hdmi: Add macro to simplify EDID setup

Factor out the HDMI connector initialization from
drm_kunit_helper_connector_hdmi_init_funcs() into a common
__connector_hdmi_init() function, while extending its functionality to
allow setting custom (i.e. non-default) EDID data.

Introduce a macro as a wrapper over the new helper to allow dropping the
open coded EDID setup from all test cases.

The actual conversion will be handled separately; for now just apply it
to drm_kunit_helper_connector_hdmi_init() helper.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-9-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Switch to 'void *' type for EDID data
Cristian Ciocaltea [Tue, 27 May 2025 12:11:16 +0000 (15:11 +0300)] 
drm/tests: hdmi: Switch to 'void *' type for EDID data

Replace 'const char *' with 'const void *' type for current_edid member
in struct drm_atomic_helper_connector_hdmi_priv, as well as for the edid
parameter of set_connector_edid() function.

Suggested-by: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-8-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/tests: hdmi: Replace '[_]MHz' with 'mhz'
Cristian Ciocaltea [Tue, 27 May 2025 12:11:15 +0000 (15:11 +0300)] 
drm/tests: hdmi: Replace '[_]MHz' with 'mhz'

Improve consistency throughout drm_hdmi_state_helper_test.c by replacing
the two occurrences of '[_]MHz' substring with 'mhz'.

As a bonus, this also helps getting rid of checkpatch.pl complaint:

  CHECK: Avoid CamelCase: <reject_100_MHz_connector_hdmi_funcs>

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-7-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/connector: hdmi: Use YUV420 output format as an RGB fallback
Cristian Ciocaltea [Tue, 27 May 2025 12:11:14 +0000 (15:11 +0300)] 
drm/connector: hdmi: Use YUV420 output format as an RGB fallback

Try to make use of YUV420 when computing the best output format and
RGB cannot be supported for any of the available color depths.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-6-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/connector: hdmi: Factor out bpc and format computation logic
Cristian Ciocaltea [Tue, 27 May 2025 12:11:13 +0000 (15:11 +0300)] 
drm/connector: hdmi: Factor out bpc and format computation logic

In preparation to support fallback to an alternative output format, e.g.
YUV420, when RGB cannot be used for any of the available color depths,
move the bpc try loop out of hdmi_compute_config() and, instead, make it
part of hdmi_compute_format(), while adding a new parameter to the
latter holding the output format to be checked and eventually set.

Since this helper now also changes hdmi.output_bpc in addition to
hdmi.output_format, highlight the extended functionality by renaming it
to hdmi_compute_format_bpc().

This improves code reusability and further extensibility, without
introducing any functional changes.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-5-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/connector: hdmi: Add missing bpc debug info to hdmi_try_format_bpc()
Cristian Ciocaltea [Tue, 27 May 2025 12:11:12 +0000 (15:11 +0300)] 
drm/connector: hdmi: Add missing bpc debug info to hdmi_try_format_bpc()

The very first debug message in hdmi_try_format_bpc() is incomplete, as
it doesn't provide the given bpc in addition to the tried format.

Add the missing debug information and drop the now redundant message
from hdmi_compute_config().

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-4-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/connector: hdmi: Improve debug message for supported format
Cristian Ciocaltea [Tue, 27 May 2025 12:11:11 +0000 (15:11 +0300)] 
drm/connector: hdmi: Improve debug message for supported format

Add the missing 'bpc' string to the debug message indicating the
supported format identified within hdmi_try_format_bpc() helper.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-3-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/connector: hdmi: Add support for YUV420 format verification
Cristian Ciocaltea [Tue, 27 May 2025 12:11:10 +0000 (15:11 +0300)] 
drm/connector: hdmi: Add support for YUV420 format verification

Provide the necessary constraints verification in
sink_supports_format_bpc() in order to support handling of YUV420
output format.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-2-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm/connector: hdmi: Evaluate limited range after computing format
Cristian Ciocaltea [Tue, 27 May 2025 12:11:09 +0000 (15:11 +0300)] 
drm/connector: hdmi: Evaluate limited range after computing format

Evaluating the requirement to use a limited RGB quantization range
involves a verification of the output format, among others, but this is
currently performed before actually computing the format, hence relying
on the old connector state.

Move the call to hdmi_is_limited_range() after hdmi_compute_config() to
ensure the verification is done on the updated output format.

Fixes: 027d43590649 ("drm/connector: hdmi: Add RGB Quantization Range to the connector state")
Reviewed-by: Dmitry Baryshkov <lumag@kernel.org>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250527-hdmi-conn-yuv-v5-1-74c9c4a8ac0c@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de33: mixer: add mixer configuration for the H616
Jernej Skrabec [Wed, 28 May 2025 09:22:13 +0000 (21:22 +1200)] 
drm: sun4i: de33: mixer: add mixer configuration for the H616

The H616 (and related SoC packages sharing the same die) carry the new
DE33 display engine.

Add the mixer configuration and a compatible string for the H616 to the
mixer.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-9-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de33: vi_scaler: add Display Engine 3.3 (DE33) support
Jernej Skrabec [Wed, 28 May 2025 09:22:12 +0000 (21:22 +1200)] 
drm: sun4i: de33: vi_scaler: add Display Engine 3.3 (DE33) support

The vi_scaler appears to be used in preference to the ui_scaler module
for hardware video scaling in the DE33.

Enable support for this scaler.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-8-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support
Jernej Skrabec [Wed, 28 May 2025 09:22:11 +0000 (21:22 +1200)] 
drm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support

The DE33 is a newer version of the Allwinner Display Engine IP block,
found in the H616, H618, H700 and T507 SoCs. DE2 and DE3 are already
supported by the mainline driver.

Notable features (from the H616 datasheet and implemented):
- 4096 x 2048 (4K) output support

Other features (implemented but not in this patchset):
- AFBC ARM Frame Buffer Compression support
- YUV pipeline support

The DE2 and DE3 engines have a blender register range within the
mixer engine register map, whereas the DE33 separates this out into
a separate display group, and adds a top register map.

The DE33 also appears to remove the global double buffer control
register, present in the DE2 and DE3.

Extend the mixer to support the DE33.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-7-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodt-bindings: allwinner: add H616 DE33 mixer binding
Ryan Walklin [Wed, 28 May 2025 09:22:10 +0000 (21:22 +1200)] 
dt-bindings: allwinner: add H616 DE33 mixer binding

The Allwinner H616 and variants have a new display engine revision
(DE33).

The mixer configuration registers are significantly different to the DE3
and DE2 revisions, being split into separate top and display blocks,
therefore a fallback for the mixer compatible is not provided.

Note that the DE33 mixer requires 3 register blocks instead of 1. To
keep things simple the maxItems value for registers is conditionally
removed for the H616 and replaced with the block names from the vendor
BSP kernel.

Add a display engine mixer binding for the DE33.

Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Link: https://lore.kernel.org/r/20250528092431.28825-6-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de2/de3: use generic register reference function for layer configuration
Jernej Skrabec [Wed, 28 May 2025 09:22:09 +0000 (21:22 +1200)] 
drm: sun4i: de2/de3: use generic register reference function for layer configuration

Use the new blender register lookup function where required in the layer
commit and update code.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-5-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de2/de3: add generic blender register reference function
Jernej Skrabec [Wed, 28 May 2025 09:22:08 +0000 (21:22 +1200)] 
drm: sun4i: de2/de3: add generic blender register reference function

The DE2 and DE3 engines have a blender register range within the
mixer engine register map, whereas the DE33 separates this out into
a separate display group.

Prepare for this by adding a function to look the blender reference up,
with a subsequent patch to add a conditional based on the DE type.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-4-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de2/de3: refactor mixer initialisation
Jernej Skrabec [Wed, 28 May 2025 09:22:07 +0000 (21:22 +1200)] 
drm: sun4i: de2/de3: refactor mixer initialisation

Now that the DE variant can be selected by enum, take the oppportunity
to factor out some common initialisation code to a separate function.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-3-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agodrm: sun4i: de2/de3: add mixer version enum
Jernej Skrabec [Wed, 28 May 2025 09:22:06 +0000 (21:22 +1200)] 
drm: sun4i: de2/de3: add mixer version enum

The Allwinner DE2 and DE3 display engine mixers are currently identified
by a simple boolean flag. This will not scale to support additional DE
variants.

Convert the boolean flag to an enum.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Ryan Walklin <ryan@testtoast.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250528092431.28825-2-ryan@testtoast.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/lg-lb035q02: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:48 +0000 (21:46 -0500)] 
panel/lg-lb035q02: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-46-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/panel-lvds: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:47 +0000 (21:46 -0500)] 
panel/panel-lvds: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-45-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/nec-nl8048hl11: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:46 +0000 (21:46 -0500)] 
panel/nec-nl8048hl11: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-44-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/s6e88a0-ams452ef01: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:45 +0000 (21:46 -0500)] 
panel/s6e88a0-ams452ef01: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-43-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/xinpeng-xpp055c272: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:44 +0000 (21:46 -0500)] 
panel/xinpeng-xpp055c272: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-42-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/widechips-ws2401: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:43 +0000 (21:46 -0500)] 
panel/widechips-ws2401: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-41-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/visionox-vtdr6130: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:42 +0000 (21:46 -0500)] 
panel/visionox-vtdr6130: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-40-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/visionox-rm692e5.c: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:41 +0000 (21:46 -0500)] 
panel/visionox-rm692e5.c: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-39-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/visionox-rm69299: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:40 +0000 (21:46 -0500)] 
panel/visionox-rm69299: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-38-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/visionox-r66451: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:39 +0000 (21:46 -0500)] 
panel/visionox-r66451: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-37-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/tpo-tpg110: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:38 +0000 (21:46 -0500)] 
panel/tpo-tpg110: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-36-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/tpo-td043mtea1: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:37 +0000 (21:46 -0500)] 
panel/tpo-td043mtea1: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-35-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/tpo-td028ttec1: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:36 +0000 (21:46 -0500)] 
panel/tpo-td028ttec1: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-34-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/synaptics-r63353: allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:35 +0000 (21:46 -0500)] 
panel/synaptics-r63353: allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-33-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/panel-summit: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:34 +0000 (21:46 -0500)] 
panel/panel-summit: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-32-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/truly-nt35521: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:33 +0000 (21:46 -0500)] 
panel/truly-nt35521: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-31-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sony-td4353-jdi: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:32 +0000 (21:46 -0500)] 
panel/sony-td4353-jdi: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-30-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sony-acx565akm: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:31 +0000 (21:46 -0500)] 
panel/sony-acx565akm: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-29-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sitronix-st7789v: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:30 +0000 (21:46 -0500)] 
panel/sitronix-st7789v: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-28-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sitronix-st7703: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:29 +0000 (21:46 -0500)] 
panel/sitronix-st7703: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-27-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sitronix-st7701: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:28 +0000 (21:46 -0500)] 
panel/sitronix-st7701: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-26-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sharp-ls060t1sx01: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:27 +0000 (21:46 -0500)] 
panel/sharp-ls060t1sx01: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-25-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/sharp-ls037v7dw01: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:26 +0000 (21:46 -0500)] 
panel/sharp-ls037v7dw01: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-24-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/seiko-43wvf1g: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:25 +0000 (21:46 -0500)] 
panel/seiko-43wvf1g: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-23-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-sofef00: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:24 +0000 (21:46 -0500)] 
panel/samsung-sofef00: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-22-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6e8aa0: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:23 +0000 (21:46 -0500)] 
panel/samsung-s6e8aa0: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-21-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/s6e88a0-ams427ap24: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:22 +0000 (21:46 -0500)] 
panel/s6e88a0-ams427ap24: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-20-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6e63j0x03: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:21 +0000 (21:46 -0500)] 
panel/samsung-s6e63j0x03: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-19-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6e3ha8: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:20 +0000 (21:46 -0500)] 
panel/samsung-s6e3ha8: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-18-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6e3ha2: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:19 +0000 (21:46 -0500)] 
panel/samsung-s6e3ha2: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-17-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6e3fa7: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:18 +0000 (21:46 -0500)] 
panel/samsung-s6e3fa7: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-16-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6d7aa0: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:17 +0000 (21:46 -0500)] 
panel/samsung-s6d7aa0: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-15-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6d27a1: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:16 +0000 (21:46 -0500)] 
panel/samsung-s6d27a1: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-14-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-s6d16d0: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:15 +0000 (21:46 -0500)] 
panel/samsung-s6d16d0: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-13-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-ld9040: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:14 +0000 (21:46 -0500)] 
panel/samsung-ld9040: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-12-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-db7430: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:13 +0000 (21:46 -0500)] 
panel/samsung-db7430: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-11-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-atna33xc20: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:12 +0000 (21:46 -0500)] 
panel/samsung-atna33xc20: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-10-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-ams639rq08: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:11 +0000 (21:46 -0500)] 
panel/samsung-ams639rq08: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-9-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/samsung-ams581vf01: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:10 +0000 (21:46 -0500)] 
panel/samsung-ams581vf01: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-8-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/ronbo-rb070d30: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:09 +0000 (21:46 -0500)] 
panel/ronbo-rb070d30: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-7-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/raydium-rm69380: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:08 +0000 (21:46 -0500)] 
panel/raydium-rm69380: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-6-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/raydium-rm692e5: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:07 +0000 (21:46 -0500)] 
panel/raydium-rm692e5: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-5-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/raydium-rm68200: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:06 +0000 (21:46 -0500)] 
panel/raydium-rm68200: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-4-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/raydium-rm67200: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:05 +0000 (21:46 -0500)] 
panel/raydium-rm67200: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-3-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/raydium-rm67191: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:04 +0000 (21:46 -0500)] 
panel/raydium-rm67191: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-2-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agopanel/orisetech-otm8009a: Use refcounted allocation in place of devm_kzalloc()
Anusha Srivatsa [Fri, 30 May 2025 02:46:03 +0000 (21:46 -0500)] 
panel/orisetech-otm8009a: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
Link: https://lore.kernel.org/r/20250529-b4-drm_panel_mass_driver_convert_part3-v2-1-5d75a3711e40@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
2 months agoaccel/qaic: Add Reliability, Accessibility, Serviceability (RAS)
Jeff Hugo [Fri, 16 May 2025 16:06:34 +0000 (10:06 -0600)] 
accel/qaic: Add Reliability, Accessibility, Serviceability (RAS)

AIC100 devices generates Reliability, Availability, Serviceability events
via MHI QAIC_STATUS channel. Support such events and print a structured
log with details of the events, and if the event describes an uncorrected
error, reset the device to put it back into service. As these events may
not all be reported via other mechanisms like AER, maintain counts of
the number of errors observed for each type.

Signed-off-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Troy Hanson <quic_thanson@quicinc.com>
Reviewed-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
Link: https://lore.kernel.org/r/20250516160634.1408309-1-jeff.hugo@oss.qualcomm.com
2 months agodrm/gem: Inline drm_gem_pin() into PRIME helpers
Thomas Zimmermann [Mon, 26 May 2025 13:25:20 +0000 (15:25 +0200)] 
drm/gem: Inline drm_gem_pin() into PRIME helpers

Inline drm_gem_pin() into its only caller drm_gem_map_attach()
and update the documentation in the callback's purpose. Do the
equivalent for drm_gem_unpin(). Also add stricter error checking
on the involved locking.

The pin operation in the GEM object functions is a helper for
PRIME-exported buffer objects. Having drm_gem_pin() gives the
impression of a general-purpose interface, which is not the case.
Removing it makes the pin callback a bit harder to misuse.

v2:
- clarify comment on pin callback (Dmitry)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250526132634.531789-5-tzimmermann@suse.de
2 months agodrm/gem-vram: Un-export pin helpers
Thomas Zimmermann [Mon, 26 May 2025 13:25:19 +0000 (15:25 +0200)] 
drm/gem-vram: Un-export pin helpers

There are no external callers of the gem-vram pin helpers. Hence
unexport them.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250526132634.531789-4-tzimmermann@suse.de
2 months agodrm/gem-vram: Do not set pin and unpin callbacks
Thomas Zimmermann [Mon, 26 May 2025 13:25:18 +0000 (15:25 +0200)] 
drm/gem-vram: Do not set pin and unpin callbacks

Gem-vram helpers do not support PRIME dma-buf sharing. So nothing
will ever call pin/unpin on its buffer objects. Do not set these
callbacks in struct drm_gem_object_funcs.

v2:
- fix typo in commit description

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250526132634.531789-3-tzimmermann@suse.de
2 months agodrm/client: Do not pin in drm_client_buffer_vmap()
Thomas Zimmermann [Mon, 26 May 2025 13:25:17 +0000 (15:25 +0200)] 
drm/client: Do not pin in drm_client_buffer_vmap()

Pin and vmap are two distict operations. Do not mix them.

The helper drm_client_buffer_vmap() maps the pages for fbdev-dma
and fbdev-shmem. In both cases, the vmap operation ensures that
the pages are available until the vunmap happens. And as the pages
in DMA or SHMEM areas cannot be moved, there is no reason to call
pin. Hence remove the pin call.

Update drm_client_buffer_vunmap() accordingly.

v2:
- call 'locked' variants of GEM helpers (Dmitry)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://lore.kernel.org/r/20250526132634.531789-2-tzimmermann@suse.de
2 months agodrm: drm_fourcc: add 10/12/16bit software decoder YCbCr formats
Robert Mader [Fri, 9 May 2025 13:35:35 +0000 (15:35 +0200)] 
drm: drm_fourcc: add 10/12/16bit software decoder YCbCr formats

This adds FOURCCs for 3-plane 10/12/16bit YCbCr formats used by software
decoders like ffmpeg, dav1d and libvpx. The intended use-case is buffer
sharing between decoders and GPUs by allocating buffers with e.g. udmabuf
or dma-heaps, avoiding unnecessary copies and format conversions in
various scenarios.

Unlike formats typically used by hardware decoders the 10/12bit formats
use a LSB alignment. In order to allow fast implementations in GL
and Vulkan the padding must contain only zeros, so the float
representation can be calculated by multiplying with 2^6=64 or 2^4=16
respectively.

MRs or branches for Mesa, Vulkan, Gstreamer, Weston and Mutter can be found at:
 - https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34303
 - https://github.com/rmader/Vulkan-Docs/commits/ycbcr-16bit-lsb-formats/
 - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540
 - https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1753
 - https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4348

The naming scheme follows the 'P' and 'Q' formats. The 'S' stands for
'software' and was selected in order to make remembering easy.

The 'Sx16' formats could as well be 'Qx16'. We stick with 'S' as 16bit software
decoders are likely much more common than hardware ones for the foreseeable
future. Note that these formats already have Vulkan equivalents:
 - VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
 - VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
 - VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Link: https://lore.kernel.org/r/20250509133535.60330-1-robert.mader@collabora.com
Signed-off-by: Daniel Stone <daniels@collabora.com>
2 months agodrm/xe: Fix NPD when saving default context
Lucas De Marchi [Wed, 28 May 2025 21:42:22 +0000 (14:42 -0700)] 
drm/xe: Fix NPD when saving default context

xef is only valid if it's a job from userspace.  For in-kernel jobs it
causes a NPD like below:

        <4> [] RIP: 0010:xe_sched_job_create+0xbd/0x390 [xe]
...
        <4> [] Call Trace:
        <4> []  <TASK>
        <4> []  __xe_bb_create_job+0xa2/0x240 [xe]
        <4> []  ? find_held_lock+0x31/0x90
        <4> []  ? xa_find_after+0x12c/0x250
        <4> []  xe_bb_create_job+0x6e/0x380 [xe]
        <4> []  ? xa_find_after+0x136/0x250
        <4> []  ? __drm_dev_dbg+0x7d/0xb0
        <4> []  xe_gt_record_default_lrcs+0x542/0xb00 [xe]

Since drm_file starts with 1 for the unique id, just use 0 for the
in-kernel jobs.

Fixes: 2956554823ce ("drm/sched: Store the drm client_id in drm_sched_fence")
Cc: Christian König <christian.koenig@amd.com>
Cc: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Cc: Philipp Stanner <phasta@kernel.org>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250528-fix-sched-v1-1-c042ef23ff8b@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
2 months agodrm/vkms: Add support for DRM_FORMAT_R*
Louis Chauvet [Tue, 15 Apr 2025 13:55:39 +0000 (15:55 +0200)] 
drm/vkms: Add support for DRM_FORMAT_R*

This add the support for:
- R1/R2/R4/R8

R1 format was tested with [1] and [2].

[1]: https://lore.kernel.org/r/20240313-new_rotation-v2-0-6230fd5cae59@bootlin.com
[2]: https://lore.kernel.org/igt-dev/20240306-b4-kms_tests-v1-0-8fe451efd2ac@bootlin.com/

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250415-yuv-v18-8-f2918f71ec4b@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
2 months agodrm/vkms: Add how to run the Kunit tests
Arthur Grillo [Tue, 15 Apr 2025 13:55:38 +0000 (15:55 +0200)] 
drm/vkms: Add how to run the Kunit tests

Now that we have KUnit tests, add instructions on how to run them.

Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
Reviewed-by: José Expósito <jose.exposito89@gmail.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250415-yuv-v18-7-f2918f71ec4b@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
2 months agodrm/vkms: Create KUnit tests for YUV conversions
Arthur Grillo [Tue, 15 Apr 2025 13:55:37 +0000 (15:55 +0200)] 
drm/vkms: Create KUnit tests for YUV conversions

Create KUnit tests to test the conversion between YUV and RGB. Test each
conversion and range combination with some common colors.

The code used to compute the expected result can be found in comment.

[Louis Chauvet:
- fix minor formating issues (whitespace, double line)
- change expected alpha from 0x0000 to 0xffff
- adapt to the new get_conversion_matrix usage
- apply the changes from Arthur
- move struct pixel_yuv_u8 to the test itself]

Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250415-yuv-v18-6-f2918f71ec4b@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
2 months agodrm: Export symbols to use in tests
Louis Chauvet [Tue, 15 Apr 2025 13:55:36 +0000 (15:55 +0200)] 
drm: Export symbols to use in tests

The functions drm_get_color_encoding_name and drm_get_color_range_name
are useful for clarifying test results. Therefore, export them so they
can be used in tests built as modules.

Reviewed-by: José Expósito <jose.exposito89@gmail.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250415-yuv-v18-5-f2918f71ec4b@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
2 months agodrm/vkms: Drop YUV formats TODO
Arthur Grillo [Tue, 15 Apr 2025 13:55:35 +0000 (15:55 +0200)] 
drm/vkms: Drop YUV formats TODO

VKMS has support for YUV formats now. Remove the task from the TODO
list.

Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250415-yuv-v18-4-f2918f71ec4b@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
2 months agodrm/vkms: Add range and encoding properties to the plane
Arthur Grillo [Tue, 15 Apr 2025 13:55:34 +0000 (15:55 +0200)] 
drm/vkms: Add range and encoding properties to the plane

Now that the driver internally handles these quantization ranges and YUV
encoding matrices, expose the UAPI for setting them.

Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
[Louis Chauvet: retained only relevant parts, updated the commit message]
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250415-yuv-v18-3-f2918f71ec4b@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>