Lines Matching defs:vrfb
169 void omap_vrfb_setup(struct vrfb *vrfb, unsigned long paddr,
176 u8 ctx = vrfb->context;
202 DBG("vrfb w %u, h %u bytespp %d\n", vrfb_width, vrfb_height, bytespp);
219 DBG("vrfb offset pixels %d, %d\n",
222 vrfb->xres = width;
223 vrfb->yres = height;
224 vrfb->xoffset = vrfb_width - width;
225 vrfb->yoffset = vrfb_height - height;
226 vrfb->bytespp = bytespp;
227 vrfb->yuv_mode = yuv_mode;
231 int omap_vrfb_map_angle(struct vrfb *vrfb, u16 height, u8 rot)
233 unsigned long size = height * OMAP_VRFB_LINE_LEN * vrfb->bytespp;
235 vrfb->vaddr[rot] = ioremap_wc(vrfb->paddr[rot], size);
237 if (!vrfb->vaddr[rot]) {
238 printk(KERN_ERR "vrfb: ioremap failed\n");
242 DBG("ioremapped vrfb area %d of size %lu into %p\n", rot, size,
243 vrfb->vaddr[rot]);
249 void omap_vrfb_release_ctx(struct vrfb *vrfb)
252 int ctx = vrfb->context;
266 if (vrfb->paddr[rot]) {
267 release_mem_region(vrfb->paddr[rot], OMAP_VRFB_SIZE);
268 vrfb->paddr[rot] = 0;
272 vrfb->context = 0xff;
278 int omap_vrfb_request_ctx(struct vrfb *vrfb)
294 pr_err("vrfb: no free contexts\n");
303 memset(vrfb, 0, sizeof(*vrfb));
305 vrfb->context = ctx;
309 if (!request_mem_region(paddr, OMAP_VRFB_SIZE, "vrfb")) {
310 pr_err("vrfb: failed to reserve VRFB "
313 omap_vrfb_release_ctx(vrfb);
318 vrfb->paddr[rot] = paddr;
320 DBG("VRFB %d/%d: %lx\n", ctx, rot*90, vrfb->paddr[rot]);
341 /* first resource is the register res, the rest are vrfb contexts */
358 dev_err(&pdev->dev, "can't get vrfb ctx %d address\n",