int s3c_ielcd_init_global(struct s3cfb_global *ctrl) { unsigned int cfg; *ielcd_fbdev = *ctrl; ielcd_fbdev->regs = s3c_ielcd_base; #ifdef CONFIG_FB_S3C_MIPI_LCD s3cfb_set_polarity_only(ielcd_fbdev); #else s3cfb_set_polarity(ielcd_fbdev); #endif s3cfb_set_timing(ielcd_fbdev); s3cfb_set_lcd_size(ielcd_fbdev); /* dithmode */ s3c_ielcd_writel(0x0, S3C_IELCD_DITHMODE); /* clk mode and mode * read from lcd vid con */ cfg = readl(ctrl->regs + S3C_VIDCON0); cfg &= ~((7 << 26) | (1 << 5) | (1 << 0)); #ifdef CONFIG_FB_S3C_MIPI_LCD cfg |= (0 << 26 | 0 << 5); #else cfg |= (0 << 26 | 1 << 5); #endif s3c_ielcd_writel(cfg, S3C_IELCD_VIDCON0); s3c_ielcd_writel(1<<5, S3C_IELCD_VIDINTCON0); s3cfb_set_vsync_interrupt(ielcd_fbdev, 0); s3cfb_set_global_interrupt(ielcd_fbdev, 0); /*s3cfb_display_on(ielcd_fbdev);*/ s3c_ielcd_writel(0, S3C_IELCD_VIDOSD0A); s3c_ielcd_writel((ctrl->lcd->width - 1) << 11 | (ctrl->lcd->height - 1), S3C_IELCD_VIDOSD0B); s3c_ielcd_writel((ctrl->lcd->width * ctrl->lcd->height), S3C_IELCD_VIDOSD0C); cfg = S3C_WINCON_DATAPATH_LOCAL | S3C_WINCON_BPPMODE_32BPP; cfg |= S3C_WINCON_INRGB_RGB; s3c_ielcd_writel(cfg, S3C_IELCD_WINCON0); s3cfb_window_on(ielcd_fbdev, 0); return 0; }
static int s3cfb_init_global(struct s3cfb_global *ctrl) { ctrl->output = OUTPUT_RGB; ctrl->rgb_mode = MODE_RGB_P; init_waitqueue_head(&ctrl->vsync_wait); mutex_init(&ctrl->lock); s3cfb_set_output(ctrl); s3cfb_set_display_mode(ctrl); s3cfb_set_polarity(ctrl); s3cfb_set_timing(ctrl); s3cfb_set_lcd_size(ctrl); return 0; }
static int s3cfb_init_global(struct s3cfb_global *ctrl) { ctrl->output = OUTPUT_RGB; ctrl->rgb_mode = MODE_RGB_P; init_completion(&ctrl->fb_complete); mutex_init(&ctrl->lock); s3cfb_set_output(ctrl); s3cfb_set_display_mode(ctrl); s3cfb_set_polarity(ctrl); s3cfb_set_timing(ctrl); s3cfb_set_lcd_size(ctrl); return 0; }
int s3cfb_init_global(struct s3cfb_global *fbdev) { fbdev->output = OUTPUT_RGB; fbdev->rgb_mode = MODE_RGB_P; fbdev->wq_count = 0; init_waitqueue_head(&fbdev->wq); mutex_init(&fbdev->lock); s3cfb_set_output(fbdev); s3cfb_set_display_mode(fbdev); s3cfb_set_polarity(fbdev); s3cfb_set_timing(fbdev); s3cfb_set_lcd_size(fbdev); return 0; }
static int s3cfb_init_global(void) { ctrl->output = OUTPUT_RGB; ctrl->rgb_mode = MODE_RGB_P; ctrl->wq_count = 0; init_waitqueue_head(&ctrl->wq); mutex_init(&ctrl->lock); s3cfb_set_output(ctrl); s3cfb_set_display_mode(ctrl); s3cfb_set_polarity(ctrl); s3cfb_set_timing(ctrl); s3cfb_set_lcd_size(ctrl); return 0; }