Message ID | 20221121104532.8301-1-tzimmermann@suse.de (mailing list archive) |
---|---|
Headers | show |
Series | drm/mipi-dbi: Convert to shadow-plane helpers | expand |
Den 21.11.2022 11.45, skrev Thomas Zimmermann: > Convert the MIPI-DBI-based drivers to shadow-plane helpers. The > drivers vmap/vunmap GEM buffer memory during the atomic commit. > Shadow-plane helpers automate this process. > > Patches 1 to 4 prepare the MIPI code for the change and simplify > the restof the patchset. > > Patches 5 to 7 rework the vmap code in the MIPI-DBI drivers and add > shadow-plane helpers. Most of the affected drivers call MIPI-DBI > helpers and get the update automatically. Only ili9225 and st7586 > require changes to their source code. > > Patch 8 simplifies drm_dev_enter() and _exit(). It's not strictly > needed, but streamlines the driver code and make sense overall. > > Testing is welcome, as I don't have any hardware to test these > changes myself. > I can do a test this weekend. Btw I've converted drm/gud to the shadow plane helper, I just need to solve an smtp problem[1] so I can send out the patchset. [1] https://lore.kernel.org/dri-devel/1bc45775-0667-01f8-36e1-9f65d3081092@tronnes.org/T/#u Noralf.
Hi Am 21.11.22 um 13:27 schrieb Noralf Trønnes: > > > Den 21.11.2022 11.45, skrev Thomas Zimmermann: >> Convert the MIPI-DBI-based drivers to shadow-plane helpers. The >> drivers vmap/vunmap GEM buffer memory during the atomic commit. >> Shadow-plane helpers automate this process. >> >> Patches 1 to 4 prepare the MIPI code for the change and simplify >> the restof the patchset. >> >> Patches 5 to 7 rework the vmap code in the MIPI-DBI drivers and add >> shadow-plane helpers. Most of the affected drivers call MIPI-DBI >> helpers and get the update automatically. Only ili9225 and st7586 >> require changes to their source code. >> >> Patch 8 simplifies drm_dev_enter() and _exit(). It's not strictly >> needed, but streamlines the driver code and make sense overall. >> >> Testing is welcome, as I don't have any hardware to test these >> changes myself. >> > > I can do a test this weekend. Thanks a lot. > > Btw I've converted drm/gud to the shadow plane helper, I just need to > solve an smtp problem[1] so I can send out the patchset. How so? When I looked at it, the vmap/vunmap happened on a separate worker than the commit IIRC. Best regards Thomas > > [1] > https://lore.kernel.org/dri-devel/1bc45775-0667-01f8-36e1-9f65d3081092@tronnes.org/T/#u > > Noralf.
Den 21.11.2022 13.41, skrev Thomas Zimmermann: > Hi > > Am 21.11.22 um 13:27 schrieb Noralf Trønnes: >> >> >> Den 21.11.2022 11.45, skrev Thomas Zimmermann: >>> Convert the MIPI-DBI-based drivers to shadow-plane helpers. The >>> drivers vmap/vunmap GEM buffer memory during the atomic commit. >>> Shadow-plane helpers automate this process. >>> >>> Patches 1 to 4 prepare the MIPI code for the change and simplify >>> the restof the patchset. >>> >>> Patches 5 to 7 rework the vmap code in the MIPI-DBI drivers and add >>> shadow-plane helpers. Most of the affected drivers call MIPI-DBI >>> helpers and get the update automatically. Only ili9225 and st7586 >>> require changes to their source code. >>> >>> Patch 8 simplifies drm_dev_enter() and _exit(). It's not strictly >>> needed, but streamlines the driver code and make sense overall. >>> >>> Testing is welcome, as I don't have any hardware to test these >>> changes myself. >>> >> >> I can do a test this weekend. > > Thanks a lot. > >> >> Btw I've converted drm/gud to the shadow plane helper, I just need to >> solve an smtp problem[1] so I can send out the patchset. > > How so? When I looked at it, the vmap/vunmap happened on a separate > worker than the commit IIRC. > Yes you're right, originally the driver only did flushing asynchronously in a worker which meant it could access the framebuffer at the same time as userspace. Later when GNOME got support for one rendering loop per display, I added a module parameter to enable synchronous flushing during the commit, it also uses the worker for this but waits for it to complete. What I've done in the patchset is to inline the sync flushing and use a shadow buffer for the async path which still uses the worker, but now it won't risk reading the framebuffer while userspace writes to it, instead it reads from the shadow buffer. Noralf. > Best regards > Thomas > >> >> [1] >> https://lore.kernel.org/dri-devel/1bc45775-0667-01f8-36e1-9f65d3081092@tronnes.org/T/#u >> >> Noralf. >
On 11/21/22 13:27, Noralf Trønnes wrote: > > > Den 21.11.2022 11.45, skrev Thomas Zimmermann: >> Convert the MIPI-DBI-based drivers to shadow-plane helpers. The >> drivers vmap/vunmap GEM buffer memory during the atomic commit. >> Shadow-plane helpers automate this process. >> >> Patches 1 to 4 prepare the MIPI code for the change and simplify >> the restof the patchset. >> >> Patches 5 to 7 rework the vmap code in the MIPI-DBI drivers and add >> shadow-plane helpers. Most of the affected drivers call MIPI-DBI >> helpers and get the update automatically. Only ili9225 and st7586 >> require changes to their source code. >> >> Patch 8 simplifies drm_dev_enter() and _exit(). It's not strictly >> needed, but streamlines the driver code and make sense overall. >> >> Testing is welcome, as I don't have any hardware to test these >> changes myself. >> > > I can do a test this weekend. > I've a ST7735 display so I can also give it a test this weekend.
Den 21.11.2022 11.45, skrev Thomas Zimmermann: > Convert the MIPI-DBI-based drivers to shadow-plane helpers. The > drivers vmap/vunmap GEM buffer memory during the atomic commit. > Shadow-plane helpers automate this process. > > Patches 1 to 4 prepare the MIPI code for the change and simplify > the restof the patchset. > > Patches 5 to 7 rework the vmap code in the MIPI-DBI drivers and add > shadow-plane helpers. Most of the affected drivers call MIPI-DBI > helpers and get the update automatically. Only ili9225 and st7586 > require changes to their source code. > > Patch 8 simplifies drm_dev_enter() and _exit(). It's not strictly > needed, but streamlines the driver code and make sense overall. > > Testing is welcome, as I don't have any hardware to test these > changes myself. > Tested-by: Noralf Trønnes <noralf@tronnes.org> # drm/tiny/mi0283qt > Thomas Zimmermann (8): > drm/simple-kms: Remove drm_gem_simple_display_pipe_prepare_fb() > drm/ili9225: Call MIPI DBI mode_valid helper > drm/st7586: Call MIPI DBI mode_valid helper > drm/mipi-dbi: Initialize default driver functions with macro > drm/mipi-dbi: Prepare framebuffer copy operation in pipe-update > helpers > drm/mipi-dbi: Support shadow-plane state > drm/mipi-dbi: Use shadow-plane mappings > drm/mipi-dbi: Move drm_dev_{enter,exit}() out from fb_dirty functions > > drivers/gpu/drm/drm_gem_atomic_helper.c | 31 +--- > drivers/gpu/drm/drm_mipi_dbi.c | 175 +++++++++++++++---- > drivers/gpu/drm/drm_simple_kms_helper.c | 2 +- > drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 6 +- > drivers/gpu/drm/tiny/hx8357d.c | 5 +- > drivers/gpu/drm/tiny/ili9163.c | 6 +- > drivers/gpu/drm/tiny/ili9225.c | 42 +++-- > drivers/gpu/drm/tiny/ili9341.c | 5 +- > drivers/gpu/drm/tiny/ili9486.c | 5 +- > drivers/gpu/drm/tiny/mi0283qt.c | 5 +- > drivers/gpu/drm/tiny/panel-mipi-dbi.c | 5 +- > drivers/gpu/drm/tiny/st7586.c | 45 +++-- > drivers/gpu/drm/tiny/st7735r.c | 5 +- > include/drm/drm_gem_atomic_helper.h | 2 - > include/drm/drm_mipi_dbi.h | 50 +++++- > include/drm/drm_plane.h | 4 +- > include/drm/drm_simple_kms_helper.h | 4 +- > 17 files changed, 265 insertions(+), 132 deletions(-) > > > base-commit: b7598e2b3a3116bb5ddbf756db30a0e5dc0877ea > prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d > prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24 > prerequisite-patch-id: 3f204510fcbf9530d6540bd8e6128cce598988b6
Hello Thomas, On 11/21/22 11:45, Thomas Zimmermann wrote: > Convert the MIPI-DBI-based drivers to shadow-plane helpers. The > drivers vmap/vunmap GEM buffer memory during the atomic commit. > Shadow-plane helpers automate this process. > > Patches 1 to 4 prepare the MIPI code for the change and simplify > the restof the patchset. > > Patches 5 to 7 rework the vmap code in the MIPI-DBI drivers and add > shadow-plane helpers. Most of the affected drivers call MIPI-DBI > helpers and get the update automatically. Only ili9225 and st7586 > require changes to their source code. > > Patch 8 simplifies drm_dev_enter() and _exit(). It's not strictly > needed, but streamlines the driver code and make sense overall. > > Testing is welcome, as I don't have any hardware to test these > changes myself. > > Thomas Zimmermann (8): > drm/simple-kms: Remove drm_gem_simple_display_pipe_prepare_fb() > drm/ili9225: Call MIPI DBI mode_valid helper > drm/st7586: Call MIPI DBI mode_valid helper > drm/mipi-dbi: Initialize default driver functions with macro > drm/mipi-dbi: Prepare framebuffer copy operation in pipe-update > helpers > drm/mipi-dbi: Support shadow-plane state > drm/mipi-dbi: Use shadow-plane mappings > drm/mipi-dbi: Move drm_dev_{enter,exit}() out from fb_dirty functions > Sorry for the delay. I've tested now this series with the st7735r driver and everything seems to works correctly. Tested-by: Javier Martinez Canillas <javierm@redhat.com>