Lines Matching refs:info
144 struct bfin_lq035q1fb_info *info = container_of(spi->dev.driver, in lq035q1_spidev_probe() local
153 ctl->mode = (info->disp_info->mode & in lq035q1_spidev_probe()
208 static int lq035q1_backlight(struct bfin_lq035q1fb_info *info, unsigned arg) in lq035q1_backlight() argument
210 if (info->disp_info->use_bl) in lq035q1_backlight()
211 gpio_set_value(info->disp_info->gpio_bl, arg); in lq035q1_backlight()
395 static int bfin_lq035q1_fb_open(struct fb_info *info, int user) in bfin_lq035q1_fb_open() argument
397 struct bfin_lq035q1fb_info *fbi = info->par; in bfin_lq035q1_fb_open()
423 static int bfin_lq035q1_fb_release(struct fb_info *info, int user) in bfin_lq035q1_fb_release() argument
425 struct bfin_lq035q1fb_info *fbi = info->par; in bfin_lq035q1_fb_release()
445 struct fb_info *info) in bfin_lq035q1_fb_check_var() argument
447 struct bfin_lq035q1fb_info *fbi = info->par; in bfin_lq035q1_fb_check_var()
450 var->red.offset = info->var.red.offset; in bfin_lq035q1_fb_check_var()
451 var->green.offset = info->var.green.offset; in bfin_lq035q1_fb_check_var()
452 var->blue.offset = info->var.blue.offset; in bfin_lq035q1_fb_check_var()
453 var->red.length = info->var.red.length; in bfin_lq035q1_fb_check_var()
454 var->green.length = info->var.green.length; in bfin_lq035q1_fb_check_var()
455 var->blue.length = info->var.blue.length; in bfin_lq035q1_fb_check_var()
468 if (info->var.xres != var->xres || info->var.yres != var->yres || in bfin_lq035q1_fb_check_var()
469 info->var.xres_virtual != var->xres_virtual || in bfin_lq035q1_fb_check_var()
470 info->var.yres_virtual != var->yres_virtual) { in bfin_lq035q1_fb_check_var()
480 if ((info->fix.line_length * var->yres_virtual) > info->fix.smem_len) { in bfin_lq035q1_fb_check_var()
490 int bfin_lq035q1_fb_cursor(struct fb_info *info, struct fb_cursor *cursor) in bfin_lq035q1_fb_cursor() argument
500 struct fb_info *info) in bfin_lq035q1_fb_setcolreg() argument
505 if (info->var.grayscale) { in bfin_lq035q1_fb_setcolreg()
510 if (info->fix.visual == FB_VISUAL_TRUECOLOR) { in bfin_lq035q1_fb_setcolreg()
517 red >>= (16 - info->var.red.length); in bfin_lq035q1_fb_setcolreg()
518 green >>= (16 - info->var.green.length); in bfin_lq035q1_fb_setcolreg()
519 blue >>= (16 - info->var.blue.length); in bfin_lq035q1_fb_setcolreg()
521 value = (red << info->var.red.offset) | in bfin_lq035q1_fb_setcolreg()
522 (green << info->var.green.offset) | in bfin_lq035q1_fb_setcolreg()
523 (blue << info->var.blue.offset); in bfin_lq035q1_fb_setcolreg()
526 ((u32 *) (info->pseudo_palette))[regno] = value; in bfin_lq035q1_fb_setcolreg()
567 struct bfin_lq035q1fb_info *info; in bfin_lq035q1_probe() local
578 fbinfo = framebuffer_alloc(sizeof(*info), &pdev->dev); in bfin_lq035q1_probe()
584 info = fbinfo->par; in bfin_lq035q1_probe()
585 info->fb = fbinfo; in bfin_lq035q1_probe()
586 info->dev = &pdev->dev; in bfin_lq035q1_probe()
587 spin_lock_init(&info->lock); in bfin_lq035q1_probe()
589 info->disp_info = pdev->dev.platform_data; in bfin_lq035q1_probe()
593 ret = bfin_lq035q1_calc_timing(info); in bfin_lq035q1_probe()
620 fbinfo->var.bits_per_pixel = info->lcd_bpp; in bfin_lq035q1_probe()
622 if (info->disp_info->mode & LQ035_BGR) { in bfin_lq035q1_probe()
623 if (info->lcd_bpp == 24) { in bfin_lq035q1_probe()
633 if (info->lcd_bpp == 24) { in bfin_lq035q1_probe()
646 if (info->lcd_bpp == 24) { in bfin_lq035q1_probe()
658 active_video_mem_offset = ((U_LINE / 2) * LCD_X_RES * (info->lcd_bpp / 8)); in bfin_lq035q1_probe()
660 fbinfo->fix.smem_len = LCD_X_RES * LCD_Y_RES * info->lcd_bpp / 8 in bfin_lq035q1_probe()
670 info->fb_buffer = in bfin_lq035q1_probe()
671 dma_alloc_coherent(NULL, fbinfo->fix.smem_len, &info->dma_handle, in bfin_lq035q1_probe()
674 if (NULL == info->fb_buffer) { in bfin_lq035q1_probe()
680 fbinfo->screen_base = (void *)info->fb_buffer + active_video_mem_offset; in bfin_lq035q1_probe()
681 fbinfo->fix.smem_start = (int)info->fb_buffer + active_video_mem_offset; in bfin_lq035q1_probe()
685 fbinfo->pseudo_palette = &info->pseudo_pal; in bfin_lq035q1_probe()
695 info->disp_info->ppi_mode == USE_RGB565_16_BIT_PPI); in bfin_lq035q1_probe()
701 info->irq = platform_get_irq(pdev, 0); in bfin_lq035q1_probe()
702 if (info->irq < 0) { in bfin_lq035q1_probe()
707 ret = request_irq(info->irq, bfin_lq035q1_irq_error, 0, in bfin_lq035q1_probe()
708 DRIVER_NAME" PPI ERROR", info); in bfin_lq035q1_probe()
714 info->spidrv.driver.name = DRIVER_NAME"-spi"; in bfin_lq035q1_probe()
715 info->spidrv.probe = lq035q1_spidev_probe; in bfin_lq035q1_probe()
716 info->spidrv.remove = lq035q1_spidev_remove; in bfin_lq035q1_probe()
717 info->spidrv.shutdown = lq035q1_spidev_shutdown; in bfin_lq035q1_probe()
718 info->spidrv.driver.pm = LQ035Q1_SPIDEV_PM_OPS; in bfin_lq035q1_probe()
720 ret = spi_register_driver(&info->spidrv); in bfin_lq035q1_probe()
726 if (info->disp_info->use_bl) { in bfin_lq035q1_probe()
727 ret = gpio_request_one(info->disp_info->gpio_bl, in bfin_lq035q1_probe()
732 info->disp_info->gpio_bl); in bfin_lq035q1_probe()
744 LCD_X_RES, LCD_Y_RES, info->lcd_bpp); in bfin_lq035q1_probe()
749 if (info->disp_info->use_bl) in bfin_lq035q1_probe()
750 gpio_free(info->disp_info->gpio_bl); in bfin_lq035q1_probe()
752 spi_unregister_driver(&info->spidrv); in bfin_lq035q1_probe()
754 free_irq(info->irq, info); in bfin_lq035q1_probe()
756 bfin_lq035q1_free_ports(info->disp_info->ppi_mode == in bfin_lq035q1_probe()
761 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, in bfin_lq035q1_probe()
762 info->dma_handle); in bfin_lq035q1_probe()
775 struct bfin_lq035q1fb_info *info = fbinfo->par; in bfin_lq035q1_remove() local
777 if (info->disp_info->use_bl) in bfin_lq035q1_remove()
778 gpio_free(info->disp_info->gpio_bl); in bfin_lq035q1_remove()
780 spi_unregister_driver(&info->spidrv); in bfin_lq035q1_remove()
785 free_irq(info->irq, info); in bfin_lq035q1_remove()
787 if (info->fb_buffer != NULL) in bfin_lq035q1_remove()
788 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, in bfin_lq035q1_remove()
789 info->dma_handle); in bfin_lq035q1_remove()
793 bfin_lq035q1_free_ports(info->disp_info->ppi_mode == in bfin_lq035q1_remove()
807 struct bfin_lq035q1fb_info *info = fbinfo->par; in bfin_lq035q1_suspend() local
809 if (info->lq035_open_cnt) { in bfin_lq035q1_suspend()
810 lq035q1_backlight(info, 0); in bfin_lq035q1_suspend()
824 struct bfin_lq035q1fb_info *info = fbinfo->par; in bfin_lq035q1_resume() local
826 if (info->lq035_open_cnt) { in bfin_lq035q1_resume()
830 bfin_lq035q1_config_dma(info); in bfin_lq035q1_resume()
831 bfin_lq035q1_config_ppi(info); in bfin_lq035q1_resume()
832 bfin_lq035q1_init_timers(info); in bfin_lq035q1_resume()
838 lq035q1_backlight(info, 1); in bfin_lq035q1_resume()