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 -- 2.47.1