3a63ef6e | 24-Jul-2023 |
Otto Pflüger <otto.pflueger@abscue.de> |
drm/tiny: panel-mipi-dbi: Allow sharing the D/C GPIO
Displays that are connected to the same SPI bus may share the D/C GPIO. Use GPIOD_FLAGS_BIT_NONEXCLUSIVE to allow access to the same GPIO for mul
drm/tiny: panel-mipi-dbi: Allow sharing the D/C GPIO
Displays that are connected to the same SPI bus may share the D/C GPIO. Use GPIOD_FLAGS_BIT_NONEXCLUSIVE to allow access to the same GPIO for multiple panel-mipi-dbi instances. Exclusive access to the GPIO during transfers is ensured by the locking in drm_mipi_dbi.c.
Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de> Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Link: https://patchwork.freedesktop.org/patch/msgid/20230724065654.5269-3-otto.pflueger@abscue.de
show more ...
|
f8d221dd | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Use VGA macro constants to unblank
Set the VGA bit for unblanking with macro constants instead of magic values. No functional changes.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse
drm/cirrus: Use VGA macro constants to unblank
Set the VGA bit for unblanking with macro constants instead of magic values. No functional changes.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-18-tzimmermann@suse.de
show more ...
|
de7d09ff | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Store HW format/pitch in primary-plane state
The hardware settings for color format and pitch are state of the primary plane. Store the values in the primary plane's state structure stru
drm/cirrus: Store HW format/pitch in primary-plane state
The hardware settings for color format and pitch are state of the primary plane. Store the values in the primary plane's state structure struct cirrus_primary_plane_state. Adapt all callers.
All fields in struct cirrus_device are now considered immutable after initialization. Plane updates consider the difference between the old and the new plane state before updating format or pitch.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-17-tzimmermann@suse.de
show more ...
|
74b9a444 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Introduce struct cirrus_primary_plane_state
The cirrus driver maintains plane state, format and pitch, in it's device structure. Introduce a plane state for the primary plane to store th
drm/cirrus: Introduce struct cirrus_primary_plane_state
The cirrus driver maintains plane state, format and pitch, in it's device structure. Introduce a plane state for the primary plane to store the values.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-16-tzimmermann@suse.de
show more ...
|
6ffdf886 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Inline cirrus_check_size() into primary-plane atomic_check
Inline the framebuffer size check into the primary plane's atomic_check cirrus_primary_plane_atomic_check(). No functional chan
drm/cirrus: Inline cirrus_check_size() into primary-plane atomic_check
Inline the framebuffer size check into the primary plane's atomic_check cirrus_primary_plane_atomic_check(). No functional changes.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-15-tzimmermann@suse.de
show more ...
|
f8ad3379 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Test mode against video-memory size in device-wide mode_valid
Test a display mode against the available amount of video memory in struct drm_mode_config_funcs.mode_valid, which cirrus im
drm/cirrus: Test mode against video-memory size in device-wide mode_valid
Test a display mode against the available amount of video memory in struct drm_mode_config_funcs.mode_valid, which cirrus implements in cirrus_mode_config_mode_valid(). This helper tests display modes against device-wide limits. Remove the now-obsolete per-CRTC test.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-14-tzimmermann@suse.de
show more ...
|
edc9f167 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Remove size test from cirrus_fb_create()
The DRM core implements a size check against the mode config's limits when creating a framebuffer. [1] Remove the unnecessary test from cirrus_fb
drm/cirrus: Remove size test from cirrus_fb_create()
The DRM core implements a size check against the mode config's limits when creating a framebuffer. [1] Remove the unnecessary test from cirrus_fb_create() and remove the now-empty function. Create framebuffers with drm_gem_fb_create_with_dirty().
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://elixir.bootlin.com/linux/v6.1/source/drivers/gpu/drm/drm_framebuffer.c#L287 # [1] Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-13-tzimmermann@suse.de
show more ...
|
91affdf3 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Remove format test from cirrus_fb_create()
The DRM core implements a format check when setting a framebuffer for a plane. [1] Remove the unnecessary test from cirrus_fb_create().
Signed
drm/cirrus: Remove format test from cirrus_fb_create()
The DRM core implements a format check when setting a framebuffer for a plane. [1] Remove the unnecessary test from cirrus_fb_create().
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://elixir.bootlin.com/linux/v6.1/source/drivers/gpu/drm/drm_atomic.c#L629 # [1] Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-12-tzimmermann@suse.de
show more ...
|
c94aa5e0 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Inline cirrus_fb_blit_rect()
Inline cirrus_fb_blit_rect into its only caller. While at it, update the code to use IOSYS_MAP_INIT_OFFSET(), which is the ideomatic way of initializing stru
drm/cirrus: Inline cirrus_fb_blit_rect()
Inline cirrus_fb_blit_rect into its only caller. While at it, update the code to use IOSYS_MAP_INIT_OFFSET(), which is the ideomatic way of initializing struct iosys_map with an offset.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-11-tzimmermann@suse.de
show more ...
|
03e7ac67 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Enable damage clipping on primary plane
Enable damage clipping on the primary plane and iterate over small areas of reported framebuffer damage. Avoid the overhead of permanent full-scre
drm/cirrus: Enable damage clipping on primary plane
Enable damage clipping on the primary plane and iterate over small areas of reported framebuffer damage. Avoid the overhead of permanent full-screen updates that cirrus currently implements.
This problem is indicated by the warning
drm_plane_enable_fb_damage_clips() not called
in the kernel's log. Without damage clipping, drivers do full updates of the screen area. This is costly as many screen updates, such as cursor movement or command-line input, only change a small portion of the output. Damage clipping allows renderers to inform drivers about the changed areas.
With the damage information known, cirrus now iterates over a list of change areas and only flushes those to the hardware's scanout buffer.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-10-tzimmermann@suse.de
show more ...
|
d99c0289 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Convert to regular atomic helpers
Replace simple-KMS helpers with DRM's regular helpers for atomic modesetting. Avoids the mid-layer and the additional wrappers around GEM's shadow-plane
drm/cirrus: Convert to regular atomic helpers
Replace simple-KMS helpers with DRM's regular helpers for atomic modesetting. Avoids the mid-layer and the additional wrappers around GEM's shadow-plane helpers.
Most of the simple-KMS code is just wrappers around regular atomic helpers. The conversion is therefore equivalent to pulling the simple-KMS helpers into cirrus and removing all the intermediate code and data structures between the driver and the atomic helpers. As the simple-KMS helpers lump primary plan, CRTC and encoder into a single data structure, the conversion to regular helpers allows to split modesetting from plane updates and handle each individually.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-9-tzimmermann@suse.de
show more ...
|
fe57235b | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Move primary-plane format arrays
Move the primary plane's format and modifier arrays within the source file and adapt naming slightly. No functional changes.
Done in preparation of conv
drm/cirrus: Move primary-plane format arrays
Move the primary plane's format and modifier arrays within the source file and adapt naming slightly. No functional changes.
Done in preparation of converting cirrus to regular atomic helpers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-8-tzimmermann@suse.de
show more ...
|
e0494977 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Integrate connector into pipeline code
Integrate the connector with the rest of the pipeline setup code. Move some helpers within the file and adapt naming slightly. No functional change
drm/cirrus: Integrate connector into pipeline code
Integrate the connector with the rest of the pipeline setup code. Move some helpers within the file and adapt naming slightly. No functional changes.
Done in preparation of converting cirrus to regular atomic helpers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-7-tzimmermann@suse.de
show more ...
|
d2ff2ef8 | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Split cirrus_mode_set() into smaller functions
Split cirrus_mode_set() into smaller functions that set the display mode, color format and scnaline pitch individually. Better reflects the
drm/cirrus: Split cirrus_mode_set() into smaller functions
Split cirrus_mode_set() into smaller functions that set the display mode, color format and scnaline pitch individually. Better reflects the design of the DRM modesetting pipeline.
Done in preparation of converting cirrus to regular atomic helpers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-6-tzimmermann@suse.de
show more ...
|
2fb82d5a | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Move drm_dev_{enter, exit}() into DRM helpers
Call drm_dev_enter() and drm_dev_exit() immediately after entering cirrus' DRM helper functions. Remove these calls from other functions. Ea
drm/cirrus: Move drm_dev_{enter, exit}() into DRM helpers
Call drm_dev_enter() and drm_dev_exit() immediately after entering cirrus' DRM helper functions. Remove these calls from other functions. Each enter/exit block in the DRM helpers covers the full hardware update. No functional changes.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-5-tzimmermann@suse.de
show more ...
|
cc158d0e | 15-Feb-2023 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/cirrus: Use drm_fb_blit() to update scanout buffer
Cirrus' blit helper reimplements code from the shared blit helper drm_fb_blit(). Use the helper instead.
Signed-off-by: Thomas Zimmermann <tzi
drm/cirrus: Use drm_fb_blit() to update scanout buffer
Cirrus' blit helper reimplements code from the shared blit helper drm_fb_blit(). Use the helper instead.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230215161517.5113-4-tzimmermann@suse.de
show more ...
|