Lines Matching defs:vbox

20 void vbox_report_caps(struct vbox_private *vbox)
26 hgsmi_send_caps_info(vbox->guest_pool, caps);
28 hgsmi_send_caps_info(vbox->guest_pool, caps);
31 static int vbox_accel_init(struct vbox_private *vbox)
36 vbox->vbva_info = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
37 sizeof(*vbox->vbva_info), GFP_KERNEL);
38 if (!vbox->vbva_info)
42 vbox->available_vram_size -= vbox->num_crtcs * VBVA_MIN_BUFFER_SIZE;
44 vbox->vbva_buffers = pci_iomap_range(vbox->ddev.pdev, 0,
45 vbox->available_vram_size,
46 vbox->num_crtcs *
48 if (!vbox->vbva_buffers)
51 for (i = 0; i < vbox->num_crtcs; ++i) {
52 vbva_setup_buffer_context(&vbox->vbva_info[i],
53 vbox->available_vram_size +
56 vbva = (void __force *)vbox->vbva_buffers +
58 if (!vbva_enable(&vbox->vbva_info[i],
59 vbox->guest_pool, vbva, i)) {
68 static void vbox_accel_fini(struct vbox_private *vbox)
72 for (i = 0; i < vbox->num_crtcs; ++i)
73 vbva_disable(&vbox->vbva_info[i], vbox->guest_pool, i);
77 static bool have_hgsmi_mode_hints(struct vbox_private *vbox)
82 ret = hgsmi_query_conf(vbox->guest_pool,
88 ret = hgsmi_query_conf(vbox->guest_pool,
107 int vbox_hw_init(struct vbox_private *vbox)
111 vbox->full_vram_size = inl(VBE_DISPI_IOPORT_DATA);
112 vbox->any_pitch = vbox_check_supported(VBE_DISPI_ID_ANYX);
114 DRM_INFO("VRAM %08x\n", vbox->full_vram_size);
117 vbox->guest_heap =
118 pci_iomap_range(vbox->ddev.pdev, 0, GUEST_HEAP_OFFSET(vbox),
120 if (!vbox->guest_heap)
124 vbox->guest_pool = devm_gen_pool_create(vbox->ddev.dev, 4, -1,
126 if (IS_ERR(vbox->guest_pool))
127 return PTR_ERR(vbox->guest_pool);
129 ret = gen_pool_add_virt(vbox->guest_pool,
130 (unsigned long)vbox->guest_heap,
131 GUEST_HEAP_OFFSET(vbox),
136 ret = hgsmi_test_query_conf(vbox->guest_pool);
143 vbox->available_vram_size = GUEST_HEAP_OFFSET(vbox);
145 hgsmi_query_conf(vbox->guest_pool, VBOX_VBVA_CONF32_MONITOR_COUNT,
146 &vbox->num_crtcs);
147 vbox->num_crtcs = clamp_t(u32, vbox->num_crtcs, 1, VBOX_MAX_SCREENS);
149 if (!have_hgsmi_mode_hints(vbox)) {
154 vbox->last_mode_hints = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
157 if (!vbox->last_mode_hints)
160 ret = vbox_accel_init(vbox);
167 void vbox_hw_fini(struct vbox_private *vbox)
169 vbox_accel_fini(vbox);