Thomas Zimmermann
edd9231f3a
drm/udl: Set struct drm_device.dma_dev
...
Set the dma_dev field provided by the DRM device. Required for PRIME
dma-buf import. Remove the driver's implementation.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307080836.42848-6-tzimmermann@suse.de
2025-03-12 09:04:01 +01:00
Thomas Zimmermann
f5bd9d528e
drm/gud: Set struct drm_device.dma_dev
...
Set the dma_dev field provided by the DRM device. Required for PRIME
dma-buf import. Remove the driver's implementation.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307080836.42848-5-tzimmermann@suse.de
2025-03-12 09:03:58 +01:00
Thomas Zimmermann
e3d4dfe91b
drm/gm12u320: Set struct drm_device.dma_dev
...
Set the dma_dev field provided by the DRM device. Required for PRIME
dma-buf import. Remove the driver's implementation.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307080836.42848-4-tzimmermann@suse.de
2025-03-12 09:03:55 +01:00
Thomas Zimmermann
7b7af17401
drm/appletbdrm: Set struct drm_device.dma_dev
...
Set the dma_dev field provided by the DRM device. Required for PRIME
dma-buf import. Remove the driver's implementation.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Aditya Garg <gargaditya08@live.com >
Reviewed-by: Aditya Garg <gargaditya08@live.com >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307080836.42848-3-tzimmermann@suse.de
2025-03-12 09:03:51 +01:00
Thomas Zimmermann
143ec8d3f9
drm/prime: Support dedicated DMA device for dma-buf imports
...
Importing dma-bufs via PRIME requires a DMA-capable device. Devices on
peripheral busses, such as USB, often cannot perform DMA by themselves.
Without DMA-capable device PRIME import fails. DRM drivers for USB
devices already use a separate DMA device for dma-buf imports. Make the
mechanism generally available.
Besides the case of USB, there are embedded DRM devices without DMA
capability. DMA is performed by a separate controller. DRM drivers should
set this accordingly.
Add the field dma_dev to struct drm_device to refer to the device's DMA
device. For USB this should be the USB controller. Use dma_dev in the
PRIME import helpers, if set.
v2:
- acquire internal reference on dma_dev (Jani)
- add DMA-controller usecase to docs (Maxime)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Maxime Ripard <mripard@kernel.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307080836.42848-2-tzimmermann@suse.de
2025-03-12 09:03:46 +01:00
Thomas Zimmermann
c6a84bc969
drm/ast: cursor: Drop page alignment
...
The cursor scanout address requires alignment to a multiple of 8,
but does not require page alignment. Change the offset calculation
accordingly. Frees up a few more bytes for the primary framebuffer.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-8-tzimmermann@suse.de
2025-03-12 08:38:13 +01:00
Thomas Zimmermann
e5f953b8ea
drm/ast: Remove vram_fb_available from struct ast_device
...
Helpers compute the offset and size of the available framebuffer
memory. Remove the obsolete field vram_fb_available from struct
ast_device. Also define the cursor-signature size next to its only
user.
v2:
- initialize plane size
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-7-tzimmermann@suse.de
2025-03-12 08:38:12 +01:00
Thomas Zimmermann
ca7a8e8efc
drm/ast: Add helper for computing framebuffer location in video memory
...
The ast driver stores the primary plane's image in the framebuffer
memory up to where the cursor is located. Add helpers to calculate
the offset and size.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-6-tzimmermann@suse.de
2025-03-12 08:38:12 +01:00
Thomas Zimmermann
4ee3229bbe
drm/ast: cursor: Add helpers for computing location in video memory
...
The ast drivers stores the cursor image at the end of the video memory.
Add helpers to calculate the offset and size.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-5-tzimmermann@suse.de
2025-03-12 08:38:11 +01:00
Thomas Zimmermann
a958c7f13b
drm/ast: Add VGACR99 register constants
...
Add register constants for VGACR99 and use them when detecting the
size of the VGA memory. Aligns the code with the programming manual.
Also replace literal size values with Linux' SZ_ size constants.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-4-tzimmermann@suse.de
2025-03-12 08:38:10 +01:00
Thomas Zimmermann
9f711d1877
drm/ast: Add VGACRAA register constants
...
Add register constants for VGACRAA and use them when detecting the
size of the VGA memory. Aligns the code with the programming manual.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-3-tzimmermann@suse.de
2025-03-12 08:38:10 +01:00
Thomas Zimmermann
2b7970e9a6
drm/ast: Replace AST_VIDMEM_SIZE_ with Linux SZ_ constants
...
Ast's AST_VIDMEM_SIZE_ constants enumerate supported video-memory
sizes from 8 MiB to 128 MiB. Replace them with Linux' SZ_ constants
of the same value. When expanded, the literal values remain the same.
The size constant for 128 MiB is unused and the default size is not
necessary. Remove both of them.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305163207.267650-2-tzimmermann@suse.de
2025-03-12 08:38:09 +01:00
Vignesh Raman
27b6bce72c
drm/ci: enable lockdep detection
...
We have enabled PROVE_LOCKING (which enables LOCKDEP) in drm-ci.
This will output warnings when kernel locking errors are encountered
and will continue executing tests. To detect if lockdep has been
triggered, check the debug_locks value in /proc/lockdep_stats after
the tests have run. When debug_locks is 0, it indicates that lockdep
has detected issues and turned itself off. Check this value, and if
lockdep is detected, exit with an error and configure it as a warning
in GitLab CI.
GitLab CI ignores exit codes other than 1 by default. Pass the correct
exit code with variable FF_USE_NEW_BASH_EVAL_STRATEGY set to true or
exit on failure.
Also update the documentation.
Acked-by: Helen Koike <helen.fornazier@gmail.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250217053719.442644-4-vignesh.raman@collabora.com
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
2025-03-12 08:16:31 +05:30
Vignesh Raman
7948fd1b8e
drm/ci: enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH
...
Enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH for mutex
slowpath debugging.
Acked-by: Helen Koike <helen.fornazier@gmail.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250217053719.442644-3-vignesh.raman@collabora.com
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
2025-03-12 08:16:31 +05:30
Vignesh Raman
afb7a1d669
drm/ci: refactor software-driver stage jobs
...
Move common job configuration for software-driver
stage jobs to separate job.
Acked-by: Helen Koike <helen.fornazier@gmail.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250217053719.442644-2-vignesh.raman@collabora.com
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
2025-03-12 08:16:31 +05:30
Anusha Srivatsa
9e75b6ef40
Documentation: Update the todo
...
Update the Documentation to be more precise.
v2: Update for clarity
v3: Further details in Todo
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/640856/?series=144073&rev=5
2025-03-10 17:46:40 -04:00
Anusha Srivatsa
67c4ea8267
drm/sti: move to devm_platform_ioremap_resource() usage
...
Replace platform_get_resource/_byname + devm_ioremap
with just devm_platform_ioremap_resource()
Used Coccinelle to do this change. SmPl patch:
@rule@
identifier res;
expression ioremap;
identifier pdev;
constant mem;
expression name;
@@
-struct resource *res;
...
-res = platform_get_resource_byname(pdev,mem,name);
<...
-if (!res) {
-...
-}
...>
-ioremap = devm_ioremap(...);
+ioremap = devm_platform_ioremap_resource_byname(pdev,name);
and
@rule_2@
identifier res;
expression ioremap;
identifier pdev;
@@
-struct resource *res;
...
-res = platform_get_resource(pdev,...);
<...
-if (!res) {
-...
-}
...>
-ioremap = devm_ioremap(...);
+ioremap = devm_platform_ioremap_resource(pdev,0);
v2: Fix compilation error.
v3: Handle returns properly since the new API return error pointers
and not NULL
Cc: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com >
Cc: Alain Volmat <alain.volmat@foss.st.com >
Reviewed-by: Maxime Ripard <mripard@kernel.org >(v2)
Acked-by: Raphael Gallais-Pou <rgallaispou@gmail.com >(v2)
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Link: https://patchwork.freedesktop.org/patch/640854/?series=144073&rev=5
2025-03-10 16:25:26 -04:00
Anusha Srivatsa
92b8f062a6
drm/sprd: move to devm_platform_ioremap_resource() usage
...
Replace platform_get_resource + devm_ioremap
with just devm_platform_ioremap_resource()
Used Coccinelle to do this change. SmPl patch:
@rule_2@
identifier res;
expression ioremap;
identifier pdev;
@@
-struct resource *res;
...
-res = platform_get_resource(pdev,...);
<...
-if (!res) {
-...
-}
...>
-ioremap = devm_ioremap(...);
+ioremap = devm_platform_ioremap_resource(pdev,0);
v2: Address the return handling properly since
the new API returns error pointers and not NULL.
Cc: Chunyan Zhang <zhang.lyra@gmail.com >
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Reviewed-by: Chunyan Zhang <zhang.lyra@gmail.com >(v1)
Reviewed-by: Maxime Ripard <mripard@kernel.org >(v1)
Link: https://patchwork.freedesktop.org/patch/640854/?series=144073&rev=5
2025-03-10 16:25:01 -04:00
Keisuke Nishimura
3282422bf2
drm/vmwgfx: Add error path for xa_store in vmw_bo_add_detached_resource
...
The xa_store() may fail due to memory allocation failure because there
is no guarantee that the index is already used. This fix introduces new
paths to handle the error.
This patch also aligns the order of function calls by calling
vmw_bo_add_detached_resource() before ttm_prime_object_init() in order
to allow consistent error handling.
Fixes: d6667f0ddf ("drm/vmwgfx: Fix handling of dumb buffers")
Signed-off-by: Keisuke Nishimura <keisuke.nishimura@inria.fr >
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250225145223.34773-1-keisuke.nishimura@inria.fr
2025-03-10 14:31:43 -04:00
Ian Forbes
0039a3b35b
drm/vmwgfx: Add seqno waiter for sync_files
...
Because sync_files are passive waiters they do not participate in
the processing of fences like the traditional vmw_fence_wait IOCTL.
If userspace exclusively uses sync_files for synchronization then
nothing in the kernel actually processes fence updates as interrupts
for fences are masked and ignored if the kernel does not indicate to the
SVGA device that there are active waiters.
This oversight results in a bug where the entire GUI can freeze waiting
on a sync_file that will never be signalled as we've masked the interrupts
to signal its completion. This bug is incredibly racy as any process which
interacts with the fencing code via the 3D stack can process the stuck
fences on behalf of the stuck process causing it to run again. Even a
simple app like eglinfo is enough to resume the stuck process. Usually
this bug is seen at a login screen like GDM because there are no other
3D apps running.
By adding a seqno waiter we re-enable interrupt based processing of the
dma_fences associated with the sync_file which is signalled as part of a
dma_fence_callback.
This has likely been broken since it was initially added to the kernel in
2017 but has gone unnoticed until mutter recently started using sync_files
heavily over the course of 2024 as part of their explicit sync support.
Fixes: c906965dee ("drm/vmwgfx: Add export fence to file descriptor support")
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com >
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250228200633.642417-1-ian.forbes@broadcom.com
2025-03-10 14:31:43 -04:00
Zack Rusin
171e3a45f4
drm/vmwgfx: Bump the minor version
...
Bump the minor version of vmwgfx in order to detect releases where the
cursor issues have been fixed.
Cursors created with dumb buffer were broken on vmwgfx. Userspace (e.g.
kwin) has workarounds for those issues and often disables hardware
cursors on vmwgfx. This allows enabling hardware cursors on vmwgfx
again.
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com >
Reviewed-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com >
Reviewed-by: Martin Krastev <martin.krastev@broadcom.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307125836.3877138-3-zack.rusin@broadcom.com
2025-03-10 14:31:30 -04:00
Zack Rusin
965544150d
drm/vmwgfx: Refactor cursor handling
...
Refactor cursor handling to make the code maintainable again. Over the
last 12 years the svga device improved support for virtualized cursors
and at the same time the drm interfaces evolved quite a bit from
pre-atomic to current atomic ones. vmwgfx only added new code over
the years, instead of adjusting/refactoring the paths.
Export the cursor plane handling to its own file. Remove special
handling of the legacy cursor support to make it fit within the global
cursor plane mechanism.
Finally redo dirty tracking because memcmp never worked correctly
resulting in the cursor not being properly updated in the guest.
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com >
Reviewed-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com >
Reviewed-by: Martin Krastev <martin.krastev@broadcom.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250307125836.3877138-2-zack.rusin@broadcom.com
2025-03-10 14:30:33 -04:00
Vignesh Raman
6efda95a66
MAINTAINERS: Update drm/ci maintainers
...
Update drm/ci maintainer entries:
* Add myself as drm/ci maintainer.
* Update Helen's email address.
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Acked-by: Helen Koike <helen.fornazier@gmail.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250205134811.2002718-1-vignesh.raman@collabora.com
2025-03-10 17:30:39 +05:30
Miguel Ojeda
57145afa33
drm/panic: clean Clippy warning
...
Clippy warns:
error: manual implementation of an assign operation
--> drivers/gpu/drm/drm_panic_qr.rs:418:25
|
418 | self.carry = self.carry % pow;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.carry %= pow`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
Thus clean it up.
Fixes: dbed4a797e ("drm/panic: Better binary encoding in QR code")
Signed-off-by: Miguel Ojeda <ojeda@kernel.org >
Reviewed-by: Alice Ryhl <aliceryhl@google.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250303093242.1011790-1-ojeda@kernel.org
2025-03-10 10:52:55 +01:00
Dr. David Alan Gilbert
12ec4f30fc
drm/gma500: Remove unused psb_mmu_virtual_to_pfn
...
psb_mmu_virtual_to_pfn() was added in 2011 by
commit 8c8f1c958a ("gma500: introduce the GTT and MMU handling logic")
but hasn't been used.
Remove it.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250308234428.255164-1-linux@treblig.org
2025-03-10 10:14:58 +01:00
Dr. David Alan Gilbert
629067565c
drm/gma500/psb_intel_modes: Remove unused psb_intel_ddc_probe
...
psb_intel_ddc_probe() was added in 2011 by
commit 89c78134cc ("gma500: Add Poulsbo support")
but has remained unused (probably because drm_get_edid is used
instead).
Remove it.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250308234356.255114-1-linux@treblig.org
2025-03-10 10:14:39 +01:00
Charles Han
ce468a7b63
drm/vc4: plane: fix inconsistent indenting warning
...
Fix below inconsistent indenting smatch warning.
smatch warnings:
drivers/gpu/drm/vc4/vc4_plane.c:2083 vc6_plane_mode_set() warn: inconsistent indenting
Signed-off-by: Charles Han <hanchunchao@inspur.com >
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305102107.2595-1-hanchunchao@inspur.com
2025-03-09 14:49:55 -03:00
Zhi Wang
a738fa9105
drm/nouveau/nvkm: introduce new GSP reply policy NVKM_GSP_RPC_REPLY_POLL
...
Some GSP RPC commands need a new reply policy: "caller don't care about
the message content but want to make sure a reply is received". To
support this case, a new reply policy is introduced.
NV_VGPU_MSG_FUNCTION_ALLOC_MEMORY is a large GSP RPC command. The actual
required policy is NVKM_GSP_RPC_REPLY_POLL. This can be observed from the
dump of the GSP message queue. After the large GSP RPC command is issued,
GSP will write only an empty RPC header in the queue as the reply.
Without this change, the policy "receiving the entire message" is used
for NV_VGPU_MSG_FUNCTION_ALLOC_MEMORY. This causes the timeout of receiving
the returned GSP message in the suspend/resume path.
Introduce the new reply policy NVKM_GSP_RPC_REPLY_POLL, which waits for
the returned GSP message but discards it for the caller. Use the new policy
NVKM_GSP_RPC_REPLY_POLL on the GSP RPC command
NV_VGPU_MSG_FUNCTION_ALLOC_MEMORY.
Fixes: 50f290053d ("drm/nouveau: support handling the return of large GSP message")
Cc: Danilo Krummrich <dakr@kernel.org >
Cc: Alexandre Courbot <acourbot@nvidia.com >
Tested-by: Ben Skeggs <bskeggs@nvidia.com >
Signed-off-by: Zhi Wang <zhiw@nvidia.com >
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20250227013554.8269-3-zhiw@nvidia.com
2025-03-09 13:42:10 +01:00
Zhi Wang
4570355f8e
drm/nouveau/nvkm: factor out current GSP RPC command policies
...
There can be multiple cases of handling the GSP RPC messages, which are
the reply of GSP RPC commands according to the requirement of the
callers and the nature of the GSP RPC commands.
The current supported reply policies are "callers don't care" and "receive
the entire message" according to the requirement of the callers. To
introduce a new policy, factor out the current RPC command reply polices.
Also, centralize the handling of the reply in a single function.
Factor out NVKM_GSP_RPC_REPLY_NOWAIT as "callers don't care" and
NVKM_GSP_RPC_REPLY_RECV as "receive the entire message". Introduce a
kernel doc to document the policies. Factor out
r535_gsp_rpc_handle_reply().
No functional change is intended for small GSP RPC commands. For large GSP
commands, the caller decides the policy of how to handle the returned GSP
RPC message.
Cc: Ben Skeggs <bskeggs@nvidia.com >
Cc: Alexandre Courbot <acourbot@nvidia.com >
Signed-off-by: Zhi Wang <zhiw@nvidia.com >
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20250227013554.8269-2-zhiw@nvidia.com
2025-03-09 13:41:59 +01:00
José Expósito
2c7aafc05c
drm/vkms: Allow to attach connectors and encoders
...
Add a list of possible encoders to the connector configuration and
helpers to attach and detach them.
Now that the default configuration has its connector and encoder
correctly, configure the output following the configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-15-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:28 +01:00
José Expósito
da38c72018
drm/vkms: Allow to configure multiple connectors
...
Add a list of connectors to vkms_config and helper functions to add and
remove as many connectors as wanted.
For backwards compatibility, add one enabled connector to the default
configuration.
A future patch will allow to attach connectors and encoders, but for the
moment there are no changes in the way the output is configured.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-14-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:28 +01:00
José Expósito
b8776fc9b2
drm/vkms: Allow to attach encoders and CRTCs
...
Add a list of possible CRTCs to the encoder configuration and helpers to
attach and detach them.
Now that the default configuration has its encoder and CRTC correctly
attached, configure the output following the configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-13-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:27 +01:00
José Expósito
f60a183dc9
drm/vkms: Allow to configure multiple encoders
...
Add a list of encoders to vkms_config and helper functions to add and
remove as many encoders as wanted.
For backwards compatibility, add one encoder to the default
configuration.
A future patch will allow to attach encoders and CRTCs, but for the
moment there are no changes in the way the output is configured.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-12-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:26 +01:00
José Expósito
c204bf652a
drm/vkms: Allow to attach planes and CRTCs
...
Add a list of possible CRTCs to the plane configuration and helpers to
attach, detach and get the primary and cursor planes attached to a CRTC.
Now that the default configuration has its planes and CRTC correctly
attached, configure the output following the configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-11-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:26 +01:00
José Expósito
600df32dac
drm/vkms: Allow to configure multiple CRTCs
...
Add a list of CRTCs to vkms_config and helper functions to add and
remove as many CRTCs as wanted.
For backwards compatibility, add one CRTC to the default configuration.
A future patch will allow to attach planes and CRTCs, but for the
moment there are no changes in the way the output is configured.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-10-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:24 +01:00
José Expósito
bc5b0d5dcc
drm/vkms: Allow to configure multiple planes
...
Add a list of planes to vkms_config and create as many planes as
configured during output initialization.
For backwards compatibility, add one primary plane and, if configured,
one cursor plane and NUM_OVERLAY_PLANES planes to the default
configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-9-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:24 +01:00
Louis Chauvet
d1386d721d
drm/vkms: Add a validation function for VKMS configuration
...
As the configuration will be used by userspace, add a validator to avoid
creating a broken DRM device.
For the moment, the function always returns true, but rules will be
added in future patches.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: José Expósito <jose.exposito89@gmail.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-8-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:23 +01:00
José Expósito
969a3a4e2b
drm/vkms: Set device name from vkms_config
...
In order to be able to create multiple devices, the device name needs to
be unique.
Allow to set it in the VKMS configuration.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-7-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:22 +01:00
José Expósito
8b059b0c3f
drm/vkms: Move default_config creation to its own function
...
Extract the initialization of the default configuration to a function.
Refactor, no functional changes.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-6-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:21 +01:00
José Expósito
d3ae1e394b
drm/vkms: Extract vkms_config header
...
Creating a new vkms_config structure will be more complex once we
start adding more options.
Extract the vkms_config structure to its own header and source files
and add functions to create and delete a vkms_config and to initialize
debugfs.
Refactor, no functional changes.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-5-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:21 +01:00
José Expósito
5b5a56d9a2
drm/vkms: Add KUnit test scaffolding
...
Add the required boilerplate to start creating KUnit test.
To run the tests:
$ ./tools/testing/kunit/kunit.py run \
--kunitconfig=drivers/gpu/drm/vkms/tests
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Co-developed-by: Arthur Grillo <arthurgrillo@riseup.net >
Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net >
Co-developed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-4-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:20 +01:00
José Expósito
a833c5880a
drm/vkms: Create vkms_connector struct
...
Create a structure wrapping the drm_connector.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-3-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:19 +01:00
José Expósito
6fdbc11502
drm/vkms: Extract vkms_connector header
...
Up until now, the logic to manage connectors was in vkms_output.c.
Since more options will be added to connectors in the future, extract
the code to its own file.
Refactor, no functional changes.
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com >
Signed-off-by: José Expósito <jose.exposito89@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250218101214.5790-2-jose.exposito89@gmail.com
Signed-off-by: Maxime Ripard <mripard@kernel.org >
2025-03-07 10:58:18 +01:00
Charles Han
2d4d775d11
drm: pl111: fix inconsistent indenting warning
...
Fix below inconsistent indenting smatch warning.
smatch warnings:
drivers/gpu/drm/pl111/pl111_versatile.c:504 pl111_versatile_init() warn: inconsistent indenting
Signed-off-by: Charles Han <hanchunchao@inspur.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305102540.2815-1-hanchunchao@inspur.com
2025-03-07 10:25:10 +01:00
Dr. David Alan Gilbert
9249a900fe
drm/gma500: Remove unused mrst_clock_funcs
...
The mrst_clock_funcs const was added in 2013 by
commit ac6113ebb7 ("drm/gma500/mrst: Add SDVO clock calculation")
and commented as 'Not used yet'.
It's not been used since, so remove it.
The helper functions it points to are still used elsewhere.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250306155155.212599-1-linux@treblig.org
2025-03-07 09:47:56 +01:00
Charles Han
5f7a654b5e
drm/imx: legacy-bridge: fix inconsistent indenting warning
...
Fix below inconsistent indenting smatch warning.
smatch warnings:
drivers/gpu/drm/bridge/imx/imx-legacy-bridge.c:79 devm_imx_drm_legacy_bridge() warn: inconsistent indenting
Signed-off-by: Charles Han <hanchunchao@inspur.com >
Reviewed-by: Liu Ying <victor.liu@nxp.com >
Signed-off-by: Liu Ying <victor.liu@nxp.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20250305103042.3017-1-hanchunchao@inspur.com
2025-03-07 13:11:09 +08:00
Anusha Srivatsa
fc51acfca9
drm/tegra: move to devm_platform_ioremap_resource() usage
...
Replace platform_get_resource + devm_ioremap_resource
with just devm_platform_ioremap_resource()
Used Coccinelle to do this change. SmPl patch:
@rule_1@
identifier res;
expression ioremap_res;
identifier pdev;
@@
-struct resource *res;
...
-res = platform_get_resource(pdev,...);
-ioremap_res = devm_ioremap_resource(...);
+ioremap_res = devm_platform_ioremap_resource(pdev,0);
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Mikko Perttunen <mperttunen@nvidia.com >
Reviewed-by: Maxime Ripard <mripard@kernel.org >
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Link: https://patchwork.freedesktop.org/patch/640855/?series=144073&rev=5
2025-03-06 12:37:53 -05:00
Anusha Srivatsa
46babeac0e
drm/mxsfb: move to devm_platform_ioremap_resource() usage
...
Replace platform_get_resource + devm_ioremap_resource
with just devm_platform_ioremap_resource()
Used Coccinelle to do this change. SmPl patch:
@rule_1@
identifier res;
expression ioremap_res;
identifier pdev;
@@
-struct resource *res;
...
-res = platform_get_resource(pdev,...);
-ioremap_res = devm_ioremap_resource(...);
+ioremap_res = devm_platform_ioremap_resource(pdev,0);
Cc: Marek Vasut <marex@denx.de >
Cc: Stefan Agner <stefan@agner.ch >
Reviewed-by: Maxime Ripard <mripard@kernel.org >
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Link: https://patchwork.freedesktop.org/patch/640852/?series=144073&rev=5
2025-03-06 12:37:47 -05:00
Anusha Srivatsa
9da894756e
drm/hisilicon: move to devm_platform_ioremap_resource() usage
...
Replace platform_get_resource + devm_ioremap_resource
with just devm_platform_ioremap_resource()
Used Coccinelle to do this change. SmPl patch:
@rule_1@
identifier res;
expression ioremap_res;
identifier pdev;
@@
-struct resource *res;
...
-res = platform_get_resource(pdev,...);
-ioremap_res = devm_ioremap_resource(...);
+ioremap_res = devm_platform_ioremap_resource(pdev,0);
Cc: Xinliang Liu <xinliang.liu@linaro.org >
Cc: Tian Tao <tiantao6@hisilicon.com >
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com >
Cc: Sumit Semwal <sumit.semwal@linaro.org >
Cc: Yongqin Liu <yongqin.liu@linaro.org >
Cc: John Stultz <jstultz@google.com >
Reviewed-by: Maxime Ripard <mripard@kernel.org >
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Link: https://patchwork.freedesktop.org/patch/640850/?series=144073&rev=5
2025-03-06 12:37:41 -05:00
Anusha Srivatsa
41668e792e
drm/fsl-dcu: move to devm_platform_ioremap_resource() usage
...
Replace platform_get_resource + devm_ioremap_resource
with just devm_platform_ioremap_resource()
Used Coccinelle to do this change. SmPl patch:
@rule_1@
identifier res;
expression ioremap_res;
identifier pdev;
@@
-struct resource *res;
...
-res = platform_get_resource(pdev,...);
-ioremap_res = devm_ioremap_resource(...);
+ioremap_res = devm_platform_ioremap_resource(pdev,0);
Cc: Stefan Agner <stefan@agner.ch >
Cc: Alison Wang <alison.wang@nxp.com >
Reviewed-by: Maxime Ripard <mripard@kernel.org >
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com >
Link: https://patchwork.freedesktop.org/patch/640851/?series=144073&rev=5
2025-03-06 12:37:33 -05:00