Re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
Am 05.05.20 um 14:20 schrieb John Donnelly: > > >> On May 4, 2020, at 8:39 AM, Thomas Zimmermann wrote: >> >> Hi John >> >> Am 30.04.20 um 02:11 schrieb John Donnelly: >>> On 4/29/20 9:32 AM, Thomas Zimmermann wrote: This patchset converts mgag200 to atomic modesetting. It uses simple KMS helpers and SHMEM. Patches 1 to 4 simplifies the driver before the conversion. For example, the HW cursor is not usable with the way universal planes work. A few data structures can be cleaned up. Patches 5 to 15 untangle the existing modesetting code into smaller functions. Specifically, mode setting and plane updates are being separated from each other. Patch 16 converts mgag200 to simple KMS helpers and enables atomic mode setting. As some HW seems to require a framebuffer offset of 0 within the video memory, it does not work with atomic modesetting. Atomically switching plane framebuffers, requires either source or target buffer to be located at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from VRAM helpers to SHMEM helpers. During plane updates, the content of the SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance is not nuch different from the original code. The patchset has been tested on MGA G200EH hardware. Thomas Zimmermann (17): drm/mgag200: Remove HW cursor drm/mgag200: Remove unused fields from struct mga_device drm/mgag200: Embed connector instance in struct mga_device drm/mgag200: Use managed mode-config initialization drm/mgag200: Clean up mga_set_start_address() drm/mgag200: Clean up mga_crtc_do_set_base() drm/mgag200: Move mode-setting code into separate helper function drm/mgag200: Split MISC register update into PLL selection, SYNC and I/O drm/mgag200: Update mode registers after plane registers drm/mgag200: Set pitch in a separate helper function drm/mgag200: Set primary plane's format in separate helper function drm/mgag200: Move TAGFIFO reset into separate function drm/mgag200: Move hiprilvl setting into separate functions drm/mgag200: Move register initialization into separate function drm/mgag200: Remove waiting from DPMS code drm/mgag200: Convert to simple KMS helper drm/mgag200: Replace VRAM helpers with SHMEM helpers drivers/gpu/drm/mgag200/Kconfig | 4 +- drivers/gpu/drm/mgag200/Makefile | 2 +- drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 drivers/gpu/drm/mgag200/mgag200_drv.c| 51 +- drivers/gpu/drm/mgag200/mgag200_drv.h| 43 +- drivers/gpu/drm/mgag200/mgag200_main.c | 28 - drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- drivers/gpu/drm/mgag200/mgag200_reg.h| 5 +- drivers/gpu/drm/mgag200/mgag200_ttm.c| 35 +- 9 files changed, 563 insertions(+), 872 deletions(-) delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c -- 2.26.0 >>> >>> >>> Hi Thomas , >>> >>> I would like to test this on hardware that uses this device integrated >>> into as BMC ( iLo ) that I have ran into problems before. Can you post >>> your staging URL so I can clone it ? >> >> I uploaded the patches at >> >> >> https://gitlab.freedesktop.org/tzimmermann/linux/-/tree/mgag200-simplekms-20200504 >> >> You can clone them with >> >> git clone g...@gitlab.freedesktop.org:tzimmermann/linux.git >> >> and checkout the mgag200-simplekms-20200405 branch afterwards. >> >> Best regards >> Thomas >> >>> >>> >>> ( Thank you for CC'ing me. I removed my email from on dlist recently) . >>> >>> >>> > > I had no issues running these changes with gnome on a server with a > mgag200 integrated into a BMC . > > Tested-by: John Donnelly Thanks! I'll add the tag to the patchset. Best regards Thomas > > ___ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel > -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer signature.asc Description: OpenPGP digital signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
> On May 4, 2020, at 8:39 AM, Thomas Zimmermann wrote: > > Hi John > > Am 30.04.20 um 02:11 schrieb John Donnelly: >> On 4/29/20 9:32 AM, Thomas Zimmermann wrote: >>> This patchset converts mgag200 to atomic modesetting. It uses simple >>> KMS helpers and SHMEM. >>> >>> Patches 1 to 4 simplifies the driver before the conversion. For example, >>> the HW cursor is not usable with the way universal planes work. A few >>> data structures can be cleaned up. >>> >>> Patches 5 to 15 untangle the existing modesetting code into smaller >>> functions. Specifically, mode setting and plane updates are being >>> separated from each other. >>> >>> Patch 16 converts mgag200 to simple KMS helpers and enables atomic >>> mode setting. >>> >>> As some HW seems to require a framebuffer offset of 0 within the video >>> memory, it does not work with atomic modesetting. Atomically switching >>> plane framebuffers, requires either source or target buffer to be located >>> at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from >>> VRAM helpers to SHMEM helpers. During plane updates, the content of the >>> SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance >>> is not nuch different from the original code. >>> >>> The patchset has been tested on MGA G200EH hardware. >>> >>> Thomas Zimmermann (17): >>>drm/mgag200: Remove HW cursor >>>drm/mgag200: Remove unused fields from struct mga_device >>>drm/mgag200: Embed connector instance in struct mga_device >>>drm/mgag200: Use managed mode-config initialization >>>drm/mgag200: Clean up mga_set_start_address() >>>drm/mgag200: Clean up mga_crtc_do_set_base() >>>drm/mgag200: Move mode-setting code into separate helper function >>>drm/mgag200: Split MISC register update into PLL selection, SYNC and >>> I/O >>>drm/mgag200: Update mode registers after plane registers >>>drm/mgag200: Set pitch in a separate helper function >>>drm/mgag200: Set primary plane's format in separate helper function >>>drm/mgag200: Move TAGFIFO reset into separate function >>>drm/mgag200: Move hiprilvl setting into separate functions >>>drm/mgag200: Move register initialization into separate function >>>drm/mgag200: Remove waiting from DPMS code >>>drm/mgag200: Convert to simple KMS helper >>>drm/mgag200: Replace VRAM helpers with SHMEM helpers >>> >>> drivers/gpu/drm/mgag200/Kconfig | 4 +- >>> drivers/gpu/drm/mgag200/Makefile | 2 +- >>> drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 >>> drivers/gpu/drm/mgag200/mgag200_drv.c| 51 +- >>> drivers/gpu/drm/mgag200/mgag200_drv.h| 43 +- >>> drivers/gpu/drm/mgag200/mgag200_main.c | 28 - >>> drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- >>> drivers/gpu/drm/mgag200/mgag200_reg.h| 5 +- >>> drivers/gpu/drm/mgag200/mgag200_ttm.c| 35 +- >>> 9 files changed, 563 insertions(+), 872 deletions(-) >>> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c >>> >>> -- >>> 2.26.0 >>> >> >> >> Hi Thomas , >> >> I would like to test this on hardware that uses this device integrated >> into as BMC ( iLo ) that I have ran into problems before. Can you post >> your staging URL so I can clone it ? > > I uploaded the patches at > > > https://gitlab.freedesktop.org/tzimmermann/linux/-/tree/mgag200-simplekms-20200504 > > You can clone them with > > git clone g...@gitlab.freedesktop.org:tzimmermann/linux.git > > and checkout the mgag200-simplekms-20200405 branch afterwards. > > Best regards > Thomas > >> >> >> ( Thank you for CC'ing me. I removed my email from on dlist recently) . >> >> >> I had no issues running these changes with gnome on a server with a mgag200 integrated into a BMC . Tested-by: John Donnelly ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
> On May 4, 2020, at 8:39 AM, Thomas Zimmermann wrote: > > Hi John > > Am 30.04.20 um 02:11 schrieb John Donnelly: >> On 4/29/20 9:32 AM, Thomas Zimmermann wrote: >>> This patchset converts mgag200 to atomic modesetting. It uses simple >>> KMS helpers and SHMEM. >>> >>> Patches 1 to 4 simplifies the driver before the conversion. For example, >>> the HW cursor is not usable with the way universal planes work. A few >>> data structures can be cleaned up. >>> >>> Patches 5 to 15 untangle the existing modesetting code into smaller >>> functions. Specifically, mode setting and plane updates are being >>> separated from each other. >>> >>> Patch 16 converts mgag200 to simple KMS helpers and enables atomic >>> mode setting. >>> >>> As some HW seems to require a framebuffer offset of 0 within the video >>> memory, it does not work with atomic modesetting. Atomically switching >>> plane framebuffers, requires either source or target buffer to be located >>> at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from >>> VRAM helpers to SHMEM helpers. During plane updates, the content of the >>> SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance >>> is not nuch different from the original code. >>> >>> The patchset has been tested on MGA G200EH hardware. >>> >>> Thomas Zimmermann (17): >>>drm/mgag200: Remove HW cursor >>>drm/mgag200: Remove unused fields from struct mga_device >>>drm/mgag200: Embed connector instance in struct mga_device >>>drm/mgag200: Use managed mode-config initialization >>>drm/mgag200: Clean up mga_set_start_address() >>>drm/mgag200: Clean up mga_crtc_do_set_base() >>>drm/mgag200: Move mode-setting code into separate helper function >>>drm/mgag200: Split MISC register update into PLL selection, SYNC and >>> I/O >>>drm/mgag200: Update mode registers after plane registers >>>drm/mgag200: Set pitch in a separate helper function >>>drm/mgag200: Set primary plane's format in separate helper function >>>drm/mgag200: Move TAGFIFO reset into separate function >>>drm/mgag200: Move hiprilvl setting into separate functions >>>drm/mgag200: Move register initialization into separate function >>>drm/mgag200: Remove waiting from DPMS code >>>drm/mgag200: Convert to simple KMS helper >>>drm/mgag200: Replace VRAM helpers with SHMEM helpers >>> >>> drivers/gpu/drm/mgag200/Kconfig | 4 +- >>> drivers/gpu/drm/mgag200/Makefile | 2 +- >>> drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 >>> drivers/gpu/drm/mgag200/mgag200_drv.c| 51 +- >>> drivers/gpu/drm/mgag200/mgag200_drv.h| 43 +- >>> drivers/gpu/drm/mgag200/mgag200_main.c | 28 - >>> drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- >>> drivers/gpu/drm/mgag200/mgag200_reg.h| 5 +- >>> drivers/gpu/drm/mgag200/mgag200_ttm.c| 35 +- >>> 9 files changed, 563 insertions(+), 872 deletions(-) >>> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c >>> >>> -- >>> 2.26.0 >>> >> >> >> Hi Thomas , >> >> I would like to test this on hardware that uses this device integrated >> into as BMC ( iLo ) that I have ran into problems before. Can you post >> your staging URL so I can clone it ? > > I uploaded the patches at > > > https://gitlab.freedesktop.org/tzimmermann/linux/-/tree/mgag200-simplekms-20200504 > > You can clone them with > > git clone g...@gitlab.freedesktop.org:tzimmermann/linux.git > > and checkout the mgag200-simplekms-20200405 branch afterwards. > > Best regards > Thomas Got it . Thank you . ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
Hi John Am 30.04.20 um 02:11 schrieb John Donnelly: > On 4/29/20 9:32 AM, Thomas Zimmermann wrote: >> This patchset converts mgag200 to atomic modesetting. It uses simple >> KMS helpers and SHMEM. >> >> Patches 1 to 4 simplifies the driver before the conversion. For example, >> the HW cursor is not usable with the way universal planes work. A few >> data structures can be cleaned up. >> >> Patches 5 to 15 untangle the existing modesetting code into smaller >> functions. Specifically, mode setting and plane updates are being >> separated from each other. >> >> Patch 16 converts mgag200 to simple KMS helpers and enables atomic >> mode setting. >> >> As some HW seems to require a framebuffer offset of 0 within the video >> memory, it does not work with atomic modesetting. Atomically switching >> plane framebuffers, requires either source or target buffer to be located >> at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from >> VRAM helpers to SHMEM helpers. During plane updates, the content of the >> SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance >> is not nuch different from the original code. >> >> The patchset has been tested on MGA G200EH hardware. >> >> Thomas Zimmermann (17): >> drm/mgag200: Remove HW cursor >> drm/mgag200: Remove unused fields from struct mga_device >> drm/mgag200: Embed connector instance in struct mga_device >> drm/mgag200: Use managed mode-config initialization >> drm/mgag200: Clean up mga_set_start_address() >> drm/mgag200: Clean up mga_crtc_do_set_base() >> drm/mgag200: Move mode-setting code into separate helper function >> drm/mgag200: Split MISC register update into PLL selection, SYNC and >> I/O >> drm/mgag200: Update mode registers after plane registers >> drm/mgag200: Set pitch in a separate helper function >> drm/mgag200: Set primary plane's format in separate helper function >> drm/mgag200: Move TAGFIFO reset into separate function >> drm/mgag200: Move hiprilvl setting into separate functions >> drm/mgag200: Move register initialization into separate function >> drm/mgag200: Remove waiting from DPMS code >> drm/mgag200: Convert to simple KMS helper >> drm/mgag200: Replace VRAM helpers with SHMEM helpers >> >> drivers/gpu/drm/mgag200/Kconfig | 4 +- >> drivers/gpu/drm/mgag200/Makefile | 2 +- >> drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 >> drivers/gpu/drm/mgag200/mgag200_drv.c | 51 +- >> drivers/gpu/drm/mgag200/mgag200_drv.h | 43 +- >> drivers/gpu/drm/mgag200/mgag200_main.c | 28 - >> drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- >> drivers/gpu/drm/mgag200/mgag200_reg.h | 5 +- >> drivers/gpu/drm/mgag200/mgag200_ttm.c | 35 +- >> 9 files changed, 563 insertions(+), 872 deletions(-) >> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c >> >> -- >> 2.26.0 >> > > > Hi Thomas , > > I would like to test this on hardware that uses this device integrated > into as BMC ( iLo ) that I have ran into problems before. Can you post > your staging URL so I can clone it ? I uploaded the patches at https://gitlab.freedesktop.org/tzimmermann/linux/-/tree/mgag200-simplekms-20200504 You can clone them with git clone g...@gitlab.freedesktop.org:tzimmermann/linux.git and checkout the mgag200-simplekms-20200405 branch afterwards. Best regards Thomas > > > ( Thank you for CC'ing me. I removed my email from on dlist recently) . > > > > -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer signature.asc Description: OpenPGP digital signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
On 4/30/20 3:29 AM, Thomas Zimmermann wrote: Hi John Am 30.04.20 um 02:11 schrieb John Donnelly: On 4/29/20 9:32 AM, Thomas Zimmermann wrote: This patchset converts mgag200 to atomic modesetting. It uses simple KMS helpers and SHMEM. Patches 1 to 4 simplifies the driver before the conversion. For example, the HW cursor is not usable with the way universal planes work. A few data structures can be cleaned up. Patches 5 to 15 untangle the existing modesetting code into smaller functions. Specifically, mode setting and plane updates are being separated from each other. Patch 16 converts mgag200 to simple KMS helpers and enables atomic mode setting. As some HW seems to require a framebuffer offset of 0 within the video memory, it does not work with atomic modesetting. Atomically switching plane framebuffers, requires either source or target buffer to be located at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from VRAM helpers to SHMEM helpers. During plane updates, the content of the SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance is not nuch different from the original code. The patchset has been tested on MGA G200EH hardware. Thomas Zimmermann (17): drm/mgag200: Remove HW cursor drm/mgag200: Remove unused fields from struct mga_device drm/mgag200: Embed connector instance in struct mga_device drm/mgag200: Use managed mode-config initialization drm/mgag200: Clean up mga_set_start_address() drm/mgag200: Clean up mga_crtc_do_set_base() drm/mgag200: Move mode-setting code into separate helper function drm/mgag200: Split MISC register update into PLL selection, SYNC and I/O drm/mgag200: Update mode registers after plane registers drm/mgag200: Set pitch in a separate helper function drm/mgag200: Set primary plane's format in separate helper function drm/mgag200: Move TAGFIFO reset into separate function drm/mgag200: Move hiprilvl setting into separate functions drm/mgag200: Move register initialization into separate function drm/mgag200: Remove waiting from DPMS code drm/mgag200: Convert to simple KMS helper drm/mgag200: Replace VRAM helpers with SHMEM helpers drivers/gpu/drm/mgag200/Kconfig | 4 +- drivers/gpu/drm/mgag200/Makefile | 2 +- drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 drivers/gpu/drm/mgag200/mgag200_drv.c | 51 +- drivers/gpu/drm/mgag200/mgag200_drv.h | 43 +- drivers/gpu/drm/mgag200/mgag200_main.c | 28 - drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- drivers/gpu/drm/mgag200/mgag200_reg.h | 5 +- drivers/gpu/drm/mgag200/mgag200_ttm.c | 35 +- 9 files changed, 563 insertions(+), 872 deletions(-) delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c -- 2.26.0 Hi Thomas , I would like to test this on hardware that uses this device integrated into as BMC ( iLo ) that I have ran into problems before. Can you post your staging URL so I can clone it ? Sure, I'll set something up for you. But it could take until next week. I promise not to merge the patches before you had a chance to test them. Best regards Thomas Hi I may try to apply these patches locally .. It won't be until next week though . ( Thank you for CC'ing me. I removed my email from on dlist recently) . -- Thank You, John ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
Hi John Am 30.04.20 um 02:11 schrieb John Donnelly: > On 4/29/20 9:32 AM, Thomas Zimmermann wrote: >> This patchset converts mgag200 to atomic modesetting. It uses simple >> KMS helpers and SHMEM. >> >> Patches 1 to 4 simplifies the driver before the conversion. For example, >> the HW cursor is not usable with the way universal planes work. A few >> data structures can be cleaned up. >> >> Patches 5 to 15 untangle the existing modesetting code into smaller >> functions. Specifically, mode setting and plane updates are being >> separated from each other. >> >> Patch 16 converts mgag200 to simple KMS helpers and enables atomic >> mode setting. >> >> As some HW seems to require a framebuffer offset of 0 within the video >> memory, it does not work with atomic modesetting. Atomically switching >> plane framebuffers, requires either source or target buffer to be located >> at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from >> VRAM helpers to SHMEM helpers. During plane updates, the content of the >> SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance >> is not nuch different from the original code. >> >> The patchset has been tested on MGA G200EH hardware. >> >> Thomas Zimmermann (17): >> drm/mgag200: Remove HW cursor >> drm/mgag200: Remove unused fields from struct mga_device >> drm/mgag200: Embed connector instance in struct mga_device >> drm/mgag200: Use managed mode-config initialization >> drm/mgag200: Clean up mga_set_start_address() >> drm/mgag200: Clean up mga_crtc_do_set_base() >> drm/mgag200: Move mode-setting code into separate helper function >> drm/mgag200: Split MISC register update into PLL selection, SYNC and >> I/O >> drm/mgag200: Update mode registers after plane registers >> drm/mgag200: Set pitch in a separate helper function >> drm/mgag200: Set primary plane's format in separate helper function >> drm/mgag200: Move TAGFIFO reset into separate function >> drm/mgag200: Move hiprilvl setting into separate functions >> drm/mgag200: Move register initialization into separate function >> drm/mgag200: Remove waiting from DPMS code >> drm/mgag200: Convert to simple KMS helper >> drm/mgag200: Replace VRAM helpers with SHMEM helpers >> >> drivers/gpu/drm/mgag200/Kconfig | 4 +- >> drivers/gpu/drm/mgag200/Makefile | 2 +- >> drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 >> drivers/gpu/drm/mgag200/mgag200_drv.c | 51 +- >> drivers/gpu/drm/mgag200/mgag200_drv.h | 43 +- >> drivers/gpu/drm/mgag200/mgag200_main.c | 28 - >> drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- >> drivers/gpu/drm/mgag200/mgag200_reg.h | 5 +- >> drivers/gpu/drm/mgag200/mgag200_ttm.c | 35 +- >> 9 files changed, 563 insertions(+), 872 deletions(-) >> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c >> >> -- >> 2.26.0 >> > > > Hi Thomas , > > I would like to test this on hardware that uses this device integrated > into as BMC ( iLo ) that I have ran into problems before. Can you post > your staging URL so I can clone it ? Sure, I'll set something up for you. But it could take until next week. I promise not to merge the patches before you had a chance to test them. Best regards Thomas > > > ( Thank you for CC'ing me. I removed my email from on dlist recently) . > > > > -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer signature.asc Description: OpenPGP digital signature ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting
On 4/29/20 9:32 AM, Thomas Zimmermann wrote: This patchset converts mgag200 to atomic modesetting. It uses simple KMS helpers and SHMEM. Patches 1 to 4 simplifies the driver before the conversion. For example, the HW cursor is not usable with the way universal planes work. A few data structures can be cleaned up. Patches 5 to 15 untangle the existing modesetting code into smaller functions. Specifically, mode setting and plane updates are being separated from each other. Patch 16 converts mgag200 to simple KMS helpers and enables atomic mode setting. As some HW seems to require a framebuffer offset of 0 within the video memory, it does not work with atomic modesetting. Atomically switching plane framebuffers, requires either source or target buffer to be located at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from VRAM helpers to SHMEM helpers. During plane updates, the content of the SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance is not nuch different from the original code. The patchset has been tested on MGA G200EH hardware. Thomas Zimmermann (17): drm/mgag200: Remove HW cursor drm/mgag200: Remove unused fields from struct mga_device drm/mgag200: Embed connector instance in struct mga_device drm/mgag200: Use managed mode-config initialization drm/mgag200: Clean up mga_set_start_address() drm/mgag200: Clean up mga_crtc_do_set_base() drm/mgag200: Move mode-setting code into separate helper function drm/mgag200: Split MISC register update into PLL selection, SYNC and I/O drm/mgag200: Update mode registers after plane registers drm/mgag200: Set pitch in a separate helper function drm/mgag200: Set primary plane's format in separate helper function drm/mgag200: Move TAGFIFO reset into separate function drm/mgag200: Move hiprilvl setting into separate functions drm/mgag200: Move register initialization into separate function drm/mgag200: Remove waiting from DPMS code drm/mgag200: Convert to simple KMS helper drm/mgag200: Replace VRAM helpers with SHMEM helpers drivers/gpu/drm/mgag200/Kconfig | 4 +- drivers/gpu/drm/mgag200/Makefile | 2 +- drivers/gpu/drm/mgag200/mgag200_cursor.c | 319 drivers/gpu/drm/mgag200/mgag200_drv.c| 51 +- drivers/gpu/drm/mgag200/mgag200_drv.h| 43 +- drivers/gpu/drm/mgag200/mgag200_main.c | 28 - drivers/gpu/drm/mgag200/mgag200_mode.c | 948 --- drivers/gpu/drm/mgag200/mgag200_reg.h| 5 +- drivers/gpu/drm/mgag200/mgag200_ttm.c| 35 +- 9 files changed, 563 insertions(+), 872 deletions(-) delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c -- 2.26.0 Hi Thomas , I would like to test this on hardware that uses this device integrated into as BMC ( iLo ) that I have ran into problems before. Can you post your staging URL so I can clone it ? ( Thank you for CC'ing me. I removed my email from on dlist recently) . -- Thank You, John ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel