Thomas Zimmermann <tzimmermann@xxxxxxx> writes: > Move code from ad-hoc fbdev callbacks into DRM client functions > and remove the old callbacks. The functions instruct the client > to poll for changed output or restore the display. The DRM core > calls both, the old callbacks and the new client helpers, from > the same places. The new functions perform the same operation as > before, so there's no change in functionality. > > Replace all code that initializes or releases fbdev emulation > throughout the driver. Instead initialize the fbdev client by a > single call to armada_fbdev_setup() after armada has registered its > DRM device. As in most drivers, aramda's fbdev emulation now acts > like a regular DRM client. > > The fbdev client setup consists of the initial preparation and the > hot-plugging of the display. The latter creates the fbdev device > and sets up the fbdev framebuffer. The setup performs display > hot-plugging once. If no display can be detected, DRM probe helpers > re-run the detection on each hotplug event. > > A call to drm_dev_unregister() releases the client automatically. > No further action is required within armada. If the fbdev framebuffer > has been fully set up, struct fb_ops.fb_destroy implements the > release. For partially initialized emulation, the fbdev client > reverts the initial setup. > > Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > --- > Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> -- Best regards, Javier Martinez Canillas Core Platforms Red Hat