Lines Matching +full:dsi +full:- +full:to +full:- +full:edp
4 * Permission to use, copy, modify, distribute, and sell this software and its
9 * publicity pertaining to distribution of the software without specific,
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
35 * This helper library contains various one-off functions which don't really fit
40 * drm_helper_move_panel_connectors_to_head() - move panels to the front in the
42 * @dev: drm device to operate on
45 * display, where it's supposed to display e.g. the login screen. For
46 * laptops, this should be the main panel. Use this function to sort all
47 * (eDP/LVDS/DSI) panels to the front of the connector list, instead of
48 * painstakingly trying to initialize them in the right order.
57 spin_lock_irq(&dev->mode_config.connector_list_lock); in drm_helper_move_panel_connectors_to_head()
59 &dev->mode_config.connector_list, head) { in drm_helper_move_panel_connectors_to_head()
60 if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS || in drm_helper_move_panel_connectors_to_head()
61 connector->connector_type == DRM_MODE_CONNECTOR_eDP || in drm_helper_move_panel_connectors_to_head()
62 connector->connector_type == DRM_MODE_CONNECTOR_DSI) in drm_helper_move_panel_connectors_to_head()
63 list_move_tail(&connector->head, &panel_list); in drm_helper_move_panel_connectors_to_head()
66 list_splice(&panel_list, &dev->mode_config.connector_list); in drm_helper_move_panel_connectors_to_head()
67 spin_unlock_irq(&dev->mode_config.connector_list_lock); in drm_helper_move_panel_connectors_to_head()
72 * drm_helper_mode_fill_fb_struct - fill out framebuffer metadata
74 * @fb: drm_framebuffer object to fill out
77 * This helper can be used in a drivers fb_create callback to pre-fill the fb's
86 fb->dev = dev; in drm_helper_mode_fill_fb_struct()
87 fb->format = drm_get_format_info(dev, mode_cmd); in drm_helper_mode_fill_fb_struct()
88 fb->width = mode_cmd->width; in drm_helper_mode_fill_fb_struct()
89 fb->height = mode_cmd->height; in drm_helper_mode_fill_fb_struct()
91 fb->pitches[i] = mode_cmd->pitches[i]; in drm_helper_mode_fill_fb_struct()
92 fb->offsets[i] = mode_cmd->offsets[i]; in drm_helper_mode_fill_fb_struct()
94 fb->modifier = mode_cmd->modifier[0]; in drm_helper_mode_fill_fb_struct()
95 fb->flags = mode_cmd->flags; in drm_helper_mode_fill_fb_struct()
100 * This is the minimal list of formats that seem to be safe for modeset use
115 * drm_crtc_init - Legacy CRTC initialization function
117 * @crtc: CRTC object to init
120 * Initialize a CRTC object with a default helper-provided primary plane and no
160 primary->format_default = true; in drm_crtc_init()
176 * drm_mode_config_helper_suspend - Modeset suspend helper
182 * If suspending fails, fbdev and polling is re-enabled.
199 if (dev->mode_config.poll_enabled) in drm_mode_config_helper_suspend()
202 drm_fb_helper_set_suspend_unlocked(dev->fb_helper, 1); in drm_mode_config_helper_suspend()
205 drm_fb_helper_set_suspend_unlocked(dev->fb_helper, 0); in drm_mode_config_helper_suspend()
209 if (dev->mode_config.poll_enabled) in drm_mode_config_helper_suspend()
215 dev->mode_config.suspend_state = state; in drm_mode_config_helper_suspend()
222 * drm_mode_config_helper_resume - Modeset resume helper
242 if (WARN_ON(!dev->mode_config.suspend_state)) in drm_mode_config_helper_resume()
243 return -EINVAL; in drm_mode_config_helper_resume()
245 ret = drm_atomic_helper_resume(dev, dev->mode_config.suspend_state); in drm_mode_config_helper_resume()
247 DRM_ERROR("Failed to resume (%d)\n", ret); in drm_mode_config_helper_resume()
248 dev->mode_config.suspend_state = NULL; in drm_mode_config_helper_resume()
250 drm_fb_helper_set_suspend_unlocked(dev->fb_helper, 0); in drm_mode_config_helper_resume()
254 if (dev->mode_config.poll_enabled) in drm_mode_config_helper_resume()