static void ltm022a97a_lcd_power(int on, struct fb_var_screeninfo *var) { static int pin_requested = 0; struct fb_info *info = container_of(var, struct fb_info, var); int err; if (!pin_requested) { err = gpio_request(GPIO_LCD_RESET, "lcd reset"); if (err) { pr_err("failed to request gpio for LCD reset\n"); return; } gpio_direction_output(GPIO_LCD_RESET, 0); pin_requested = 1; } if (on) { gpio_set_value(GPIO_LCD_RESET, 0); msleep(100); gpio_set_value(GPIO_LCD_RESET, 1); msleep(10); pxafb_smart_queue(info, ARRAY_AND_SIZE(lcd_power_on)); pxafb_smart_queue(info, ARRAY_AND_SIZE(lcd_panel_on)); } else { pxafb_smart_queue(info, ARRAY_AND_SIZE(lcd_panel_off)); pxafb_smart_queue(info, ARRAY_AND_SIZE(lcd_power_off)); } err = pxafb_smart_flush(info); if (err) pr_err("%s: timed out\n", __func__); }
static void ltm020d550_lcd_power(int on, struct fb_var_screeninfo *var) { struct fb_info *info = container_of(var, struct fb_info, var); if (on) { pxafb_smart_queue(info, ARRAY_AND_SIZE(panel_init)); pxafb_smart_queue(info, ARRAY_AND_SIZE(panel_on)); } else { pxafb_smart_queue(info, ARRAY_AND_SIZE(panel_off)); } if (pxafb_smart_flush(info)) pr_err("%s: timed out\n", __func__); }
static void ltm020d550_update(struct fb_info *info) { pxafb_smart_queue(info, ARRAY_AND_SIZE(update_framedata)); pxafb_smart_flush(info); }