• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/video/

Lines Matching refs:fbdev

122 int au1100fb_setmode(struct au1100fb_device *fbdev)
124 struct fb_info *info = &fbdev->info;
128 if (!fbdev)
132 if (panel_is_active(fbdev->panel) || panel_is_color(fbdev->panel)) {
156 index = (fbdev->panel->control_base & LCD_CONTROL_SBPPF_MASK) >> LCD_CONTROL_SBPPF_BIT;
172 info->var.rotate = ((fbdev->panel->control_base&LCD_CONTROL_SM_MASK) \
176 fbdev->regs->lcd_control = fbdev->panel->control_base;
177 fbdev->regs->lcd_horztiming = fbdev->panel->horztiming;
178 fbdev->regs->lcd_verttiming = fbdev->panel->verttiming;
179 fbdev->regs->lcd_clkcontrol = fbdev->panel->clkcontrol_base;
180 fbdev->regs->lcd_intenable = 0;
181 fbdev->regs->lcd_intstatus = 0;
182 fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(fbdev->fb_phys);
184 if (panel_is_dual(fbdev->panel)) {
188 fbdev->regs->lcd_dmaaddr1 = LCD_DMA_SA_N(fbdev->fb_phys +
192 fbdev->regs->lcd_dmaaddr1 = LCD_DMA_SA_N(fbdev->fb_phys);
203 fbdev->regs->lcd_words = LCD_WRD_WRDS_N(words);
205 fbdev->regs->lcd_pwmdiv = 0;
206 fbdev->regs->lcd_pwmhi = 0;
209 fbdev->regs->lcd_control |= LCD_CONTROL_GO;
221 struct au1100fb_device *fbdev;
225 fbdev = to_au1100fb_device(fbi);
226 palette = fbdev->regs->lcd_pallettebase;
253 } else if (panel_is_active(fbdev->panel)) {
258 } else if (panel_is_color(fbdev->panel)) {
260 value = (((panel_swap_rgb(fbdev->panel) ? blue : red) >> 12) & 0x000F) |
262 (((panel_swap_rgb(fbdev->panel) ? red : blue) >> 4) & 0x0F00);
281 struct au1100fb_device *fbdev = to_au1100fb_device(fbi);
289 fbdev->regs->lcd_control |= LCD_CONTROL_GO;
304 fbdev->regs->lcd_control &= ~LCD_CONTROL_GO;
326 struct au1100fb_device *fbdev;
329 fbdev = to_au1100fb_device(fbi);
333 if (!var || !fbdev) {
350 dmaaddr = fbdev->regs->lcd_dmaaddr0;
354 fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(dmaaddr);
356 if (panel_is_dual(fbdev->panel)) {
357 dmaaddr = fbdev->regs->lcd_dmaaddr1;
359 fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(dmaaddr);
373 struct au1100fb_device *fbdev = to_au1100fb_device(fbi);
377 if (fbdev && (angle > 0) && !(angle % 90)) {
379 fbdev->regs->lcd_control &= ~LCD_CONTROL_GO;
381 fbdev->regs->lcd_control &= ~(LCD_CONTROL_SM_MASK);
382 fbdev->regs->lcd_control |= ((angle/90) << LCD_CONTROL_SM_BIT);
384 fbdev->regs->lcd_control |= LCD_CONTROL_GO;
394 struct au1100fb_device *fbdev;
398 fbdev = to_au1100fb_device(fbi);
404 start = fbdev->fb_phys & PAGE_MASK;
405 len = PAGE_ALIGN((start & ~PAGE_MASK) + fbdev->fb_len);
462 struct au1100fb_device *fbdev = NULL;
471 if (!(fbdev = kzalloc(sizeof(struct au1100fb_device), GFP_KERNEL))) {
476 fbdev->panel = &known_lcd_panels[drv_info.panel_idx];
478 dev_set_drvdata(dev, (void*)fbdev);
497 fbdev->regs = (struct au1100fb_regs*)KSEG1ADDR(au1100fb_fix.mmio_start);
499 print_dbg("Register memory map at %p", fbdev->regs);
500 print_dbg("phys=0x%08x, size=%d", fbdev->regs_phys, fbdev->regs_len);
505 fbdev->fb_len = fbdev->panel->xres * fbdev->panel->yres *
506 (fbdev->panel->bpp >> 3) * AU1100FB_NBR_VIDEO_BUFFERS;
508 fbdev->fb_mem = dma_alloc_coherent(dev, PAGE_ALIGN(fbdev->fb_len),
509 &fbdev->fb_phys, GFP_KERNEL);
510 if (!fbdev->fb_mem) {
512 fbdev->fb_len / 1024);
516 au1100fb_fix.smem_start = fbdev->fb_phys;
517 au1100fb_fix.smem_len = fbdev->fb_len;
523 for (page = (unsigned long)fbdev->fb_mem;
524 page < PAGE_ALIGN((unsigned long)fbdev->fb_mem + fbdev->fb_len);
533 print_dbg("Framebuffer memory map at %p", fbdev->fb_mem);
534 print_dbg("phys=0x%08x, size=%dK", fbdev->fb_phys, fbdev->fb_len / 1024);
541 au1100fb_var.bits_per_pixel = fbdev->panel->bpp;
542 au1100fb_var.xres = fbdev->panel->xres;
544 au1100fb_var.yres = fbdev->panel->yres;
547 fbdev->info.screen_base = fbdev->fb_mem;
548 fbdev->info.fbops = &au1100fb_ops;
549 fbdev->info.fix = au1100fb_fix;
551 if (!(fbdev->info.pseudo_palette = kzalloc(sizeof(u32) * 16, GFP_KERNEL))) {
555 if (fb_alloc_cmap(&fbdev->info.cmap, AU1100_LCD_NBR_PALETTE_ENTRIES, 0) < 0) {
558 kfree(fbdev->info.pseudo_palette);
562 fbdev->info.var = au1100fb_var;
565 au1100fb_setmode(fbdev);
568 if (register_framebuffer(&fbdev->info) < 0) {
576 if (fbdev->regs) {
577 release_mem_region(fbdev->regs_phys, fbdev->regs_len);
579 if (fbdev->fb_mem) {
580 dma_free_noncoherent(dev, fbdev->fb_len, fbdev->fb_mem, fbdev->fb_phys);
582 if (fbdev->info.cmap.len != 0) {
583 fb_dealloc_cmap(&fbdev->info.cmap);
585 kfree(fbdev);
593 struct au1100fb_device *fbdev = NULL;
598 fbdev = (struct au1100fb_device*) dev_get_drvdata(dev);
601 au1100fb_fb_blank(VESA_POWERDOWN, &fbdev->info);
603 fbdev->regs->lcd_control &= ~LCD_CONTROL_GO;
606 unregister_framebuffer(&fbdev->info);
608 release_mem_region(fbdev->regs_phys, fbdev->regs_len);
610 dma_free_coherent(dev, PAGE_ALIGN(fbdev->fb_len), fbdev->fb_mem, fbdev->fb_phys);
612 fb_dealloc_cmap(&fbdev->info.cmap);
613 kfree(fbdev->info.pseudo_palette);
614 kfree((void*)fbdev);
625 struct au1100fb_device *fbdev = dev_get_drvdata(dev);
627 if (!fbdev)
634 au1100fb_fb_blank(VESA_POWERDOWN, &fbdev->info);
639 memcpy(&fbregs, fbdev->regs, sizeof(struct au1100fb_regs));
646 struct au1100fb_device *fbdev = dev_get_drvdata(dev);
648 if (!fbdev)
651 memcpy(fbdev->regs, &fbregs, sizeof(struct au1100fb_regs));
657 au1100fb_fb_blank(VESA_NO_BLANKING, &fbdev->info);