Home | History | Annotate | Download | only in imx

Lines Matching defs:scr

637 	struct imx51_ipuv3_screen *scr;
638 error = imx51_ipuv3_new_screen(sc, &scr);
644 sc->active = scr;
646 imx51_ipuv3_start_dma(sc, scr);
650 .ifb_dmamap = scr->dma,
651 .ifb_dmasegs = scr->segs,
652 .ifb_ndmasegs = scr->nsegs,
653 .ifb_fb = scr->buf_va,
656 .ifb_depth = scr->depth,
657 .ifb_stride = geom->panel_width * (scr->depth / 8),
730 struct imx51_ipuv3_screen *scr,
742 scr->segs[0].ds_addr >> 3);
744 scr->segs[0].ds_addr >> 3);
746 (scr->stride - 1));
751 switch (scr->depth) {
795 panic("%s: unsupported depth %d\n", __func__, scr->depth);
827 struct imx51_ipuv3_screen *scr)
833 DPRINTFN(3, ("%s: Pixel depth = %d\n", __func__, scr->depth));
840 imx51_ipuv3_build_param(sc, scr, params);
876 struct imx51_ipuv3_screen *scr)
880 error = bus_dmamem_alloc(sc->dma_tag, scr->buf_size, PAGE_SIZE, 0,
881 scr->segs, 1, &scr->nsegs, BUS_DMA_WAITOK);
884 error = bus_dmamem_map(sc->dma_tag, scr->segs, scr->nsegs, scr->buf_size,
885 (void **)&scr->buf_va, BUS_DMA_WAITOK | BUS_DMA_COHERENT);
889 error = bus_dmamap_create(sc->dma_tag, scr->buf_size, 1, scr->buf_size, 0,
890 BUS_DMA_WAITOK, &scr->dma);
893 error = bus_dmamap_load(sc->dma_tag, scr->dma, scr->buf_va, scr->buf_size,
898 memset(scr->buf_va, 0, scr->buf_size);
903 bus_dmamap_destroy(sc->dma_tag, scr->dma);
905 bus_dmamem_unmap(sc->dma_tag, scr->buf_va, scr->buf_size);
907 bus_dmamem_free(sc->dma_tag, scr->segs, scr->nsegs);
909 scr->buf_size = 0;
910 scr->buf_va = NULL;
923 struct imx51_ipuv3_screen *scr = NULL;
935 scr = kmem_zalloc(sizeof(*scr), KM_SLEEP);
936 scr->nsegs = 0;
937 scr->depth = depth;
938 scr->stride = width * depth / 8;
939 scr->buf_size = scr->stride * height;
940 scr->buf_va = NULL;
942 error = imx51_ipuv3_allocmem(sc, scr);
946 scr->stride * height, error);
947 kmem_free(scr, sizeof(*scr));
951 LIST_INSERT_HEAD(&sc->screens, scr, link);
958 printf("%s: screen buffer stride %d\n", __func__, scr->stride);
960 (uint32_t)scr->buf_size);
961 printf("%s: screen buffer addr virtual %p\n", __func__, scr->buf_va);
963 (void *)scr->segs[0].ds_addr);
966 scr->map_size = scr->buf_size; /* used when unmap this. */
968 *scrpp = scr;