Lines Matching defs:gpu
16 * Simple virtio-mmio gpu driver, without hardware accelarator.
156 struct Virtgpu *gpu = dev;
160 gpu->edid = true;
172 HDF_LOGE("[%s]virtio-gpu has no VERSION_1 feature", __func__);
198 HDF_LOGE("[%s]virtio-gpu command=0x%x error=0x%x: %s", __func__, a->type, b->type, ErrString(b->type));
494 static void VirtgpuDeInit(struct Virtgpu *gpu)
496 if (gpu->timer.realTimer) {
497 OsalTimerDelete(&gpu->timer);
499 if (gpu->fb) {
500 LOS_MemFree(OS_SYS_MEM_ADDR, gpu->fb);
502 LOS_MemFree(OS_SYS_MEM_ADDR, gpu);
508 struct Virtgpu *gpu = NULL;
515 gpu = LOS_MemAlloc(OS_SYS_MEM_ADDR, len * sizeof(void *));
516 if (gpu != NULL) {
517 (void)memset_s(gpu, len * sizeof(void *), 0, len * sizeof(void *));
519 HDF_LOGE("[%s]alloc gpu memory failed\n", __func__);
523 if (!VirtmmioDiscover(VIRTMMIO_DEVICE_ID_GPU, &gpu->dev)) {
528 VirtmmioInitBegin(&gpu->dev);
530 if (!VirtmmioNegotiate(&gpu->dev, Feature0, Feature1, gpu)) {
535 base = ALIGN((VADDR_T)gpu + sizeof(struct Virtgpu), VIRTQ_ALIGN_DESC);
538 if (VirtmmioConfigQueue(&gpu->dev, base, qsz, VIRTQ_NUM) == 0) {
544 ret = OsalTimerCreate(&gpu->timer, GPU_DFT_RATE, NormOpsRefresh, 0);
551 gpu->dev.vq[i].avail->flag = VIRTQ_AVAIL_F_NO_INTERRUPT;
554 VritmmioInitEnd(&gpu->dev); /* now virt queue can be used */
555 return gpu;
558 VirtmmioInitFailed(&gpu->dev);
560 VirtgpuDeInit(gpu);