예제 #1
0
파일: arisc.c 프로젝트: alex-deng/a33_linux
static int sunxi_arisc_resume(struct device *dev)
{
	unsigned long wake_event;
	standby_info_para_t sst_info;

	atomic_set(&arisc_suspend_flag, 0);
	arisc_query_wakeup_source(&wake_event);
	if (wake_event & CPUS_WAKEUP_POWER_EXP) {
		ARISC_LOG("power exception during standby, enable:0x%x" \
				  " expect state:0x%x, expect consumption:%dmw", \
				arisc_powchk_back.power_state.enable, \
				arisc_powchk_back.power_state.power_reg, \
				arisc_powchk_back.power_state.system_power);
		arisc_query_standby_power(&sst_info);
		ARISC_LOG(" real state:0x%x, real consumption:%dmw\n", \
				sst_info.power_state.power_reg, \
				sst_info.power_state.system_power);
	}

	return 0;
}
예제 #2
0
/* ���»��� */
static int sunxi_keypad_resume(struct device *dev)
{
	unsigned int keypad_event = 0;
	dprintk(DEBUG_SUSPEND, "enter: sunxi_keypad_resume. \n");

	arisc_query_wakeup_source(&keypad_event);
	dprintk(DEBUG_SUSPEND, "%s: event 0x%x\n", __func__, keypad_event);
	if (CPUS_WAKEUP_IR&keypad_event) {/////unfinish
		input_report_key(keypd_dev, keypad_power_key, 1);
		input_sync(keypd_dev);
		msleep(1);
		input_report_key(keypd_dev, keypad_power_key, 0);
		input_sync(keypd_dev);
	}

	key_pressed[0] = 0;
	key_pressed[1] = 0;
	clk_prepare_enable(keypad_clk);
	enable_irq(KEYPAD_IRQNUM);

	return 0;
}