Lines Matching refs:fbdev
62 "Enable legacy fbdev emulation [default=true]");
67 "Overallocation of the fbdev buffer (%) [default="
72 * to keep leaking the fbdev physical address to the user-space program
73 * handling the fbdev buffer.
80 * considered as a broken and legacy behaviour from a modern fbdev device.
86 "Allow unsafe leaking fbdev physical smem address [default=false]");
100 * DOC: fbdev helpers
102 * The fb helper functions are useful to provide an fbdev on top of a drm kernel
108 * should try out the generic fbdev emulation using drm_fbdev_generic_setup().
112 * At runtime drivers should restore the fbdev console by using
119 * drm_mode_config_helper_resume() which takes care of fbdev as well.
122 * implement the fbdev driver interface by the driver.
125 * hotplug detection using the fbdev helpers. The drm_fb_helper_prepare()
131 * encoders and connectors. To finish up the fbdev helper initialization, the
146 * fbdev shadow buffer and call drm_fbdev_generic_setup() instead.
166 * @info: fbdev registered by the helper
199 * @info: fbdev registered by the helper
239 * drm_fb_helper_restore_fbdev_mode_unlocked - restore fbdev configuration
240 * @fb_helper: driver-allocated fbdev helper, can be NULL
350 * @info: fbdev registered by the helper
391 fb_set_suspend(helper->fbdev, 0);
403 void *src = (char *)fb_helper->fbdev->screen_buffer + offset;
434 /* Generic fbdev uses a shadow buffer */
453 * @helper: driver-allocated fbdev helper structure to set up
476 * @fb_helper: driver-allocated fbdev helper structure to initialize
479 * This allocates the structures for the fbdev helper with the given limits.
481 * nor register the fbdev. This is only done in drm_fb_helper_initial_config()
501 * If this is not the generic fbdev client, initialize a drm_client
526 * @fb_helper: driver-allocated fbdev helper
558 fb_helper->fbdev = info;
574 * @fb_helper: driver-allocated fbdev helper, can be NULL
584 int ret = -config_detach(fb_helper->fbdev, DETACH_FORCE);
588 if (fb_helper && fb_helper->fbdev)
589 unregister_framebuffer(fb_helper->fbdev);
596 * @fb_helper: driver-allocated fbdev helper, can be NULL
618 info = fb_helper->fbdev;
625 fb_helper->fbdev = NULL;
680 * drm_fb_helper_deferred_io() - fbdev deferred_io callback function
685 * callback function for flushing the fbdev mmap writes.
719 * A wrapper around fb_sys_read implemented by fbdev core
735 * A wrapper around fb_sys_write implemented by fbdev core
753 * @info: fbdev registered by the helper
756 * A wrapper around sys_fillrect implemented by fbdev core
769 * @info: fbdev registered by the helper
772 * A wrapper around sys_copyarea implemented by fbdev core
785 * @info: fbdev registered by the helper
788 * A wrapper around sys_imageblit implemented by fbdev core
801 * @info: fbdev registered by the helper
804 * A wrapper around cfb_fillrect implemented by fbdev core
817 * @info: fbdev registered by the helper
820 * A wrapper around cfb_copyarea implemented by fbdev core
833 * @info: fbdev registered by the helper
836 * A wrapper around cfb_imageblit implemented by fbdev core
855 * @fb_helper: driver-allocated fbdev helper, can be NULL
858 * A wrapper around fb_set_suspend implemented by fbdev core.
864 if (fb_helper && fb_helper->fbdev)
865 fb_set_suspend(fb_helper->fbdev, suspend);
873 * @fb_helper: driver-allocated fbdev helper, can be NULL
882 * &fb_info.state is checked to see if fbdev is running or not before locking.
889 if (!fb_helper || !fb_helper->fbdev)
897 if (fb_helper->fbdev->state != FBINFO_STATE_RUNNING)
903 if (fb_helper->fbdev->state == FBINFO_STATE_RUNNING)
912 fb_set_suspend(fb_helper->fbdev, suspend);
1116 * @info: fbdev registered by the helper
1153 * @info: fbdev registered by the helper
1157 * A helper to implement the standard fbdev ioctl. Only
1180 * an argument, but in fbdev times, what that number
1298 * @info: fbdev registered by the helper
1311 drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
1354 * drm fbdev emulation doesn't support changing the pixel format at all,
1358 drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel format\n");
1368 * @info: fbdev registered by the helper
1371 * the fbdev core when registering the driver, and later on through the hotplug
1454 * @info: fbdev registered by the helper
1488 * Allocates the backing storage and sets up the fbdev info structure through
1705 * drm_fb_helper_fill_info - initializes fbdev information
1706 * @info: fbdev instance to set up
1708 * @sizes: describes fbdev size and scanout surface size
1710 * Sets up the variable and fixed fbdev metainformation from the given fb helper
1714 * &drm_fb_helper_funcs.fb_probe callback after having allocated the fbdev
1738 * the framebuffer has been allocated (fb_helper->fb and fb_helper->fbdev).
1747 struct fb_info *info = fb_helper->fbdev;
1837 info = fb_helper->fbdev;
1849 * register the fbdev emulation instance in kernel_fb_helper_list. */
1880 * Note that this also registers the fbdev and so allows userspace to call into
1881 * the driver through the fbdev interfaces.
1884 * to let the driver allocate and initialize the fbdev info structure and the
1885 * drm framebuffer used to back the fbdev. drm_fb_helper_fill_info() is provided
1886 * as a helper to setup simple default values for the fbdev info structure.
1891 * a full modeset to setup the fbdev console. Due to locking misdesign in the
1892 * VT/fbdev subsystem that entire modeset sequence has to be done while holding
1904 * The other option is to just disable fbdev emulation since very likely the
1929 * @fb_helper: driver-allocated fbdev helper, can be NULL
1941 * for a race-free fbcon setup and will make sure that the fbdev emulation will
1978 drm_fb_helper_set_par(fb_helper->fbdev);
1986 * drm_fb_helper_lastclose - DRM driver lastclose helper for fbdev emulation
2000 * helper for fbdev emulation
2042 struct fb_info *fbi = fb_helper->fbdev;
2194 if (fb_helper->fbdev)
2246 fb_helper->fbdev = NULL;
2248 drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
2261 * drm_fbdev_generic_setup() - Setup generic fbdev emulation
2266 * This function sets up generic fbdev emulation for drivers that supports
2274 * fbdev buffer that is blitted onto the real buffer. This is done in order to
2278 * required to use generic fbdev emulation with SHMEM helpers.
2283 * The fbdev is destroyed by drm_dev_unregister().
2302 ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_client_funcs);