Home | History | Annotate | Download | only in pci

Lines Matching defs: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;
284 error = bus_dmamap_create(virtio_dmat(vsc), VIOGPU_CMD_DMA_SIZE, 1,
292 error = bus_dmamem_alloc(virtio_dmat(vsc), VIOGPU_CMD_DMA_SIZE, 16, 0,
299 error = bus_dmamem_map(virtio_dmat(vsc), &sc->sc_dma_seg, nsegs,
307 error = bus_dmamap_load(virtio_dmat(vsc), sc->sc_dma_map, sc->sc_cmd,
320 error = bus_dmamap_create(virtio_dmat(vsc), sc->sc_fb_dma_size, 1,
328 error = bus_dmamem_alloc(virtio_dmat(vsc), sc->sc_fb_dma_size, 1024, 0,
335 error = bus_dmamem_map(virtio_dmat(vsc), &sc->sc_fb_dma_seg, nsegs,
343 error = bus_dmamap_load(virtio_dmat(vsc), sc->sc_fb_dma_map,
412 bus_dmamem_unmap(virtio_dmat(vsc), &sc->sc_fb_dma_kva,
415 bus_dmamem_free(virtio_dmat(vsc), &sc->sc_fb_dma_seg, 1);
417 bus_dmamap_destroy(virtio_dmat(vsc), sc->sc_fb_dma_map);
419 bus_dmamem_unmap(virtio_dmat(vsc), &sc->sc_cmd, VIOGPU_CMD_DMA_SIZE);
421 bus_dmamem_free(virtio_dmat(vsc), &sc->sc_dma_seg, 1);
423 bus_dmamap_destroy(virtio_dmat(vsc), sc->sc_dma_map);
426 virtio_free_vq(vsc, &sc->sc_vqs[VQCURS]);
427 virtio_free_vq(vsc, &sc->sc_vqs[VQCTRL]);
428 virtio_child_attach_failed(vsc);
485 struct virtio_softc *vsc = sc->sc_virtio;
502 hdr->flags |= virtio_rw32(vsc, VIRTIO_GPU_FLAG_FENCE);
503 hdr->fence_id = virtio_rw64(vsc, ++sc->sc_fence_id);
505 error = virtio_enqueue_prep(vsc, vq, &slot);
509 error = virtio_enqueue_reserve(vsc, vq, slot,
514 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, 0, cmd_size,
516 virtio_enqueue_p(vsc, vq, slot, sc->sc_dma_map, 0, cmd_size, true);
518 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, cmd_size, ret_size,
520 virtio_enqueue_p(vsc, vq, slot, sc->sc_dma_map, cmd_size, ret_size,
523 virtio_enqueue_commit(vsc, vq, slot, true);
535 struct virtio_softc *vsc = vq->vq_owner;
536 struct viogpu_softc *sc = device_private(virtio_child(vsc));
545 while (virtio_dequeue(vsc, vq, &slot, &len) != 0)
548 vsc, vq, slot);
550 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, 0, sc->cur_cmd_size,
552 bus_dmamap_sync(virtio_dmat(vsc), sc->sc_dma_map, sc->cur_cmd_size,
558 cmd_type = virtio_rw32(vsc,
560 resp_type = virtio_rw32(vsc, resp->type);
561 resp_fence = virtio_rw64(vsc, resp->fence_id);
618 struct virtio_softc *vsc = sc->sc_virtio;
622 hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_GET_DISPLAY_INFO);
626 if (virtio_rw32(vsc, info.hdr.type) !=
637 sc->sc_fb_width = virtio_rw32(vsc, info.pmodes[0].r.width);
638 sc->sc_fb_height = virtio_rw32(vsc, info.pmodes[0].r.height);
647 struct virtio_softc *vsc = sc->sc_virtio;
651 res.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_RESOURCE_CREATE_2D);
652 res.resource_id = virtio_rw32(vsc, resource_id);
653 res.format = virtio_rw32(vsc, VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM);
654 res.width = virtio_rw32(vsc, width);
655 res.height = virtio_rw32(vsc, height);
659 if (virtio_rw32(vsc, resp.type) != VIRTIO_GPU_RESP_OK_NODATA) {
661 virtio_rw32(vsc, resp.type));
672 struct virtio_softc *vsc = sc->sc_virtio;
676 ss.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_SET_SCANOUT);
677 ss.scanout_id = virtio_rw32(vsc, scanout_id);
678 ss.resource_id = virtio_rw32(vsc, resource_id);
679 ss.r.width = virtio_rw32(vsc, width);
680 ss.r.height = virtio_rw32(vsc, height);
684 if (virtio_rw32(vsc, resp.type) != VIRTIO_GPU_RESP_OK_NODATA) {
686 virtio_rw32(vsc, resp.type));
697 struct virtio_softc *vsc = sc->sc_virtio;
701 backing.hdr.type = virtio_rw32(vsc,
703 backing.resource_id = virtio_rw32(vsc, resource_id);
704 backing.nr_entries = virtio_rw32(vsc, __arraycount(backing.entries));
705 backing.entries[0].addr = virtio_rw64(vsc, dmamap->dm_segs[0].ds_addr);
706 backing.entries[0].length = virtio_rw32(vsc,
720 if (virtio_rw32(vsc, resp.type) != VIRTIO_GPU_RESP_OK_NODATA) {
722 virtio_rw32(vsc, resp.type));
734 struct virtio_softc *vsc = sc->sc_virtio;
737 tth.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D);
738 tth.resource_id = virtio_rw32(vsc, resource_id);
739 tth.r.x = virtio_rw32(vsc, x);
740 tth.r.y = virtio_rw32(vsc, y);
741 tth.r.width = virtio_rw32(vsc, width);
742 tth.r.height = virtio_rw32(vsc, height);
743 tth.offset = virtio_rw64(vsc, (y * sc->sc_fb_width + x) *
756 struct virtio_softc *vsc = sc->sc_virtio;
759 flush.hdr.type = virtio_rw32(vsc, VIRTIO_GPU_CMD_RESOURCE_FLUSH);
760 flush.resource_id = virtio_rw32(vsc, resource_id);
761 flush.r.x = virtio_rw32(vsc, x);
762 flush.r.y = virtio_rw32(vsc, y);
763 flush.r.width = virtio_rw32(vsc, width);
764 flush.r.height = virtio_rw32(vsc, height);