Lines Matching refs:follower
110 struct drm_panel_follower *follower;
130 list_for_each_entry(follower, &panel->followers, list) {
131 ret = follower->funcs->panel_prepared(follower);
134 follower->funcs->panel_prepared, ret);
158 struct drm_panel_follower *follower;
171 list_for_each_entry(follower, &panel->followers, list) {
172 ret = follower->funcs->panel_unpreparing(follower);
175 follower->funcs->panel_unpreparing, ret);
376 * drm_is_panel_follower() - Check if the device is a panel follower
380 * a panel using the panel follower API.
382 * The "panel" property of the follower points to the panel to be followed.
399 * @follower_dev: The 'struct device' for the follower.
400 * @follower: The panel follower descriptor for the follower.
402 * A panel follower is called right after preparing the panel and right before
407 * If a follower is added to a panel that's already been turned on, the
408 * follower's prepare callback is called right away.
411 * The "panel" property of the follower points to the panel to be followed.
418 struct drm_panel_follower *follower)
434 follower->panel = panel;
438 list_add_tail(&follower->list, &panel->followers);
440 ret = follower->funcs->panel_prepared(follower);
443 follower->funcs->panel_prepared, ret);
454 * @follower: The panel follower descriptor for the follower.
456 * Undo drm_panel_add_follower(). This includes calling the follower's
461 void drm_panel_remove_follower(struct drm_panel_follower *follower)
463 struct drm_panel *panel = follower->panel;
469 ret = follower->funcs->panel_unpreparing(follower);
472 follower->funcs->panel_unpreparing, ret);
474 list_del_init(&follower->list);
482 static void drm_panel_remove_follower_void(void *follower)
484 drm_panel_remove_follower(follower);
489 * @follower_dev: The 'struct device' for the follower.
490 * @follower: The panel follower descriptor for the follower.
497 struct drm_panel_follower *follower)
501 ret = drm_panel_add_follower(follower_dev, follower);
506 drm_panel_remove_follower_void, follower);