void disable_panel_backlight(void){ if(panel_has_enabled) { panel_enable(0); backlight_enable(0); } }
static void panel_try_init(void) { //if (panel_is_initialized) { // return; //} panel_is_initialized = 1; enum omap_dispc_format fmt = OMAP_XRGB888_FMT; panel_enable(1); //backlight_enable(1); //backlight_set_brightness(0x80); display_init(&panel, (void *)ONSCREEN_BUFFER, fmt); }
void show_image(ppz_images image_name) { int fallback = 1; enum omap_dispc_format fmt = OMAP_XRGB888_FMT; if(panel_has_enabled) { panel_enable(0); backlight_enable(0); } switch (image_name) { case boot: fmt = OMAP_RGB565_FMT; display_rle(_binary_boot_rle_start, (uint16_t *) FB, panel.xres, panel.yres); break; case lowbatt_charge: fmt = OMAP_RGB565_FMT; display_rle(_binary_lowbatt_charge_rle_start, (uint16_t *) FB, panel.xres, panel.yres); break; case connect_charge: display_mmc_gzip_ppm(1, 5, "connect_charge.ppz", (uint32_t *) FB, panel.xres, panel.yres); break; case cooldown: display_mmc_gzip_ppm(1, 5, "cooldown.ppz", (uint32_t *) FB, panel.xres, panel.yres); break; default: return -1; } panel_enable(1); display_init(&panel, (void *) FB, fmt); backlight_enable(1); backlight_set_brightness(0x3f); panel_has_enabled = 1; }
int op_progress (void *data) { int reporttype; int reportpipe; int actionpipe; panel *p; int readresult; int pd; GtkWidget *progress_path_label; GtkWindow *progress_dialog; GtkProgress *progress_bar; gtk_param_unpack (data, "iipppp", &reportpipe, &actionpipe, &p, &progress_path_label, &progress_dialog, &progress_bar); pd = (int) reportpipe; while ( (readresult = read(pd, &reporttype, sizeof(int))) > 0) { if (readresult > 0) { if (reporttype == 0) { /* Operation completed */ free (data); wait (NULL); panel_selectnone (p); panel_refresh (p->next, 1); panel_refresh (p, 1); gtk_widget_destroy (GTK_WIDGET(progress_dialog)); panel_enable (p->next); panel_enable (p); p->operation_busy = 0; p->next->operation_busy = 0; return (0); } else if (reporttype == 1) { /* Operation progress report */ int percent; char *path; op_progress_readprogress (pd, &percent, &path); gtk_label_set_text(GTK_LABEL(progress_path_label), path); gtk_entry_set_text (GTK_ENTRY(p->info), path); gtk_progress_set_percentage (GTK_PROGRESS(progress_bar), (double)(percent)/100); free (path); } else if (reporttype == 2) { /* Error */ int errornr; int action = 0; char *path; op_progress_readerror (pd, &errornr, &path); dialog_report_error ("Error operating on\n", path, strerror (errornr), &action); write (actionpipe, &action, sizeof(int)); free (path); } } } return (1); }
int board_late_init(void) { int bootmode = set_boot_mode(); int display_painted =0; /* boot */ enum omap_dispc_format fmt = OMAP_XRGB888_FMT; enum coolcharger_ppz_t coolcharger_ppz = get_coolcharger_ppz(); if(coolcharger_ppz == COOLCHARGER_SHUTDOWN_NOACTION) return 0; else if(coolcharger_ppz == COOLCHARGER_INITONLY) { if(!panel_has_enabled) { fmt = OMAP_RGB565_FMT; memset((void *) FB, 0, (panel.xres * 2 * panel.yres)); display_init(&panel, (void *) FB, fmt); } return 0; } switch(bootmode) { case EMMC_ANDROID: switch(coolcharger_ppz) { case COOLCHARGER_DISABLE: display_painted = 1; break; case COOLCHARGER_SHUTDOWN_COOLDOWN: case COOLCHARGER_SHUTDOWN_WARMUP: //if we have the warm up image, we can use it. disable_panel_backlight(); display_mmc_gzip_ppm(1, 5, "cooldown.ppz", (uint32_t *) FB, panel.xres, panel.yres); break; } break; case EMMC_RECOVERY: if(boot_cooldown_charger_mode()) { disable_panel_backlight(); switch(coolcharger_ppz) { case COOLCHARGER_COOLDOWN_MODE: display_mmc_gzip_ppm(1, 5, "cooldown.ppz", (uint32_t *) FB, panel.xres, panel.yres); break; case COOLCHARGER_CHARGER_MODE: fmt = OMAP_RGB565_FMT; display_rle(_binary_lowbatt_charge_rle_start, (uint16_t *) FB, panel.xres, panel.yres); break; } } else { if (!panel_has_enabled) /* recovery image is same as boot */ show_image(boot); display_painted = 1; } break; case SD_UIMAGE: case SD_BOOTIMG: case USB_BOOTIMG: default: /* if we use PIC SD card to reflash and the SoC < BOOT_ANDROID * the show_image will not be called. */ if(!panel_has_enabled) show_image(boot); display_painted = 1; break; } if (display_painted == 0) { panel_enable(1); display_init(&panel, (void *) FB, fmt); backlight_enable(1); backlight_set_brightness(0x3f); panel_has_enabled = 1; if(coolcharger_ppz == COOLCHARGER_SHUTDOWN_COOLDOWN || coolcharger_ppz == COOLCHARGER_SHUTDOWN_WARMUP) udelay(3000000); } return bootmode; }
static int panel_resume(struct omap_dss_device *disp) { panel_enable(disp); return 0; }
static int panel_resume(struct omap_display *disp) { panel_enable(disp); return 0; }