Lines Matching refs:vrfb
31 #include <plat/vrfb.h>
158 void omap_vrfb_setup(struct vrfb *vrfb, unsigned long paddr,
165 u8 ctx = vrfb->context;
189 DBG("vrfb w %u, h %u bytespp %d\n", vrfb_width, vrfb_height, bytespp);
206 DBG("vrfb offset pixels %d, %d\n",
209 vrfb->xres = width;
210 vrfb->yres = height;
211 vrfb->xoffset = vrfb_width - width;
212 vrfb->yoffset = vrfb_height - height;
213 vrfb->bytespp = bytespp;
214 vrfb->yuv_mode = yuv_mode;
218 int omap_vrfb_map_angle(struct vrfb *vrfb, u16 height, u8 rot)
220 unsigned long size = height * OMAP_VRFB_LINE_LEN * vrfb->bytespp;
222 vrfb->vaddr[rot] = ioremap_wc(vrfb->paddr[rot], size);
224 if (!vrfb->vaddr[rot]) {
225 printk(KERN_ERR "vrfb: ioremap failed\n");
229 DBG("ioremapped vrfb area %d of size %lu into %p\n", rot, size,
230 vrfb->vaddr[rot]);
236 void omap_vrfb_release_ctx(struct vrfb *vrfb)
239 int ctx = vrfb->context;
253 if (vrfb->paddr[rot]) {
254 release_mem_region(vrfb->paddr[rot], OMAP_VRFB_SIZE);
255 vrfb->paddr[rot] = 0;
259 vrfb->context = 0xff;
265 int omap_vrfb_request_ctx(struct vrfb *vrfb)
281 pr_err("vrfb: no free contexts\n");
290 memset(vrfb, 0, sizeof(*vrfb));
292 vrfb->context = ctx;
296 if (!request_mem_region(paddr, OMAP_VRFB_SIZE, "vrfb")) {
297 pr_err("vrfb: failed to reserve VRFB "
300 omap_vrfb_release_ctx(vrfb);
305 vrfb->paddr[rot] = paddr;
307 DBG("VRFB %d/%d: %lx\n", ctx, rot*90, vrfb->paddr[rot]);