[PATCH 2/2] OMAP3: beagle xm: enable upto 800MHz OPP

Aaro Koskinen aaro.koskinen at nokia.com
Fri Jan 7 08:04:09 EST 2011


Hi,

On Wed, 5 Jan 2011, Nishanth Menon wrote:
> +static void __init beagle_opp_init(void)
> +{
> +	int r = 0;
> +
> +	/* Initialize the omap3 opp table */
> +	if (omap3_opp_init()) {
> +		pr_err("%s: opp default init failed\n", __func__);
> +		return;
> +	}
> +
> +	/* Custom OPP enabled for XM */
> +	if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
> +		struct omap_hwmod *mh = omap_hwmod_lookup("mpu");
> +		struct omap_hwmod *dh = omap_hwmod_lookup("iva");
> +		struct device *dev;
> +
> +		if (!mh || !dh) {
> +			pr_err("%s: Aiee.. no mpu/dsp devices? %p %p\n",
> +				__func__, mh, dh);
> +			r = -EINVAL;
> +		} else {
> +			/* Enable MPU 1GHz and lower opps */
> +			dev = &mh->od->pdev.dev;
> +			r = opp_enable(dev, 800000000);
> +			/* TODO: MPU 1GHz needs SR and ABB */
> +
> +			/* Enable IVA 800MHz and lower opps */
> +			dev = &dh->od->pdev.dev;
> +			r |= opp_enable(dev, 660000000);
> +			/* TODO: DSP 800MHz needs SR and ABB */
> +		}
> +		if (r) {
> +			pr_err("%s: failed to enable higher opp %d\n",
> +				__func__, r);
> +			/*
> +			 * Cleanup - disable the higher freqs - we dont care
> +			 * about the results
> +			 */
> +			dev = &mh->od->pdev.dev;
> +			opp_disable(dev, 800000000);
> +			dev = &dh->od->pdev.dev;

This branch will be reached also when !mh || !dh, so it won't work.

> +			opp_disable(dev, 660000000);
> +		}
> +	}
> +}

A.



More information about the linux-arm-kernel mailing list