Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d58cc92b authored by Tony Lindgren's avatar Tony Lindgren
Browse files

Merge branch 'misc_2.6.37' of git://git.pwsan.com/linux-2.6 into omap-for-linus

parents b245f26f 78f26e87
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@
 *                 using separate functional clock
 *   0x3 disabled: Module is disabled and cannot be accessed
 *
 * TODO: Need to handle module accessible in idle state
 */
int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg)
{
@@ -52,8 +51,10 @@ int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg)
	if (!clkctrl_reg)
		return 0;

	omap_test_timeout(((__raw_readl(clkctrl_reg) &
			    OMAP4430_IDLEST_MASK) == 0),
	omap_test_timeout((
		((__raw_readl(clkctrl_reg) & OMAP4430_IDLEST_MASK) == 0) ||
		 (((__raw_readl(clkctrl_reg) & OMAP4430_IDLEST_MASK) >>
		  OMAP4430_IDLEST_SHIFT) == 0x2)),
		MAX_MODULE_READY_TIME, i);

	return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY;
+11 −6
Original line number Diff line number Diff line
@@ -777,12 +777,6 @@ static void _enable_sysc(struct omap_hwmod *oh)
		_set_master_standbymode(oh, idlemode, &v);
	}

	if (sf & SYSC_HAS_AUTOIDLE) {
		idlemode = (oh->flags & HWMOD_NO_OCP_AUTOIDLE) ?
			0 : 1;
		_set_module_autoidle(oh, idlemode, &v);
	}

	/*
	 * XXX The clock framework should handle this, by
	 * calling into this code.  But this must wait until the
@@ -797,6 +791,17 @@ static void _enable_sysc(struct omap_hwmod *oh)
	/* If slave is in SMARTIDLE, also enable wakeup */
	if ((sf & SYSC_HAS_SIDLEMODE) && !(oh->flags & HWMOD_SWSUP_SIDLE))
		_enable_wakeup(oh);

	/*
	 * Set the autoidle bit only after setting the smartidle bit
	 * Setting this will not have any impact on the other modules.
	 */
	if (sf & SYSC_HAS_AUTOIDLE) {
		idlemode = (oh->flags & HWMOD_NO_OCP_AUTOIDLE) ?
			0 : 1;
		_set_module_autoidle(oh, idlemode, &v);
		_write_sysconfig(v, oh);
	}
}

/**
+14 −21
Original line number Diff line number Diff line
@@ -290,12 +290,11 @@ static void _add_optional_clock_alias(struct omap_device *od,
 */
int omap_device_count_resources(struct omap_device *od)
{
	struct omap_hwmod *oh;
	int c = 0;
	int i;

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
		c += omap_hwmod_count_resources(oh);
	for (i = 0; i < od->hwmods_cnt; i++)
		c += omap_hwmod_count_resources(od->hwmods[i]);

	pr_debug("omap_device: %s: counted %d total resources across %d "
		 "hwmods\n", od->pdev.name, c, od->hwmods_cnt);
@@ -322,12 +321,11 @@ int omap_device_count_resources(struct omap_device *od)
 */
int omap_device_fill_resources(struct omap_device *od, struct resource *res)
{
	struct omap_hwmod *oh;
	int c = 0;
	int i, r;

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++) {
		r = omap_hwmod_fill_resources(oh, res);
	for (i = 0; i < od->hwmods_cnt; i++) {
		r = omap_hwmod_fill_resources(od->hwmods[i], res);
		res += r;
		c += r;
	}
@@ -600,7 +598,6 @@ int omap_device_shutdown(struct platform_device *pdev)
{
	int ret, i;
	struct omap_device *od;
	struct omap_hwmod *oh;

	od = _find_by_pdev(pdev);

@@ -613,8 +610,8 @@ int omap_device_shutdown(struct platform_device *pdev)

	ret = _omap_device_deactivate(od, IGNORE_WAKEUP_LAT);

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
		omap_hwmod_shutdown(oh);
	for (i = 0; i < od->hwmods_cnt; i++)
		omap_hwmod_shutdown(od->hwmods[i]);

	od->_state = OMAP_DEVICE_STATE_SHUTDOWN;

@@ -714,11 +711,10 @@ void __iomem *omap_device_get_rt_va(struct omap_device *od)
 */
int omap_device_enable_hwmods(struct omap_device *od)
{
	struct omap_hwmod *oh;
	int i;

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
		omap_hwmod_enable(oh);
	for (i = 0; i < od->hwmods_cnt; i++)
		omap_hwmod_enable(od->hwmods[i]);

	/* XXX pass along return value here? */
	return 0;
@@ -732,11 +728,10 @@ int omap_device_enable_hwmods(struct omap_device *od)
 */
int omap_device_idle_hwmods(struct omap_device *od)
{
	struct omap_hwmod *oh;
	int i;

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
		omap_hwmod_idle(oh);
	for (i = 0; i < od->hwmods_cnt; i++)
		omap_hwmod_idle(od->hwmods[i]);

	/* XXX pass along return value here? */
	return 0;
@@ -751,11 +746,10 @@ int omap_device_idle_hwmods(struct omap_device *od)
 */
int omap_device_disable_clocks(struct omap_device *od)
{
	struct omap_hwmod *oh;
	int i;

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
		omap_hwmod_disable_clocks(oh);
	for (i = 0; i < od->hwmods_cnt; i++)
		omap_hwmod_disable_clocks(od->hwmods[i]);

	/* XXX pass along return value here? */
	return 0;
@@ -770,11 +764,10 @@ int omap_device_disable_clocks(struct omap_device *od)
 */
int omap_device_enable_clocks(struct omap_device *od)
{
	struct omap_hwmod *oh;
	int i;

	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
		omap_hwmod_enable_clocks(oh);
	for (i = 0; i < od->hwmods_cnt; i++)
		omap_hwmod_enable_clocks(od->hwmods[i]);

	/* XXX pass along return value here? */
	return 0;