コード例 #1
0
ファイル: powerdomain.c プロジェクト: IngenicC/omapconf
/* ------------------------------------------------------------------------*//**
 * @FUNCTION		powerdm_in_transition
 * @BRIEF		return 1 if a power transition is ongoing
 *			on a given power domain
 * @RETURNS		1 if a power transition is ongoing
 *			0 if NO power transition is ongoing (or error)
 * @param[in]		powerdm: power domain name
 * @DESCRIPTION		return 1 if a power transition is ongoing
 *			on a given power domain
 *//*------------------------------------------------------------------------ */
unsigned int powerdm_in_transition(const char *powerdm)
{
	int in_transition;
	reg *pm_pwrstst;

	CHECK_NULL_ARG(powerdm, 0);

	pm_pwrstst = powerdm_pwrstst_reg_get(powerdm);
	if (pm_pwrstst == NULL) {
		dprintf("%s(%s): PM_PWRSTST==NULL!\n", __func__, powerdm);
		return 0;
	}

	in_transition = pwrdm_in_transition(pm_pwrstst);
	#ifdef PWRDM_DEBUG
	if (in_transition)
		printf("%s(%s): power transition ONGOING.\n",
			__func__, powerdm);
	else
		printf("%s(%s): NO power transition ongoing.\n",
			__func__, powerdm);
	#endif

	return in_transition;
}
コード例 #2
0
ファイル: pwrdm54xx.c プロジェクト: bcousson/omapconf
/* ------------------------------------------------------------------------*//**
 * @FUNCTION		pwrdm54xx_in_transition
 * @BRIEF		return 1 if power domain is in transition, 0 otherwise
 * @RETURNS		1 if power domain is in transition, 0 otherwise
 * @param[in]		id: valid power domain ID
 * @DESCRIPTION		return 1 if power domain is in transition, 0 otherwise
 *//*------------------------------------------------------------------------ */
unsigned int pwrdm54xx_in_transition(pwrdm54xx_id id)
{
	reg *pm_pwrstst;

	if (!cpu_is_omap54xx()) {
		fprintf(stderr, "%s(): CPU != 54XX\n", __func__);
		return 0;
	}
	CHECK_ARG_LESS_THAN(id, PWRDM54XX_ID_MAX, 0);

	/* Retrieve PM_xyz_PWRSTST pointer */
	pm_pwrstst = pwrdm54xx_pwrstst_reg_get(id);
	/* Retrieve power domain intransition status */
	return pwrdm_in_transition(pm_pwrstst);
}