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)
33 struct pci_dev *pdev = to_pci_dev(vbox->ddev.dev);
37 vbox->vbva_info = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
38 sizeof(*vbox->vbva_info), GFP_KERNEL);
39 if (!vbox->vbva_info)
43 vbox->available_vram_size -= vbox->num_crtcs * VBVA_MIN_BUFFER_SIZE;
45 vbox->vbva_buffers = pci_iomap_range(pdev, 0,
46 vbox->available_vram_size,
47 vbox->num_crtcs *
49 if (!vbox->vbva_buffers)
52 for (i = 0; i < vbox->num_crtcs; ++i) {
53 vbva_setup_buffer_context(&vbox->vbva_info[i],
54 vbox->available_vram_size +
57 vbva = (void __force *)vbox->vbva_buffers +
59 if (!vbva_enable(&vbox->vbva_info[i],
60 vbox->guest_pool, vbva, i)) {
69 static void vbox_accel_fini(struct vbox_private *vbox)
73 for (i = 0; i < vbox->num_crtcs; ++i)
74 vbva_disable(&vbox->vbva_info[i], vbox->guest_pool, i);
78 static bool have_hgsmi_mode_hints(struct vbox_private *vbox)
83 ret = hgsmi_query_conf(vbox->guest_pool,
89 ret = hgsmi_query_conf(vbox->guest_pool,
108 int vbox_hw_init(struct vbox_private *vbox)
110 struct pci_dev *pdev = to_pci_dev(vbox->ddev.dev);
113 vbox->full_vram_size = inl(VBE_DISPI_IOPORT_DATA);
114 vbox->any_pitch = vbox_check_supported(VBE_DISPI_ID_ANYX);
116 DRM_INFO("VRAM %08x\n", vbox->full_vram_size);
119 vbox->guest_heap =
120 pci_iomap_range(pdev, 0, GUEST_HEAP_OFFSET(vbox),
122 if (!vbox->guest_heap)
126 vbox->guest_pool = devm_gen_pool_create(vbox->ddev.dev, 4, -1,
128 if (IS_ERR(vbox->guest_pool))
129 return PTR_ERR(vbox->guest_pool);
131 ret = gen_pool_add_virt(vbox->guest_pool,
132 (unsigned long)vbox->guest_heap,
133 GUEST_HEAP_OFFSET(vbox),
138 ret = hgsmi_test_query_conf(vbox->guest_pool);
145 vbox->available_vram_size = GUEST_HEAP_OFFSET(vbox);
147 hgsmi_query_conf(vbox->guest_pool, VBOX_VBVA_CONF32_MONITOR_COUNT,
148 &vbox->num_crtcs);
149 vbox->num_crtcs = clamp_t(u32, vbox->num_crtcs, 1, VBOX_MAX_SCREENS);
151 if (!have_hgsmi_mode_hints(vbox)) {
156 vbox->last_mode_hints = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
159 if (!vbox->last_mode_hints)
162 ret = vbox_accel_init(vbox);
169 void vbox_hw_fini(struct vbox_private *vbox)
171 vbox_accel_fini(vbox);