Lines Matching refs:vop_win
65 #define to_vop_win(x) container_of(x, struct vop_win, base)
74 struct vop_win { struct
124 struct vop_win win[];
754 static struct drm_framebuffer *vop_win_last_pending_fb(struct vop_win *vop_win) in vop_win_last_pending_fb() argument
757 struct vop_win_state *active = vop_win->active; in vop_win_last_pending_fb()
759 if (list_empty(&vop_win->pending)) in vop_win_last_pending_fb()
762 last = list_last_entry(&vop_win->pending, struct vop_win_state, head); in vop_win_last_pending_fb()
769 static int vop_win_queue_fb(struct vop_win *vop_win, in vop_win_queue_fb() argument
783 list_add_tail(&state->head, &vop_win->pending); in vop_win_queue_fb()
797 struct vop_win *vop_win = to_vop_win(plane); in vop_update_plane_event() local
798 const struct vop_win_data *win = vop_win->data; in vop_update_plane_event()
920 if (fb != vop_win_last_pending_fb(vop_win)) { in vop_update_plane_event()
930 ret = vop_win_queue_fb(vop_win, fb, yrgb_mst, event); in vop_update_plane_event()
1016 struct vop_win *vop_win = to_vop_win(plane); in vop_disable_plane() local
1017 const struct vop_win_data *win = vop_win->data; in vop_disable_plane()
1034 ret = vop_win_queue_fb(vop_win, NULL, 0, NULL); in vop_disable_plane()
1283 static void vop_win_state_complete(struct vop_win *vop_win, in vop_win_state_complete() argument
1286 struct vop *vop = vop_win->vop; in vop_win_state_complete()
1312 static bool vop_win_state_is_active(struct vop_win *vop_win, in vop_win_state_is_active() argument
1321 yrgb_mst = VOP_WIN_GET_YRGBADDR(vop_win->vop, vop_win->data); in vop_win_state_is_active()
1328 enabled = VOP_WIN_GET(vop_win->vop, vop_win->data, enable); in vop_win_state_is_active()
1346 static void vop_win_update_state(struct vop_win *vop_win) in vop_win_update_state() argument
1351 list_for_each_entry(state, &vop_win->pending, head) in vop_win_update_state()
1352 if (vop_win_state_is_active(vop_win, state)) { in vop_win_update_state()
1364 list_for_each_entry_safe(state, n, &vop_win->pending, head) { in vop_win_update_state()
1367 vop_win_state_complete(vop_win, state); in vop_win_update_state()
1371 vop_win_state_complete(vop_win, new_active); in vop_win_update_state()
1373 if (vop_win->active) in vop_win_update_state()
1374 vop_win_state_destroy(vop_win->active); in vop_win_update_state()
1375 vop_win->active = new_active; in vop_win_update_state()
1378 static bool vop_win_has_pending_state(struct vop_win *vop_win) in vop_win_has_pending_state() argument
1380 return !list_empty(&vop_win->pending); in vop_win_has_pending_state()
1397 struct vop_win *vop_win = &vop->win[i]; in vop_isr_thread() local
1399 vop_win_update_state(vop_win); in vop_isr_thread()
1400 if (vop_win_has_pending_state(vop_win)) in vop_isr_thread()
1470 struct vop_win *vop_win = &vop->win[i]; in vop_create_crtc() local
1471 const struct vop_win_data *win_data = vop_win->data; in vop_create_crtc()
1477 ret = drm_universal_plane_init(vop->drm_dev, &vop_win->base, in vop_create_crtc()
1487 plane = &vop_win->base; in vop_create_crtc()
1506 struct vop_win *vop_win = &vop->win[i]; in vop_create_crtc() local
1507 const struct vop_win_data *win_data = vop_win->data; in vop_create_crtc()
1513 ret = drm_universal_plane_init(vop->drm_dev, &vop_win->base, in vop_create_crtc()
1662 struct vop_win *vop_win = &vop->win[i]; in vop_win_init() local
1665 vop_win->data = win_data; in vop_win_init()
1666 vop_win->vop = vop; in vop_win_init()
1667 INIT_LIST_HEAD(&vop_win->pending); in vop_win_init()