Lines Matching defs:gpu
16 * Simple virtio-mmio gpu driver, without hardware accelarator.
155 struct Virtgpu *gpu = dev;
159 gpu->edid = true;
171 HDF_LOGE("[%s]virtio-gpu has no VERSION_1 feature", __func__);
197 HDF_LOGE("[%s]virtio-gpu command=0x%x error=0x%x: %s", __func__, a->type, b->type, ErrString(b->type));
490 static void VirtgpuDeInit(struct Virtgpu *gpu)
492 if (gpu->timer.realTimer) {
493 OsalTimerDelete(&gpu->timer);
495 if (gpu->fb) {
496 LOS_PhysPagesFreeContiguous(gpu->fb, VirtgpuFbPageSize() / PAGE_SIZE);
498 LOS_DmaMemFree(gpu);
504 struct Virtgpu *gpu = NULL;
511 gpu = LOS_DmaMemAlloc(NULL, len, sizeof(void *), DMA_CACHE);
512 if (gpu == NULL) {
513 HDF_LOGE("[%s]alloc gpu memory failed", __func__);
517 if (!VirtmmioDiscover(VIRTMMIO_DEVICE_ID_GPU, &gpu->dev)) {
521 VirtmmioInitBegin(&gpu->dev);
523 if (!VirtmmioNegotiate(&gpu->dev, Feature0, Feature1, gpu)) {
527 base = ALIGN((VADDR_T)gpu + sizeof(struct Virtgpu), VIRTQ_ALIGN_DESC);
530 if (VirtmmioConfigQueue(&gpu->dev, base, qsz, VIRTQ_NUM) == 0) {
535 ret = OsalTimerCreate(&gpu->timer, GPU_DFT_RATE, NormOpsRefresh, 0);
542 gpu->dev.vq[i].avail->flag = VIRTQ_AVAIL_F_NO_INTERRUPT;
545 VritmmioInitEnd(&gpu->dev); /* now virt queue can be used */
546 return gpu;
549 VirtmmioInitFailed(&gpu->dev);
551 VirtgpuDeInit(gpu);