Thomas Zimmermann
cedaf7cddd
fbdev: Support NULL for name in option-string lookup
...
Ignore the per-driver video options if no driver name has been
specified to fb_get_option(). Return the global options in this
case.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230209135509.7786-4-tzimmermann@suse.de
2023-02-20 14:56:43 +01:00
Thomas Zimmermann
73ce73c30b
fbdev: Transfer video= option strings to caller; clarify ownership
...
In fb_get_options(), always duplicate the returned option string and
transfer ownership of the memory to the function's caller.
Until now, only the global option string got duplicated and transferred
to the caller; the per-driver options were owned by fb_get_options().
In the end, it was impossible for the function's caller to detect if
it had to release the string's memory buffer. Hence, all calling drivers
leak the memory buffer. The leaks have existed ever since, but drivers
only call fb_get_option() once as part of module initialization. So the
amount of leaked memory is not significant.
Fix the semantics of fb_get_option() by unconditionally transferring
ownership of the memory buffer to the caller. Later patches can resolve
the memory leaks in the fbdev drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230209135509.7786-3-tzimmermann@suse.de
2023-02-20 14:56:42 +01:00
Thomas Zimmermann
c88b946af1
fbdev: Fix contact info in fb_cmdline.c
...
Fix Daniel's email address. No functional changes.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230209135509.7786-2-tzimmermann@suse.de
2023-02-20 14:56:41 +01:00
Simon Ser
6068771673
drm: document DRM_IOCTL_PRIME_HANDLE_TO_FD and PRIME_FD_TO_HANDLE
...
v2: mention caps, note that the IOCTLs might fail, document that
user-space needs a data structure to keep track of the
handles (Daniel V.)
Signed-off-by: Simon Ser <contact@emersion.fr >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Pekka Paalanen <ppaalanen@gmail.com >
Cc: Daniel Stone <daniel@fooishbar.org >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230217162151.59996-2-contact@emersion.fr
2023-02-20 10:42:00 +01:00
Simon Ser
61a55f8b1e
drm: document expectations for GETFB2 handles
...
There are two important details missing from the docs:
- If the memory object backing the FB already has a GEM handle,
it's not re-used, a new one is generated.
- Aliased planes will return the same GEM handle.
v2: document how user-space can obtain DMA-BUF FDs without leaking
handles (Pekka)
Signed-off-by: Simon Ser <contact@emersion.fr >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Pekka Paalanen <ppaalanen@gmail.com >
Cc: Daniel Stone <daniel@fooishbar.org >
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20230217162151.59996-1-contact@emersion.fr
2023-02-20 10:41:43 +01:00
Thomas Weißschuh
c2f2c721d2
dma-buf: make kobj_type structure constant
...
Since commit ee6d3dd4ed ("driver core: make kobj_type constant.")
the driver core allows the usage of const struct kobj_type.
Take advantage of this to constify the structure definition to prevent
modification at runtime.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230217-kobj_type-dma-buf-v1-1-b84a3616522c@weissschuh.net
2023-02-17 10:59:14 +01:00
Simon Ser
158350aae1
drm: document DRM_IOCTL_GEM_CLOSE
...
This is a bit tricky, because of the ref'counting considerations.
See also [1] for more discussion about this topic. Since this is
kernel docs, I've decided to elaborate a bit less on the user-space
details.
[1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/110
Signed-off-by: Simon Ser <contact@emersion.fr >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Pekka Paalanen <ppaalanen@gmail.com >
Cc: Daniel Stone <daniel@fooishbar.org >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230216130934.156541-2-contact@emersion.fr
2023-02-17 10:30:49 +01:00
Maxime Ripard
9a87e28da1
Revert "drm/vc4: hdmi: Enforce the minimum rate at runtime_resume"
...
This reverts commit ae71ab585c .
Commit ae71ab585c ("drm/vc4: hdmi: Enforce the minimum rate at
runtime_resume") was introduced to work around an issue partly due to
the clk-bcm2835 driver on the RaspberryPi0-3.
Since we're not using that driver for our HDMI clocks, we can now revert
it.
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://lore.kernel.org/r/20230126-rpi-display-fw-clk-cleanup-v1-4-d646ff6fb842@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
2023-02-16 10:24:10 +01:00
Maxime Ripard
c97518ab74
Revert "drm/vc4: hdmi: Fix HSM clock too low on Pi4"
...
This reverts commit 3bc6a37f59 .
Commit 3bc6a37f59 ("drm/vc4: hdmi: Fix HSM clock too low on Pi4") was
introduced to work around an issue partly due to the clk-bcm2835 driver
on the RaspberryPi0-3.
Since we're not using that driver for our HDMI clocks, we can now revert
that inelegant solution.
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://lore.kernel.org/r/20230126-rpi-display-fw-clk-cleanup-v1-3-d646ff6fb842@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
2023-02-16 10:24:10 +01:00
Maxime Ripard
0267c6c01a
drm/vc4: hdmi: Enable power domain before setting minimum
...
On the RaspberryPi0-3, the HSM clock was provided by the clk-bcm2835
driver, but on the Pi4 it was provided by the firmware through the
clk-raspberrypi driver.
The clk-bcm2835 driver registers the HSM clock using the
CLK_SET_RATE_GATE flag that prevents any modification to the rate while
the clock is active.
This meant that we needed to call clk_set_min_rate() before our call to
pm_runtime_resume_and_get() since our runtime_resume implementation
needs to enable the HSM clock for the HDMI controller registers to be
functional.
However, the HSM clock is part of the HDMI power domain which might not
be powered prior to the pm_runtime_resume_and_get() call, so we could
end up changing the rate of the HSM clock while its power domain was
disabled.
We recently changed the backing driver for the RaspberryPi0-3 to
clk-raspberrypi though, which doesn't have such restrictions. We can
thus move the clk_set_min_rate() after our call to runtime_resume and
avoid the access while the power domain is disabled.
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://lore.kernel.org/r/20230126-rpi-display-fw-clk-cleanup-v1-2-d646ff6fb842@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
2023-02-16 10:24:10 +01:00
Maxime Ripard
89a173dec1
drm/vc4: hdmi: Replace hardcoded value by define
...
The 120MHz value hardcoded in the call to max_t to compute the HSM rate
is defined in the driver as HSM_MIN_CLOCK_FREQ, let's switch to it so
that it's more readable.
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://lore.kernel.org/r/20230126-rpi-display-fw-clk-cleanup-v1-1-d646ff6fb842@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
2023-02-16 10:24:10 +01:00
Thomas Weißschuh
f56e0071a6
drm/nouveau/led: explicitly include linux/leds.h
...
Instead of relying on an accidental, transitive inclusion of linux/leds.h
use it directly.
Also drop the forware definition of struct led_classdev that is now
provided by linux/leds.h.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Lyude Paul <lyude@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230215-power_supply-leds-nouveau-v1-1-ea93bfa0ba7e@weissschuh.net
2023-02-15 18:05:57 -05:00
Zack Rusin
9ef8d83e8e
drm/vmwgfx: Do not drop the reference to the handle too soon
...
v3: Fix vmw_user_bo_lookup which was also dropping the gem reference
before the kernel was done with buffer depending on userspace doing
the right thing. Same bug, different spot.
It is possible for userspace to predict the next buffer handle and
to destroy the buffer while it's still used by the kernel. Delay
dropping the internal reference on the buffers until kernel is done
with them.
Instead of immediately dropping the gem reference in vmw_user_bo_lookup
and vmw_gem_object_create_with_handle let the callers decide when they're
ready give the control back to userspace.
Also fixes the second usage of vmw_gem_object_create_with_handle in
vmwgfx_surface.c which wasn't grabbing an explicit reference
to the gem object which could have been destroyed by the userspace
on the owning surface at any point.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Fixes: 8afa13a058 ("drm/vmwgfx: Implement DRIVER_GEM")
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230211050514.2431155-1-zack@kde.org
2023-02-14 22:06:19 -05:00
Zack Rusin
36d421e632
drm/vmwgfx: Stop accessing buffer objects which failed init
...
ttm_bo_init_reserved on failure puts the buffer object back which
causes it to be deleted, but kfree was still being called on the same
buffer in vmw_bo_create leading to a double free.
After the double free the vmw_gem_object_create_with_handle was
setting the gem function objects before checking the return status
of vmw_bo_create leading to null pointer access.
Fix the entire path by relaying on ttm_bo_init_reserved to delete the
buffer objects on failure and making sure the return status is checked
before setting the gem function objects on the buffer object.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Fixes: 8afa13a058 ("drm/vmwgfx: Implement DRIVER_GEM")
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230208180050.2093426-1-zack@kde.org
2023-02-14 22:05:21 -05:00
Zack Rusin
a44df74c72
drm/vmwgfx: Make the driver work without the dummy resources
...
In commit 1802537820 ("drm/ttm: stop allocating dummy resources during BO creation")
ttm stopped allocating dummy resources but vmwgfx was never ported to
handle it. Make the driver treat null resources as initial creation and
port code to handle null resources in general.
Fixes kernel oops'es on boot with vmwgfx.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Fixes: 1802537820 ("drm/ttm: stop allocating dummy resources during BO creation")
Cc: Christian König <christian.koenig@amd.com >
Cc: Matthew Auld <matthew.auld@intel.com >
Cc: Nirmoy Das <nirmoy.das@intel.com >
Cc: Christian Koenig <christian.koenig@amd.com >
Cc: Huang Rui <ray.huang@amd.com >
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Christian König <christian.koenig@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230210023437.2214816-1-zack@kde.org
2023-02-13 22:37:55 -05:00
Zack Rusin
668b206601
drm/vmwgfx: Stop using raw ttm_buffer_object's
...
Various bits of the driver used raw ttm_buffer_object instead of the
driver specific vmw_bo object. All those places used to duplicate
the mapped bo caching policy of vmw_bo.
Instead of duplicating all of that code and special casing various
functions to work both with vmw_bo and raw ttm_buffer_object's unify
the buffer object handling code.
As part of that work fix the naming of bo's, e.g. insted of generic
backup use 'guest_memory' because that's what it really is.
All of it makes the driver easier to maintain and the code easier to
read. Saves 100+ loc as well.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-9-zack@kde.org
2023-02-13 22:37:55 -05:00
Zack Rusin
39985eea5a
drm/vmwgfx: Abstract placement selection
...
Problem with explicit placement selection in vmwgfx is that by the time
the buffer object needs to be validated the information about which
placement was supposed to be used is lost. To workaround this the driver
had a bunch of state in various places e.g. as_mob or cpu_blit to
somehow convey the information on which placement was intended.
Fix it properly by allowing the buffer objects to hold their preferred
placement so it can be reused whenever needed. This makes the entire
validation pipeline a lot easier both to understand and maintain.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-8-zack@kde.org
2023-02-13 22:37:55 -05:00
Zack Rusin
e0029da927
drm/vmwgfx: Rename dummy to is_iomem
...
Rename dummy to is_iomem because that's what it is even if we're not
activelly using it. Makes the code easier to read.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-7-zack@kde.org
2023-02-13 22:37:55 -05:00
Zack Rusin
cb8097a45d
drm/vmwgfx: Cleanup the vmw bo usage in the cursor paths
...
Base mapped count is useless because the ttm unmap functions handle
null maps just fine so completely remove all the code related to it.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-6-zack@kde.org
2023-02-13 22:37:55 -05:00
Zack Rusin
6703e28f97
drm/vmwgfx: Simplify fb pinning
...
Only the legacy display unit requires pinning of the fb memory in vram.
Both the screen objects and screen targets can present from any buffer.
That makes the pinning abstraction pointless. Simplify all of the code
and move it to the legacy display unit, the only place that needs it.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-5-zack@kde.org
2023-02-13 22:37:55 -05:00
Zack Rusin
09881d2940
drm/vmwgfx: Rename vmw_buffer_object to vmw_bo
...
The rest of the drivers which are using ttm have mostly standardized on
driver_prefix_bo as the name for subclasses of the TTM buffer object.
Make vmwgfx match the rest of the drivers and follow the same naming
semantics.
This is especially clear given that the name of the file in which the
object was defined is vmw_bo.c.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-4-zack@kde.org
2023-02-13 22:37:08 -05:00
Zack Rusin
6b2e8aa451
drm/vmwgfx: Remove the duplicate bo_free function
...
Remove the explicit bo_free parameter which was switching between
vmw_bo_bo_free and vmw_gem_destroy which had exactly the same
implementation.
It makes no sense to keep parameter which is always the same, remove it
and all code referencing it. Instead use the vmw_bo_bo_free directly.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-3-zack@kde.org
2023-02-13 21:34:13 -05:00
Zack Rusin
9da2957f9f
drm/vmwgfx: Use the common gem mmap instead of the custom code
...
Before vmwgfx supported gem it needed to implement the entire mmap logic
explicitly. With GEM support that's not needed and the generic code
can be used by simply setting the vm_ops to vmwgfx specific ones on the
gem object itself.
Removes a lot of code from vmwgfx without any functional difference.
Signed-off-by: Zack Rusin <zackr@vmware.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Martin Krastev <krastevm@vmware.com >
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230131033542.953249-2-zack@kde.org
2023-02-13 21:34:13 -05:00
Asahi Lina
aa8c85affe
drm/shmem-helper: Fix locking for drm_gem_shmem_get_pages_sgt()
...
Other functions touching shmem->sgt take the pages lock, so do that here
too. drm_gem_shmem_get_pages() & co take the same lock, so move to the
_locked() variants to avoid recursive locking.
Discovered while auditing locking to write the Rust abstractions.
Fixes: 2194a63a81 ("drm: Add library for shmem backed GEM objects")
Fixes: 4fa3d66f13 ("drm/shmem: Do dma_unmap_sg before purging pages")
Signed-off-by: Asahi Lina <lina@asahilina.net >
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com >
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230205125124.2260-1-lina@asahilina.net
2023-02-10 13:13:44 +01:00
Maíra Canal
7c18189b14
drm/vgem: add missing mutex_destroy
...
vgem_fence_open() instantiates a mutex for a particular fence
instance, but never destroys it by calling mutex_destroy() in
vgem_fence_close().
So, add the missing mutex_destroy() to guarantee proper resource
destruction.
Fixes: 4077798484 ("drm/vgem: Attach sw fences to exported vGEM dma-buf (ioctl)")
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com >
Signed-off-by: Maíra Canal <mairacanal@riseup.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20230202125517.427976-1-mcanal@igalia.com
2023-02-10 08:21:04 -03:00
Christian König
96a7b60f6d
drm: remove dumb_destroy callback
...
Not used by any driver any more.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Tested-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230126102814.8722-2-christian.koenig@amd.com
2023-02-10 12:19:27 +01:00
Somalapuram Amaranath
aed01a6804
drm/amdgpu: Remove TTM resource->start visible VRAM condition v2
...
Use amdgpu_bo_in_cpu_visible_vram() instead.
v2 (chk): fix test inversion
Signed-off-by: Somalapuram Amaranath <Amaranath.Somalapuram@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230208090106.9659-2-Amaranath.Somalapuram@amd.com
2023-02-09 15:10:36 +01:00
John Keeping
e3ea1806e4
drm/bridge: panel: Set orientation on panel_bridge connector
...
Commit 15b9ca1641 ("drm: Config orientation property if panel provides
it") added a helper to set the panel orientation early but only
connected this for drm_bridge_connector, which constructs a panel bridge
with DRM_BRIDGE_ATTACH_NO_CONNECTOR and creates the connector itself.
When the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is not specified and the
panel_bridge creates its own connector the orientation is not set unless
the panel does it in .get_modes which is too late and leads to a warning
splat from __drm_mode_object_add() because the device is already
registered.
Call the necessary function to set add the orientation property when the
connector is created so that it is available before the device is
registered.
Signed-off-by: John Keeping <john@metanate.com >
Reviewed-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20230120114313.2087015-1-john@metanate.com
2023-02-06 16:50:57 -08:00
Christian König
f87c1f0b7b
drm/ttm: prevent moving of pinned BOs
...
We have checks for this in the individual drivers move callback, but
it's probably better to generally forbid that on a higher level.
Also stops exporting ttm_resource_compat() since that's not necessary
any more after removing the extra checks in vmwgfx.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230130120636.63765-6-matthew.auld@intel.com
2023-02-06 12:10:17 +01:00
Christian König
c7ea16f6a4
drm/ttm: stop allocating a dummy resource for pipelined gutting
...
That should not be necessary any more when drivers should at least be
able to handle a move without a resource.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Acked-by: Nirmoy Das <nirmoy.das@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230130120636.63765-5-matthew.auld@intel.com
2023-02-06 12:10:17 +01:00
Christian König
1802537820
drm/ttm: stop allocating dummy resources during BO creation
...
That should not be necessary any more when drivers should at least be
able to handle the move without a resource.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Acked-by: Nirmoy Das <nirmoy.das@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230130120636.63765-4-matthew.auld@intel.com
2023-02-06 12:10:17 +01:00
Matthew Auld
24243212c5
drm/ttm: clear the ttm_tt when bo->resource is NULL
...
In the next few patches, when initially creating a ttm BO, the
bo->resource is NULL, and the driver is then expected to handle the
initial dummy move. However, if this is created as a system resource
the first ttm_tt we create will always have the clear value set to
false. Previously the initial ttm_tt would be created in
ttm_bo_validate() with the clear parameter always set to true.
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Reviewed-by: Christian König <ckoenig.leichtzumerken@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230130101230.25347-3-matthew.auld@intel.com
Acked-by: Nirmoy Das <nirmoy.das@intel.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2023-02-06 12:10:13 +01:00
Matthew Auld
58c7ee0676
drm/i915/ttm: audit remaining bo->resource
...
In the near future TTM will have NULL bo->resource when the object is
initially created, plus after calling into pipeline-gutting. Try to
handle the remaining cases. In practice NULL bo->resource should be
taken to mean swapped-out or purged object.
v2 (Andrzej):
- Rather make i915_ttm_cpu_maps_iomem() return false with NULL
resource.
References: 516198d317 ("drm/i915: audit bo->resource usage v3")
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Cc: Nirmoy Das <nirmoy.das@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230130101230.25347-2-matthew.auld@intel.com
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com >
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com >
Acked-by: Christian König <ckoenig.leichtzumerken@gmail.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2023-02-06 12:10:07 +01:00
Matthew Auld
fde789e833
drm/i915/ttm: fix sparse warning
...
Sparse complains with:
drivers/gpu/drm/i915/gem/i915_gem_ttm.c:1066:21: sparse:
expected restricted vm_fault_t [assigned] [usertype] ret
drivers/gpu/drm/i915/gem/i915_gem_ttm.c:1066:21: sparse: got int
Fixes: 516198d317 ("drm/i915: audit bo->resource usage v3")
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230130101230.25347-1-matthew.auld@intel.com
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com >
Acked-by: Christian König <ckoenig.leichtzumerken@gmail.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
2023-02-06 12:09:58 +01:00
Stanislaw Gruszka
ec6ec9c6ca
accel/ivpu: Fix old dma_buf api usage
...
Update according to new dma-buf locking scheme.
Remove redundant WARN_ON()'s, dma_buf functions internally
have the same warnings already.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com >
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com >
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230202092114.2637452-5-stanislaw.gruszka@linux.intel.com
2023-02-06 09:02:27 +01:00
Stanislaw Gruszka
07ccb63a5c
accel/ivpu: Set dma max_segment_size
...
Avoid below spurious warning:
[ 264.844029] DMA-API: intel_vpu 0000:00:0b.0: mapping sg segment longer than device claims to support [len=143360] [max=65536]
[ 264.844038] WARNING: CPU: 0 PID: 1254 at kernel/dma/debug.c:1160 debug_dma_map_sg+0x6ca/0xb70
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com >
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com >
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230202092114.2637452-4-stanislaw.gruszka@linux.intel.com
2023-02-06 09:02:11 +01:00
Andrzej Kacprowski
38257f514d
accel/ivpu: Send VPU_JSM_MSG_CONTEXT_DELETE when deleting context
...
The VPU_JSM_MSG_CONTEXT_DELETE will remove any resources associated
with the SSID, that included any blobs create by the user space
application.
The command can also remove doorbell registrations, but since this
does not work in HW scheduling case, we do not depend on this
capability and unregister the doorbells explicitly.
Signed-off-by: Andrzej Kacprowski <andrzej.kacprowski@linux.intel.com >
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com >
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com >
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230202092114.2637452-3-stanislaw.gruszka@linux.intel.com
2023-02-06 09:01:56 +01:00
Andrzej Kacprowski
4ea1e504db
accel/ivpu: Fix FW API data alignment issues
...
FW API structures have been updated to fix misaligned
structure members.
Also changed JSM message header format to account for
future improvements.
Added explicit check for minimum supported JSM API version.
Signed-off-by: Andrzej Kacprowski <andrzej.kacprowski@linux.intel.com >
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com >
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com >
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230202092114.2637452-2-stanislaw.gruszka@linux.intel.com
2023-02-06 09:01:20 +01:00
Rob Clark
8ee3b0e85f
drm/rockchip: Drop unbalanced obj unref
...
In the error path, rockchip_drm_gem_object_mmap() is dropping an obj
reference that it doesn't own.
Fixes: 41315b793e ("drm/rockchip: use drm_gem_mmap helpers")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230119231734.2884543-1-robdclark@gmail.com
2023-02-05 15:32:35 +01:00
John Keeping
0020d4cfa3
drm/rockchip: avoid duplicate mappings for IOMMU devices
...
If a buffer is allocated with alloc_kmap, then it is vmap'd on creation
and there is no reason to map it again in rockchip_gem_prime_vmap() when
the existing mapping can be used.
Signed-off-by: John Keeping <john@metanate.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20221110172415.2853420-1-john@metanate.com
2023-02-05 15:27:54 +01:00
Brian Norris
582212ee16
drm/rockchip: vop: Quiet always-warning AFBC log
...
The downstream code from which this was derived didn't ever run through
this 'switch' block with non-AFBC formats, but the upstream code does --
we use this function to probe whether a given format is supported.
Demote the warning to eliminate this sort of warning seen on every
boot:
[drm] unsupported AFBC format[3231564e]
And make it warn more than once, because if we *actually* care to see
what formats we're probing/rejecting and for what reasons, we probably
care about more than just the first message.
Drop the comment, because one of the two *is* commonly reachable.
And lastly, drop the unreachable return; we'd do better to let the
compiler complain if we start hitting this unexpectedly.
Signed-off-by: Brian Norris <briannorris@chromium.org >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20221031101557.1.Ic1569d394173c1c3016142fee4bb87a09753db94@changeid
2023-02-05 15:25:49 +01:00
Michael Riesch
c66c6d7c47
drm/rockchip: vop2: add support for the rgb output block
...
The Rockchip VOP2 features an internal RGB output block, which can be
attached any video port of the VOP2. Add support for this output block.
Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net >
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230124054706.3921383-6-michael.riesch@wolfvision.net
2023-02-05 15:21:39 +01:00
Michael Riesch
cddddc066b
drm/rockchip: vop2: use symmetric function pair vop2_{create,destroy}_crtcs
...
Let the function name vop2_create_crtcs reflect that the function creates
multiple CRTCS. Also, use a symmetric function pair to create and destroy
the CRTCs and the corresponding planes.
Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net >
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230124054706.3921383-5-michael.riesch@wolfvision.net
2023-02-05 15:21:38 +01:00
Michael Riesch
03db8f25cf
drm/rockchip: rgb: add video_port parameter to init function
...
The VOP2 driver has more than one video port, hence the hard-coded
port id will not work anymore. Add an extra parameter for the video
port id to the rockchip_rgb_init function.
Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net >
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230124054706.3921383-4-michael.riesch@wolfvision.net
2023-02-05 15:21:36 +01:00
Michael Riesch
f8a852f1f8
drm/rockchip: rgb: embed drm_encoder into rockchip_encoder
...
Commit 540b8f271e ("drm/rockchip: Embed drm_encoder into
rockchip_decoder") provides the means to pass the endpoint ID to the
VOP2 driver, which sets the interface MUX accordingly. However, this
step has not yet been carried out for the RGB output block. Embed the
drm_encoder structure into the rockchip_encoder structure and set the
endpoint ID correctly.
Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net >
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230124054706.3921383-3-michael.riesch@wolfvision.net
2023-02-05 15:21:35 +01:00
Michael Riesch
368419a2d4
drm/rockchip: vop2: initialize possible_crtcs properly
...
The variable possible_crtcs is only initialized for primary and
overlay planes. Since the VOP2 driver only supports these plane
types at the moment, the current code is safe. However, in order
to provide a future-proof solution, fix the initialization of
the variable.
Reported-by: kernel test robot <lkp@intel.com >
Reported-by: Dan Carpenter <error27@gmail.com >
Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net >
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20230124054706.3921383-2-michael.riesch@wolfvision.net
2023-02-05 15:21:34 +01:00
Johan Jonker
9bb35d4c32
dt-bindings: display: rockchip: convert analogix_dp-rockchip.txt to yaml
...
Convert analogix_dp-rockchip.txt to yaml.
Changed:
Add power-domains property
File name
Signed-off-by: Johan Jonker <jbx6244@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/88a5a9e3-9bc8-5966-22ec-5bdb1fa7a5b1@gmail.com
2023-02-05 15:05:55 +01:00
Johan Jonker
440112adad
dt-bindings: display: bridge: convert analogix_dp.txt to yaml
...
Convert analogix_dp.txt to yaml for use as common document.
Changed:
Relexed requirements
Signed-off-by: Johan Jonker <jbx6244@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/489e7bd3-fa26-885f-4104-8b0b29aa4f2b@gmail.com
2023-02-05 15:05:53 +01:00
Johan Jonker
0dac2102cf
dt-bindings: display: rockchip: convert dw_mipi_dsi_rockchip.txt to yaml
...
Convert dw_mipi_dsi_rockchip.txt to yaml.
Changed:
file name
requirements
Signed-off-by: Johan Jonker <jbx6244@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/d6dc8453-4807-0a5d-15bf-6dcf80dcd0fe@gmail.com
2023-02-05 15:05:52 +01:00
Johan Jonker
a90fa0adbe
dt-bindings: display: bridge: snps,dw-mipi-dsi: fix clock properties
...
Fix clock properties from the common snps,dw-mipi-dsi.yaml file,
as they don't match with what is used on the SoCs.
Signed-off-by: Johan Jonker <jbx6244@gmail.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/78b4548e-dfe1-d0c6-f96c-5d40f28f8b2e@gmail.com
2023-02-05 15:05:51 +01:00