Lines Matching defs:lcdc

20 #include <mach/lcdc.h>
27 #include "lcdc.h"
29 #define MODULE_NAME "lcdc"
67 } lcdc;
71 lcdc.irq_mask |= mask;
76 lcdc.irq_mask &= ~mask;
107 l |= lcdc.irq_mask | OMAP_LCDC_IRQ_DONE; /* enabled IRQs */
129 init_completion(&lcdc.last_frame_complete);
131 if (!wait_for_completion_timeout(&lcdc.last_frame_complete,
133 dev_err(lcdc.fbdev->dev, "timeout waiting for FRAME DONE\n");
144 dev_err(lcdc.fbdev->dev,
153 dev_err(lcdc.fbdev->dev,
160 * in lcdc.fbdev and fbdev->var.
171 struct omapfb_plane_struct *plane = lcdc.fbdev->fb_info[0]->par;
172 struct fb_var_screeninfo *var = &lcdc.fbdev->fb_info[0]->var;
176 src = lcdc.vram_phys + lcdc.frame_offset;
181 lcdc.color_mode == OMAPFB_COLOR_YUV420 ||
182 (lcdc.xres & 1))
186 xelem = lcdc.xres * lcdc.bpp / 8 / esize;
187 yelem = lcdc.yres;
196 xelem = lcdc.yres * lcdc.bpp / 16;
197 yelem = lcdc.xres;
204 dev_dbg(lcdc.fbdev->dev,
210 int bpp = lcdc.bpp;
216 if (lcdc.color_mode == OMAPFB_COLOR_YUV420)
220 lcdc.screen_width * bpp / 8 / esize);
248 complete(&lcdc.last_frame_complete);
252 complete(&lcdc.palette_load_complete);
283 struct fb_var_screeninfo *var = &lcdc.fbdev->fb_info[0]->var;
284 struct lcd_panel *panel = lcdc.fbdev->panel;
297 dev_dbg(lcdc.fbdev->dev,
304 lcdc.frame_offset = offset;
305 lcdc.xres = width;
306 lcdc.yres = height;
307 lcdc.screen_width = screen_width;
308 lcdc.color_mode = color_mode;
312 lcdc.bpp = 8;
313 lcdc.palette_code = 0x3000;
314 lcdc.palette_size = 512;
317 lcdc.bpp = 16;
318 lcdc.palette_code = 0x4000;
319 lcdc.palette_size = 32;
322 lcdc.bpp = 16;
323 lcdc.palette_code = 0x4000;
324 lcdc.palette_size = 32;
327 if (lcdc.ext_mode) {
328 lcdc.bpp = 12;
333 if (lcdc.ext_mode) {
334 lcdc.bpp = 16;
345 dev_dbg(lcdc.fbdev->dev, "invalid color mode %d\n", color_mode);
350 if (lcdc.ext_mode) {
355 if (lcdc.update_mode == OMAPFB_AUTO_UPDATE) {
367 dev_dbg(lcdc.fbdev->dev,
369 plane, enable, lcdc.update_mode, lcdc.ext_mode);
385 palette = (u16 *)lcdc.palette_virt;
388 *(u16 *)palette |= lcdc.palette_code;
390 omap_set_lcd_dma_b1(lcdc.palette_phys,
391 lcdc.palette_size / 4 + 1, 1, OMAP_DMA_DATA_TYPE_S32);
396 init_completion(&lcdc.palette_load_complete);
400 if (!wait_for_completion_timeout(&lcdc.palette_load_complete,
402 dev_err(lcdc.fbdev->dev, "timeout waiting for FRAME DONE\n");
407 omap_set_lcd_dma_single_transfer(lcdc.ext_mode);
416 if (lcdc.color_mode != OMAPFB_COLOR_CLUT_8BPP || regno > 255)
419 palette = (u16 *)lcdc.palette_virt;
442 lck = clk_get_rate(lcdc.lcd_ck);
451 dev_warn(lcdc.fbdev->dev, "pixclock %d kHz too low.\n",
459 struct lcd_panel *panel = lcdc.fbdev->panel;
495 lck = clk_get_rate(lcdc.lcd_ck);
500 dev_warn(lcdc.fbdev->dev,
525 if (mode != lcdc.update_mode) {
538 lcdc.update_mode = mode;
543 lcdc.update_mode = mode;
555 return lcdc.update_mode;
578 if (lcdc.dma_callback)
581 lcdc.dma_callback = callback;
582 lcdc.dma_callback_data = data;
590 lcdc.dma_callback = NULL;
596 if (lcdc.dma_callback)
597 lcdc.dma_callback(lcdc.dma_callback_data);
602 lcdc.palette_virt = dma_alloc_wc(lcdc.fbdev->dev, MAX_PALETTE_SIZE,
603 &lcdc.palette_phys, GFP_KERNEL);
604 if (lcdc.palette_virt == NULL) {
605 dev_err(lcdc.fbdev->dev, "failed to alloc palette memory\n");
608 memset(lcdc.palette_virt, 0, MAX_PALETTE_SIZE);
615 dma_free_wc(lcdc.fbdev->dev, MAX_PALETTE_SIZE, lcdc.palette_virt,
616 lcdc.palette_phys);
623 struct lcd_panel *panel = lcdc.fbdev->panel;
631 lcdc.vram_size = frame_size;
632 lcdc.vram_virt = dma_alloc_wc(lcdc.fbdev->dev, lcdc.vram_size,
633 &lcdc.vram_phys, GFP_KERNEL);
634 if (lcdc.vram_virt == NULL) {
635 dev_err(lcdc.fbdev->dev, "unable to allocate FB DMA memory\n");
639 region->paddr = lcdc.vram_phys;
640 region->vaddr = lcdc.vram_virt;
643 memset(lcdc.vram_virt, 0, lcdc.vram_size);
650 dma_free_wc(lcdc.fbdev->dev, lcdc.vram_size, lcdc.vram_virt,
651 lcdc.vram_phys);
657 dev_err(lcdc.fbdev->dev, "no memory regions defined\n");
662 dev_err(lcdc.fbdev->dev, "only one plane is supported\n");
677 lcdc.irq_mask = 0;
679 lcdc.fbdev = fbdev;
680 lcdc.ext_mode = ext_mode;
688 lcdc.lcd_ck = clk_get(fbdev->dev, "lcd_ck");
689 if (IS_ERR(lcdc.lcd_ck)) {
691 r = PTR_ERR(lcdc.lcd_ck);
709 r = clk_set_rate(lcdc.lcd_ck, rate);
714 clk_enable(lcdc.lcd_ck);
747 free_irq(OMAP_LCDC_IRQ, lcdc.fbdev);
749 clk_disable(lcdc.lcd_ck);
751 clk_put(lcdc.lcd_ck);
758 if (!lcdc.ext_mode)
762 free_irq(OMAP_LCDC_IRQ, lcdc.fbdev);
763 clk_disable(lcdc.lcd_ck);
764 clk_put(lcdc.lcd_ck);