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;
}
Exemple #4
0
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;
}
Exemple #6
0
static int panel_resume(struct omap_dss_device *disp)
{
	panel_enable(disp);

	return 0;
}
Exemple #7
0
static int panel_resume(struct omap_display *disp)
{
	panel_enable(disp);
	return 0;
}