static void *process_reboot(void *m) {
    ALOGI("[%s] start,", __FUNCTION__);

    if(pop_confirm(m, LAYOUT_REBOOT, get_string(KEY_REBOOT_NOTICE))) {
        ALOGI("[%s] confirmed,", __FUNCTION__);
        if(reboot_opt == REBOOT_POWEROFF) {
            system("reboot -p");
        } else if(reboot_opt == REBOOT_FFBM) {
            system("reboot");
        } else if(reboot_opt == REBOOT_ANDROID) {
            set_boot_mode(BOOT_MODE_NORMAL);
            system("reboot");
        }
    } else {
        ALOGI("[%s] cancelled,", __FUNCTION__);
    }
    return NULL;
}
void Ui_MainWindowBase::ConfigCPUBootMode(int num)
{
	int i;
	QString tmps;
	if(num <= 0) return;
	if(num >= 8) num = 7;
  
	actionGroup_BootMode = new QActionGroup(this);
	actionGroup_BootMode->setExclusive(true);
	for(i = 0; i < num; i++) {
		actionBootMode[i] = new Action_Control(this);
		tmps = tmps.setNum(i);
		tmps = QString::fromUtf8("actionBootMode_") + tmps;
		actionBootMode[i]->setObjectName(tmps);
		actionBootMode[i]->setCheckable(true);
		if(i == config.boot_mode) actionBootMode[i]->setChecked(true);
		actionBootMode[i]->binds->setValue1(i);
		menuBootMode->addAction(actionBootMode[i]);
		actionGroup_BootMode->addAction(actionBootMode[i]);
		connect(actionBootMode[i], SIGNAL(triggered()), actionBootMode[i]->binds, SLOT(set_boot_mode())); // OK?  
		connect(actionBootMode[i]->binds, SIGNAL(on_boot_mode(int)), this, SLOT(do_change_boot_mode(int))); // OK?  
	}
}
예제 #3
0
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;
}