Lines Matching refs:vbox
39 struct vbox_private *vbox; in vbox_do_modeset() local
44 vbox = to_vbox_dev(crtc->dev); in vbox_do_modeset()
49 x_offset = vbox->single_framebuffer ? vbox_crtc->x : vbox_crtc->x_hint; in vbox_do_modeset()
50 y_offset = vbox->single_framebuffer ? vbox_crtc->y : vbox_crtc->y_hint; in vbox_do_modeset()
75 hgsmi_process_display_info(vbox->guest_pool, vbox_crtc->crtc_id, in vbox_do_modeset()
85 struct vbox_private *vbox = to_vbox_dev(crtc->dev); in vbox_set_view() local
99 p = hgsmi_buffer_alloc(vbox->guest_pool, sizeof(*p), in vbox_set_view()
106 p->view_size = vbox->available_vram_size - vbox_crtc->fb_offset + in vbox_set_view()
108 p->max_screen_size = vbox->available_vram_size - vbox_crtc->fb_offset; in vbox_set_view()
110 hgsmi_buffer_submit(vbox->guest_pool, p); in vbox_set_view()
111 hgsmi_buffer_free(vbox->guest_pool, p); in vbox_set_view()
121 static bool vbox_set_up_input_mapping(struct vbox_private *vbox) in vbox_set_up_input_mapping() argument
127 bool old_single_framebuffer = vbox->single_framebuffer; in vbox_set_up_input_mapping()
135 list_for_each_entry(crtci, &vbox->ddev.mode_config.crtc_list, head) { in vbox_set_up_input_mapping()
142 if (fb1 == vbox->ddev.fb_helper->fb) in vbox_set_up_input_mapping()
152 vbox->single_framebuffer = true; in vbox_set_up_input_mapping()
153 vbox->input_mapping_width = fb1->width; in vbox_set_up_input_mapping()
154 vbox->input_mapping_height = fb1->height; in vbox_set_up_input_mapping()
155 return old_single_framebuffer != vbox->single_framebuffer; in vbox_set_up_input_mapping()
158 list_for_each_entry(connectori, &vbox->ddev.mode_config.connector_list, in vbox_set_up_input_mapping()
170 vbox->single_framebuffer = false; in vbox_set_up_input_mapping()
171 vbox->input_mapping_width = width; in vbox_set_up_input_mapping()
172 vbox->input_mapping_height = height; in vbox_set_up_input_mapping()
174 return old_single_framebuffer != vbox->single_framebuffer; in vbox_set_up_input_mapping()
182 struct vbox_private *vbox = to_vbox_dev(crtc->dev); in vbox_crtc_set_base_and_mode() local
186 mutex_lock(&vbox->hw_mutex); in vbox_crtc_set_base_and_mode()
198 if (needs_modeset && vbox_set_up_input_mapping(vbox)) { in vbox_crtc_set_base_and_mode()
201 list_for_each_entry(crtci, &vbox->ddev.mode_config.crtc_list, in vbox_crtc_set_base_and_mode()
213 hgsmi_update_input_mapping(vbox->guest_pool, 0, 0, in vbox_crtc_set_base_and_mode()
214 vbox->input_mapping_width, in vbox_crtc_set_base_and_mode()
215 vbox->input_mapping_height); in vbox_crtc_set_base_and_mode()
217 mutex_unlock(&vbox->hw_mutex); in vbox_crtc_set_base_and_mode()
284 struct vbox_private *vbox = to_vbox_dev(fb->dev); in vbox_primary_atomic_update() local
300 mutex_lock(&vbox->hw_mutex); in vbox_primary_atomic_update()
311 if (!vbva_buffer_begin_update(&vbox->vbva_info[crtc_id], in vbox_primary_atomic_update()
312 vbox->guest_pool)) in vbox_primary_atomic_update()
315 vbva_write(&vbox->vbva_info[crtc_id], vbox->guest_pool, in vbox_primary_atomic_update()
317 vbva_buffer_end_update(&vbox->vbva_info[crtc_id]); in vbox_primary_atomic_update()
320 mutex_unlock(&vbox->hw_mutex); in vbox_primary_atomic_update()
395 struct vbox_private *vbox = in vbox_cursor_atomic_update() local
415 mutex_lock(&vbox->hw_mutex); in vbox_cursor_atomic_update()
427 copy_cursor_image(src, vbox->cursor_data, width, height, mask_size); in vbox_cursor_atomic_update()
431 hgsmi_update_pointer_shape(vbox->guest_pool, flags, in vbox_cursor_atomic_update()
434 width, height, vbox->cursor_data, data_size); in vbox_cursor_atomic_update()
436 mutex_unlock(&vbox->hw_mutex); in vbox_cursor_atomic_update()
444 struct vbox_private *vbox = in vbox_cursor_atomic_disable() local
450 mutex_lock(&vbox->hw_mutex); in vbox_cursor_atomic_disable()
454 list_for_each_entry(crtci, &vbox->ddev.mode_config.crtc_list, head) { in vbox_cursor_atomic_disable()
460 hgsmi_update_pointer_shape(vbox->guest_pool, 0, 0, 0, in vbox_cursor_atomic_disable()
463 mutex_unlock(&vbox->hw_mutex); in vbox_cursor_atomic_disable()
505 static struct drm_plane *vbox_create_plane(struct vbox_private *vbox, in vbox_create_plane() argument
534 err = drm_universal_plane_init(&vbox->ddev, plane, possible_crtcs, in vbox_create_plane()
551 struct vbox_private *vbox = in vbox_crtc_init() local
559 ret = hgsmi_query_conf(vbox->guest_pool, in vbox_crtc_init()
568 primary = vbox_create_plane(vbox, 1 << i, DRM_PLANE_TYPE_PRIMARY); in vbox_crtc_init()
575 cursor = vbox_create_plane(vbox, 1 << i, DRM_PLANE_TYPE_CURSOR); in vbox_crtc_init()
710 struct vbox_private *vbox = NULL; in vbox_get_modes() local
715 vbox = to_vbox_dev(connector->dev); in vbox_get_modes()
717 hgsmi_report_flags_location(vbox->guest_pool, GUEST_HEAP_OFFSET(vbox) + in vbox_get_modes()
720 vbox_report_caps(vbox); in vbox_get_modes()
738 vbox->ddev.mode_config.suggested_x_property, in vbox_get_modes()
742 vbox->ddev.mode_config.suggested_x_property, 0); in vbox_get_modes()
746 vbox->ddev.mode_config.suggested_y_property, in vbox_get_modes()
750 vbox->ddev.mode_config.suggested_y_property, 0); in vbox_get_modes()
842 int vbox_mode_init(struct vbox_private *vbox) in vbox_mode_init() argument
844 struct drm_device *dev = &vbox->ddev; in vbox_mode_init()
859 for (i = 0; i < vbox->num_crtcs; ++i) { in vbox_mode_init()
883 void vbox_mode_fini(struct vbox_private *vbox) in vbox_mode_fini() argument
885 drm_mode_config_cleanup(&vbox->ddev); in vbox_mode_fini()