Home | History | Annotate | Download | only in pci

Lines Matching refs:vsc

207 	struct virtio_softc *vsc = device_private(parent);
210 if (virtio_child(vsc) != NULL) {
217 sc->sc_virtio = vsc;
227 virtio_child_attach_start(vsc, self, IPL_VM,
230 if (!virtio_version_1(vsc)) {
236 virtio_init_vq_vqdone(vsc, &sc->sc_vqs[VQCTRL], 0, viogpu_vq_done);
237 error = virtio_alloc_vq(vsc, &sc->sc_vqs[VQCTRL], NBPG, 1, "control");
243 virtio_init_vq_vqdone(vsc, &sc->sc_vqs[VQCURS], 1, viogpu_vq_done);
244 error = virtio_alloc_vq(vsc, &sc->sc_vqs[VQCURS], NBPG, 1, "cursor");
250 if (virtio_child_attach_finish(vsc, sc->sc_vqs,
261 virtio_free_vq(vsc, &sc->sc_vqs[VQCURS]);
263 virtio_free_vq(vsc, &sc->sc_vqs[VQCTRL]);
265 virtio_child_attach_failed(vsc);
275 struct virtio_softc *vsc = sc->sc_virtio;
283 error = bus_dmamap_create(virtio_dmat(vsc), VIOGPU_CMD_DMA_SIZE, 1,
291 error = bus_dmamem_alloc(virtio_dmat(vsc), VIOGPU_CMD_DMA_SIZE, 16, 0,
298 error = bus_dmamem_map(virtio_dmat(vsc), &sc->sc_dma_seg, nsegs,
306 error = bus_dmamap_load(virtio_dmat(vsc), sc->sc_dma_map, sc->sc_cmd,
319 error = bus_dmamap_create(virtio_dmat(vsc), sc->sc_fb_dma_size, 1,
327 error = bus_dmamem_alloc(virtio_dmat(vsc), sc->sc_fb_dma_size, 1024, 0,
334 error = bus_dmamem_map(virtio_dmat(vsc), &sc->sc_fb_dma_seg, nsegs,
342 error = bus_dmamap_load(virtio_dmat(vsc), sc->sc_fb_dma_map,
409 bus_dmamem_unmap(virtio_dmat(vsc), &sc->sc_fb_dma_kva,
412 bus_dmamem_free(virtio_dmat(vsc), &sc->sc_fb_dma_seg, 1);
414 bus_dmamap_destroy(virtio_dmat(vsc), sc->sc_fb_dma_map);
416 bus_dmamem_unmap(virtio_dmat(vsc), &sc->sc_cmd, VIOGPU_CMD_DMA_SIZE);
418 bus_dmamem_free(virtio_dmat(vsc), &sc->sc_dma_seg, 1);
420 bus_dmamap_destroy(virtio_dmat(vsc), sc->sc_dma_map);
423 virtio_free_vq(vsc, &sc->sc_vqs[VQCURS]);
424 virtio_free_vq(vsc, &sc->sc_vqs[VQCTRL]);
425 virtio_child_attach_failed(vsc);
482 struct virtio_softc *vsc = sc->sc_virtio;
499 hdr->flags |= virtio_rw32(vsc, VIRTIO_GPU_FLAG_FENCE);
500 hdr->fence_id = virtio_rw64(vsc, ++sc->sc_fence_id);
502 error = virtio_enqueue_prep(vsc, vq, &slot);
506 error = virtio_enqueue_reserve(vsc, vq, slot,
511 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, 0, cmd_size,
513 virtio_enqueue_p(vsc, vq, slot, sc->sc_dma_map, 0, cmd_size, true);
515 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, cmd_size, ret_size,
517 virtio_enqueue_p(vsc, vq, slot, sc->sc_dma_map, cmd_size, ret_size,
520 virtio_enqueue_commit(vsc, vq, slot, true);
532 struct virtio_softc *vsc = vq->vq_owner;
533 struct viogpu_softc *sc = device_private(virtio_child(vsc));
542 while (virtio_dequeue(vsc, vq, &slot, &len) != 0)
545 virtio_dequeue_commit(vsc, vq, slot);
547 bus_dmamap_sync(virtio_dmat(vsc
549 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, sc->cur_cmd_size,
555 cmd_type = virtio_rw32(vsc,
557 resp_type = virtio_rw32(vsc, resp->type);
558 resp_fence = virtio_rw64(vsc, resp->fence_id);
615 struct virtio_softc *vsc = sc->sc_virtio;
619 hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_GET_DISPLAY_INFO);
623 if (virtio_rw32(vsc, info.hdr.type) !=
634 sc->sc_fb_width = virtio_rw32(vsc, info.pmodes[0].r.width);
635 sc->sc_fb_height = virtio_rw32(vsc, info.pmodes[0].r.height);
644 struct virtio_softc *vsc = sc->sc_virtio;
648 res.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_RESOURCE_CREATE_2D);
649 res.resource_id = virtio_rw32(vsc, resource_id);
650 res.format = virtio_rw32(vsc, VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM);
651 res.width = virtio_rw32(vsc, width);
652 res.height = virtio_rw32(vsc, height);
656 if (virtio_rw32(vsc, resp.type) != VIRTIO_GPU_RESP_OK_NODATA) {
658 virtio_rw32(vsc, resp.type));
669 struct virtio_softc *vsc = sc->sc_virtio;
673 ss.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_SET_SCANOUT);
674 ss.scanout_id = virtio_rw32(vsc, scanout_id);
675 ss.resource_id = virtio_rw32(vsc, resource_id);
676 ss.r.width = virtio_rw32(vsc, width);
677 ss.r.height = virtio_rw32(vsc, height);
681 if (virtio_rw32(vsc, resp.type) != VIRTIO_GPU_RESP_OK_NODATA) {
683 virtio_rw32(vsc, resp.type));
694 struct virtio_softc *vsc = sc->sc_virtio;
698 backing.hdr.type = virtio_rw32(vsc,
700 backing.resource_id = virtio_rw32(vsc, resource_id);
701 backing.nr_entries = virtio_rw32(vsc, __arraycount(backing.entries));
702 backing.entries[0].addr = virtio_rw64(vsc, dmamap->dm_segs[0].ds_addr);
703 backing.entries[0].length = virtio_rw32(vsc,
717 if (virtio_rw32(vsc, resp.type) != VIRTIO_GPU_RESP_OK_NODATA) {
719 virtio_rw32(vsc, resp.type));
731 struct virtio_softc *vsc = sc->sc_virtio;
734 tth.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D);
735 tth.resource_id = virtio_rw32(vsc, resource_id);
736 tth.r.x = virtio_rw32(vsc, x);
737 tth.r.y = virtio_rw32(vsc, y);
738 tth.r.width = virtio_rw32(vsc, width);
739 tth.r.height = virtio_rw32(vsc, height);
740 tth.offset = virtio_rw64(vsc, (y * sc->sc_fb_width + x) *
753 struct virtio_softc *vsc = sc->sc_virtio;
756 flush.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_RESOURCE_FLUSH);
757 flush.resource_id = virtio_rw32(vsc, resource_id);
758 flush.r.x = virtio_rw32(vsc, x);
759 flush.r.y = virtio_rw32(vsc, y);
760 flush.r.width = virtio_rw32(vsc, width);
761 flush.r.height = virtio_rw32(vsc, height);