Lines Matching defs:lcdc

28 #include "lcdc.h"
31 #define MODULE_NAME "lcdc"
69 } lcdc;
73 lcdc.irq_mask |= mask;
78 lcdc.irq_mask &= ~mask;
109 l |= lcdc.irq_mask | OMAP_LCDC_IRQ_DONE; /* enabled IRQs */
131 init_completion(&lcdc.last_frame_complete);
133 if (!wait_for_completion_timeout(&lcdc.last_frame_complete,
135 dev_err(lcdc.fbdev->dev, "timeout waiting for FRAME DONE\n");
146 dev_err(lcdc.fbdev->dev,
155 dev_err(lcdc.fbdev->dev,
162 * in lcdc.fbdev and fbdev->var.
173 struct omapfb_plane_struct *plane = lcdc.fbdev->fb_info[0]->par;
174 struct fb_var_screeninfo *var = &lcdc.fbdev->fb_info[0]->var;
178 src = lcdc.vram_phys + lcdc.frame_offset;
183 lcdc.color_mode == OMAPFB_COLOR_YUV420 ||
184 (lcdc.xres & 1))
188 xelem = lcdc.xres * lcdc.bpp / 8 / esize;
189 yelem = lcdc.yres;
198 xelem = lcdc.yres * lcdc.bpp / 16;
199 yelem = lcdc.xres;
206 dev_dbg(lcdc.fbdev->dev,
212 int bpp = lcdc.bpp;
218 if (lcdc.color_mode == OMAPFB_COLOR_YUV420)
222 lcdc.screen_width * bpp / 8 / esize);
250 complete(&lcdc.last_frame_complete);
254 complete(&lcdc.palette_load_complete);
285 struct fb_var_screeninfo *var = &lcdc.fbdev->fb_info[0]->var;
286 struct lcd_panel *panel = lcdc.fbdev->panel;
299 dev_dbg(lcdc.fbdev->dev,
306 lcdc.frame_offset = offset;
307 lcdc.xres = width;
308 lcdc.yres = height;
309 lcdc.screen_width = screen_width;
310 lcdc.color_mode = color_mode;
314 lcdc.bpp = 8;
315 lcdc.palette_code = 0x3000;
316 lcdc.palette_size = 512;
319 lcdc.bpp = 16;
320 lcdc.palette_code = 0x4000;
321 lcdc.palette_size = 32;
324 lcdc.bpp = 16;
325 lcdc.palette_code = 0x4000;
326 lcdc.palette_size = 32;
329 if (lcdc.ext_mode) {
330 lcdc.bpp = 12;
335 if (lcdc.ext_mode) {
336 lcdc.bpp = 16;
347 dev_dbg(lcdc.fbdev->dev, "invalid color mode %d\n", color_mode);
352 if (lcdc.ext_mode) {
357 if (lcdc.update_mode == OMAPFB_AUTO_UPDATE) {
369 dev_dbg(lcdc.fbdev->dev,
371 plane, enable, lcdc.update_mode, lcdc.ext_mode);
387 palette = (u16 *)lcdc.palette_virt;
390 *(u16 *)palette |= lcdc.palette_code;
392 omap_set_lcd_dma_b1(lcdc.palette_phys,
393 lcdc.palette_size / 4 + 1, 1, OMAP_DMA_DATA_TYPE_S32);
398 init_completion(&lcdc.palette_load_complete);
402 if (!wait_for_completion_timeout(&lcdc.palette_load_complete,
404 dev_err(lcdc.fbdev->dev, "timeout waiting for FRAME DONE\n");
409 omap_set_lcd_dma_single_transfer(lcdc.ext_mode);
418 if (lcdc.color_mode != OMAPFB_COLOR_CLUT_8BPP || regno > 255)
421 palette = (u16 *)lcdc.palette_virt;
444 lck = clk_get_rate(lcdc.lcd_ck);
453 dev_warn(lcdc.fbdev->dev, "pixclock %d kHz too low.\n",
461 struct lcd_panel *panel = lcdc.fbdev->panel;
497 lck = clk_get_rate(lcdc.lcd_ck);
502 dev_warn(lcdc.fbdev->dev,
527 if (mode != lcdc.update_mode) {
540 lcdc.update_mode = mode;
545 lcdc.update_mode = mode;
557 return lcdc.update_mode;
580 if (lcdc.dma_callback)
583 lcdc.dma_callback = callback;
584 lcdc.dma_callback_data = data;
592 lcdc.dma_callback = NULL;
598 if (lcdc.dma_callback)
599 lcdc.dma_callback(lcdc.dma_callback_data);
604 lcdc.palette_virt = dma_alloc_wc(lcdc.fbdev->dev, MAX_PALETTE_SIZE,
605 &lcdc.palette_phys, GFP_KERNEL);
606 if (lcdc.palette_virt == NULL) {
607 dev_err(lcdc.fbdev->dev, "failed to alloc palette memory\n");
610 memset(lcdc.palette_virt, 0, MAX_PALETTE_SIZE);
617 dma_free_wc(lcdc.fbdev->dev, MAX_PALETTE_SIZE, lcdc.palette_virt,
618 lcdc.palette_phys);
625 struct lcd_panel *panel = lcdc.fbdev->panel;
633 lcdc.vram_size = frame_size;
634 lcdc.vram_virt = dma_alloc_wc(lcdc.fbdev->dev, lcdc.vram_size,
635 &lcdc.vram_phys, GFP_KERNEL);
636 if (lcdc.vram_virt == NULL) {
637 dev_err(lcdc.fbdev->dev, "unable to allocate FB DMA memory\n");
641 region->paddr = lcdc.vram_phys;
642 region->vaddr = lcdc.vram_virt;
645 memset(lcdc.vram_virt, 0, lcdc.vram_size);
652 dma_free_wc(lcdc.fbdev->dev, lcdc.vram_size, lcdc.vram_virt,
653 lcdc.vram_phys);
659 dev_err(lcdc.fbdev->dev, "no memory regions defined\n");
664 dev_err(lcdc.fbdev->dev, "only one plane is supported\n");
679 lcdc.irq_mask = 0;
681 lcdc.fbdev = fbdev;
682 lcdc.ext_mode = ext_mode;
690 lcdc.lcd_ck = clk_get(fbdev->dev, "lcd_ck");
691 if (IS_ERR(lcdc.lcd_ck)) {
693 r = PTR_ERR(lcdc.lcd_ck);
709 r = clk_set_rate(lcdc.lcd_ck, rate);
714 clk_prepare_enable(lcdc.lcd_ck);
747 free_irq(fbdev->int_irq, lcdc.fbdev);
749 clk_disable_unprepare(lcdc.lcd_ck);
751 clk_put(lcdc.lcd_ck);
758 if (!lcdc.ext_mode)
762 free_irq(lcdc.fbdev->int_irq, lcdc.fbdev);
763 clk_disable_unprepare(lcdc.lcd_ck);
764 clk_put(lcdc.lcd_ck);