Message ID | 20241212170913.185939-1-tzimmermann@suse.de (mailing list archive) |
---|---|
Headers | show |
Series | drm/{i915,xe}: Convert to DRM client setup | expand |
ping Am 12.12.24 um 18:08 schrieb Thomas Zimmermann: > i915 and xe are the last remaining drivers that still implement their > own fbdev client. All other clients have been mass converted to DRM's > client setup in in the series at [1]. As Intel drivers require more > effort than others, their changes have been moved into this separate > series. > > With DRM's client setup, DRM picks the in-kernel client from the > kernel's config and parameters. Besides fbdev there's also drm_log > available. For fbdev support, the driver only has to implement struct > drm_driver.fbdev_probe, a callback that allocates a compatible > framebuffer. > > At first, some details of the Intel implementation have to be rebuild > for the generic client and fbdev handling. Patches 1 to 6 do that. > Hotplugging and suspend/resume are then hidden behind callbacks. Some > Intel-specifics in the restore and suspend code get their own hooks. > > Patches 7 to 9 prepare Intel's fbdev implementation ot get things > out of the way. > > Patch 10 converts i915 and xe to DRM's client setup. Patches 11 and > 12 clean up the remaining code. > > Tested with i915 and xe hardware. > > [1] https://patchwork.freedesktop.org/series/137391/ > > Thomas Zimmermann (12): > drm/{i915,xe}: Suspend/resume fbdev emulation via client interfaces > drm/client: Add client-hotplug helper > drm/client: Send pending hotplug events after resume > drm/i915/display: Remove fbdev suspend and hotplug tracking > drm/i915/display: fbdev: Move custom restore code to new callback > drm/i915/display: fbdev: Move custom suspend code to new callback > drm/i915/display: Remove preferred_bpp from struct intel_fbdev > drm/i915/display: Remove struct drm_fb_helper from struct intel_fbdev > drm/i915/display: Move fbdev code around > drm/{i915,xe}: Run DRM default client setup > drm/i915/display: Remove compile guard around fbdev debugfs output > drm/fb-helper: Remove struct drm_fb_helper.fb_probe > > drivers/gpu/drm/drm_client_event.c | 41 ++- > drivers/gpu/drm/drm_fb_helper.c | 20 +- > .../gpu/drm/i915/display/intel_display_core.h | 1 - > .../drm/i915/display/intel_display_debugfs.c | 2 - > drivers/gpu/drm/i915/display/intel_fbdev.c | 338 ++++-------------- > drivers/gpu/drm/i915/display/intel_fbdev.h | 17 +- > drivers/gpu/drm/i915/i915_driver.c | 10 +- > drivers/gpu/drm/xe/display/xe_display.c | 12 +- > include/drm/drm_client.h | 8 + > include/drm/drm_fb_helper.h | 44 ++- > 10 files changed, 176 insertions(+), 317 deletions(-) > > > base-commit: 7bbcd7df9387f0d9004f997df33f7a9472d9c080
ping for a review Am 12.12.24 um 18:08 schrieb Thomas Zimmermann: > i915 and xe are the last remaining drivers that still implement their > own fbdev client. All other clients have been mass converted to DRM's > client setup in in the series at [1]. As Intel drivers require more > effort than others, their changes have been moved into this separate > series. > > With DRM's client setup, DRM picks the in-kernel client from the > kernel's config and parameters. Besides fbdev there's also drm_log > available. For fbdev support, the driver only has to implement struct > drm_driver.fbdev_probe, a callback that allocates a compatible > framebuffer. > > At first, some details of the Intel implementation have to be rebuild > for the generic client and fbdev handling. Patches 1 to 6 do that. > Hotplugging and suspend/resume are then hidden behind callbacks. Some > Intel-specifics in the restore and suspend code get their own hooks. > > Patches 7 to 9 prepare Intel's fbdev implementation ot get things > out of the way. > > Patch 10 converts i915 and xe to DRM's client setup. Patches 11 and > 12 clean up the remaining code. > > Tested with i915 and xe hardware. > > [1] https://patchwork.freedesktop.org/series/137391/ > > Thomas Zimmermann (12): > drm/{i915,xe}: Suspend/resume fbdev emulation via client interfaces > drm/client: Add client-hotplug helper > drm/client: Send pending hotplug events after resume > drm/i915/display: Remove fbdev suspend and hotplug tracking > drm/i915/display: fbdev: Move custom restore code to new callback > drm/i915/display: fbdev: Move custom suspend code to new callback > drm/i915/display: Remove preferred_bpp from struct intel_fbdev > drm/i915/display: Remove struct drm_fb_helper from struct intel_fbdev > drm/i915/display: Move fbdev code around > drm/{i915,xe}: Run DRM default client setup > drm/i915/display: Remove compile guard around fbdev debugfs output > drm/fb-helper: Remove struct drm_fb_helper.fb_probe > > drivers/gpu/drm/drm_client_event.c | 41 ++- > drivers/gpu/drm/drm_fb_helper.c | 20 +- > .../gpu/drm/i915/display/intel_display_core.h | 1 - > .../drm/i915/display/intel_display_debugfs.c | 2 - > drivers/gpu/drm/i915/display/intel_fbdev.c | 338 ++++-------------- > drivers/gpu/drm/i915/display/intel_fbdev.h | 17 +- > drivers/gpu/drm/i915/i915_driver.c | 10 +- > drivers/gpu/drm/xe/display/xe_display.c | 12 +- > include/drm/drm_client.h | 8 + > include/drm/drm_fb_helper.h | 44 ++- > 10 files changed, 176 insertions(+), 317 deletions(-) > > > base-commit: 7bbcd7df9387f0d9004f997df33f7a9472d9c080
Hey, I'll give it a spin on xe today. It seems someone already tried on i915, so I expect no issues. The only question I have is do we still inherit the BIOS fb on boot for fbdev? The really active bit seems to be replacing the fbdev stuff with drm_client_setup_with_color_mode Patches themselves look good. Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> On 2025-02-11 08:17, Thomas Zimmermann wrote: > ping for a review > > Am 12.12.24 um 18:08 schrieb Thomas Zimmermann: >> i915 and xe are the last remaining drivers that still implement their >> own fbdev client. All other clients have been mass converted to DRM's >> client setup in in the series at [1]. As Intel drivers require more >> effort than others, their changes have been moved into this separate >> series. >> >> With DRM's client setup, DRM picks the in-kernel client from the >> kernel's config and parameters. Besides fbdev there's also drm_log >> available. For fbdev support, the driver only has to implement struct >> drm_driver.fbdev_probe, a callback that allocates a compatible >> framebuffer. >> >> At first, some details of the Intel implementation have to be rebuild >> for the generic client and fbdev handling. Patches 1 to 6 do that. >> Hotplugging and suspend/resume are then hidden behind callbacks. Some >> Intel-specifics in the restore and suspend code get their own hooks. >> >> Patches 7 to 9 prepare Intel's fbdev implementation ot get things >> out of the way. >> >> Patch 10 converts i915 and xe to DRM's client setup. Patches 11 and >> 12 clean up the remaining code. >> >> Tested with i915 and xe hardware. >> >> [1] https://patchwork.freedesktop.org/series/137391/ >> >> Thomas Zimmermann (12): >> drm/{i915,xe}: Suspend/resume fbdev emulation via client interfaces >> drm/client: Add client-hotplug helper >> drm/client: Send pending hotplug events after resume >> drm/i915/display: Remove fbdev suspend and hotplug tracking >> drm/i915/display: fbdev: Move custom restore code to new callback >> drm/i915/display: fbdev: Move custom suspend code to new callback >> drm/i915/display: Remove preferred_bpp from struct intel_fbdev >> drm/i915/display: Remove struct drm_fb_helper from struct intel_fbdev >> drm/i915/display: Move fbdev code around >> drm/{i915,xe}: Run DRM default client setup >> drm/i915/display: Remove compile guard around fbdev debugfs output >> drm/fb-helper: Remove struct drm_fb_helper.fb_probe >> >> drivers/gpu/drm/drm_client_event.c | 41 ++- >> drivers/gpu/drm/drm_fb_helper.c | 20 +- >> .../gpu/drm/i915/display/intel_display_core.h | 1 - >> .../drm/i915/display/intel_display_debugfs.c | 2 - >> drivers/gpu/drm/i915/display/intel_fbdev.c | 338 ++++-------------- >> drivers/gpu/drm/i915/display/intel_fbdev.h | 17 +- >> drivers/gpu/drm/i915/i915_driver.c | 10 +- >> drivers/gpu/drm/xe/display/xe_display.c | 12 +- >> include/drm/drm_client.h | 8 + >> include/drm/drm_fb_helper.h | 44 ++- >> 10 files changed, 176 insertions(+), 317 deletions(-) >> >> >> base-commit: 7bbcd7df9387f0d9004f997df33f7a9472d9c080 >
Hi Am 12.02.25 um 08:28 schrieb Maarten Lankhorst: > Hey, > > I'll give it a spin on xe today. It seems someone already tried on i915, > so I expect no issues. Thanks for testing. > > The only question I have is do we still inherit the BIOS fb on boot > for fbdev? I tried to not break that code. It still uses the active framebuffer and picks its color format for the framebuffer console. > > The really active bit seems to be replacing the fbdev stuff with > drm_client_setup_with_color_mode The old preferred_bpp and the color mode are the same values. The intention here is to not change anything. I guess I should have renamed the preferred_bpp variable. > > Patches themselves look good. > > Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Thanks a lot. Best regards Thomas > > On 2025-02-11 08:17, Thomas Zimmermann wrote: >> ping for a review >> >> Am 12.12.24 um 18:08 schrieb Thomas Zimmermann: >>> i915 and xe are the last remaining drivers that still implement their >>> own fbdev client. All other clients have been mass converted to DRM's >>> client setup in in the series at [1]. As Intel drivers require more >>> effort than others, their changes have been moved into this separate >>> series. >>> >>> With DRM's client setup, DRM picks the in-kernel client from the >>> kernel's config and parameters. Besides fbdev there's also drm_log >>> available. For fbdev support, the driver only has to implement struct >>> drm_driver.fbdev_probe, a callback that allocates a compatible >>> framebuffer. >>> >>> At first, some details of the Intel implementation have to be rebuild >>> for the generic client and fbdev handling. Patches 1 to 6 do that. >>> Hotplugging and suspend/resume are then hidden behind callbacks. Some >>> Intel-specifics in the restore and suspend code get their own hooks. >>> >>> Patches 7 to 9 prepare Intel's fbdev implementation ot get things >>> out of the way. >>> >>> Patch 10 converts i915 and xe to DRM's client setup. Patches 11 and >>> 12 clean up the remaining code. >>> >>> Tested with i915 and xe hardware. >>> >>> [1] https://patchwork.freedesktop.org/series/137391/ >>> >>> Thomas Zimmermann (12): >>> drm/{i915,xe}: Suspend/resume fbdev emulation via client interfaces >>> drm/client: Add client-hotplug helper >>> drm/client: Send pending hotplug events after resume >>> drm/i915/display: Remove fbdev suspend and hotplug tracking >>> drm/i915/display: fbdev: Move custom restore code to new callback >>> drm/i915/display: fbdev: Move custom suspend code to new callback >>> drm/i915/display: Remove preferred_bpp from struct intel_fbdev >>> drm/i915/display: Remove struct drm_fb_helper from struct >>> intel_fbdev >>> drm/i915/display: Move fbdev code around >>> drm/{i915,xe}: Run DRM default client setup >>> drm/i915/display: Remove compile guard around fbdev debugfs output >>> drm/fb-helper: Remove struct drm_fb_helper.fb_probe >>> >>> drivers/gpu/drm/drm_client_event.c | 41 ++- >>> drivers/gpu/drm/drm_fb_helper.c | 20 +- >>> .../gpu/drm/i915/display/intel_display_core.h | 1 - >>> .../drm/i915/display/intel_display_debugfs.c | 2 - >>> drivers/gpu/drm/i915/display/intel_fbdev.c | 338 >>> ++++-------------- >>> drivers/gpu/drm/i915/display/intel_fbdev.h | 17 +- >>> drivers/gpu/drm/i915/i915_driver.c | 10 +- >>> drivers/gpu/drm/xe/display/xe_display.c | 12 +- >>> include/drm/drm_client.h | 8 + >>> include/drm/drm_fb_helper.h | 44 ++- >>> 10 files changed, 176 insertions(+), 317 deletions(-) >>> >>> >>> base-commit: 7bbcd7df9387f0d9004f997df33f7a9472d9c080 >> >
Hi Maarten Am 12.02.25 um 08:28 schrieb Maarten Lankhorst: > Hey, > > I'll give it a spin on xe today. It seems someone already tried on i915, > so I expect no issues. Did you get to test the series? Best regards Thomas > > The only question I have is do we still inherit the BIOS fb on boot > for fbdev? > > The really active bit seems to be replacing the fbdev stuff with > drm_client_setup_with_color_mode > > Patches themselves look good. > > Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > On 2025-02-11 08:17, Thomas Zimmermann wrote: >> ping for a review >> >> Am 12.12.24 um 18:08 schrieb Thomas Zimmermann: >>> i915 and xe are the last remaining drivers that still implement their >>> own fbdev client. All other clients have been mass converted to DRM's >>> client setup in in the series at [1]. As Intel drivers require more >>> effort than others, their changes have been moved into this separate >>> series. >>> >>> With DRM's client setup, DRM picks the in-kernel client from the >>> kernel's config and parameters. Besides fbdev there's also drm_log >>> available. For fbdev support, the driver only has to implement struct >>> drm_driver.fbdev_probe, a callback that allocates a compatible >>> framebuffer. >>> >>> At first, some details of the Intel implementation have to be rebuild >>> for the generic client and fbdev handling. Patches 1 to 6 do that. >>> Hotplugging and suspend/resume are then hidden behind callbacks. Some >>> Intel-specifics in the restore and suspend code get their own hooks. >>> >>> Patches 7 to 9 prepare Intel's fbdev implementation ot get things >>> out of the way. >>> >>> Patch 10 converts i915 and xe to DRM's client setup. Patches 11 and >>> 12 clean up the remaining code. >>> >>> Tested with i915 and xe hardware. >>> >>> [1] https://patchwork.freedesktop.org/series/137391/ >>> >>> Thomas Zimmermann (12): >>> drm/{i915,xe}: Suspend/resume fbdev emulation via client interfaces >>> drm/client: Add client-hotplug helper >>> drm/client: Send pending hotplug events after resume >>> drm/i915/display: Remove fbdev suspend and hotplug tracking >>> drm/i915/display: fbdev: Move custom restore code to new callback >>> drm/i915/display: fbdev: Move custom suspend code to new callback >>> drm/i915/display: Remove preferred_bpp from struct intel_fbdev >>> drm/i915/display: Remove struct drm_fb_helper from struct >>> intel_fbdev >>> drm/i915/display: Move fbdev code around >>> drm/{i915,xe}: Run DRM default client setup >>> drm/i915/display: Remove compile guard around fbdev debugfs output >>> drm/fb-helper: Remove struct drm_fb_helper.fb_probe >>> >>> drivers/gpu/drm/drm_client_event.c | 41 ++- >>> drivers/gpu/drm/drm_fb_helper.c | 20 +- >>> .../gpu/drm/i915/display/intel_display_core.h | 1 - >>> .../drm/i915/display/intel_display_debugfs.c | 2 - >>> drivers/gpu/drm/i915/display/intel_fbdev.c | 338 >>> ++++-------------- >>> drivers/gpu/drm/i915/display/intel_fbdev.h | 17 +- >>> drivers/gpu/drm/i915/i915_driver.c | 10 +- >>> drivers/gpu/drm/xe/display/xe_display.c | 12 +- >>> include/drm/drm_client.h | 8 + >>> include/drm/drm_fb_helper.h | 44 ++- >>> 10 files changed, 176 insertions(+), 317 deletions(-) >>> >>> >>> base-commit: 7bbcd7df9387f0d9004f997df33f7a9472d9c080 >> >