Merge tag 'omap-for-v3.9/pm-omap4-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into late/omap
From Tony Lindgren: omap4 pm changes via Paul Walmsley <paul@pwsan.com>: Some OMAP4 power management fixes and audio device integration patches. This pull request contains a fix for an issue discovered during branch integration. Basic test logs are available at: http://www.pwsan.com/omap/testlogs/omap4_prcm_devel_a_3.9/20130210112717/ * tag 'omap-for-v3.9/pm-omap4-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP4: hwmod data: Enable AESS hwmod device ARM: OMAP4: hwmod data: Update AESS data with memory bank area ARM: OMAP4+: AESS: enable internal auto-gating during initial setup ASoC: TI AESS: add autogating-enable function, callable from architecture code ARM: OMAP2+: hwmod: add enable_preprogram hook ARM: OMAP2+: PM: Fix the dt return condition in pm_late_init() ARM: OMAP4: PM: Warn users about usage of older bootloaders
This commit is contained in:
@@ -2054,6 +2054,23 @@ static int _omap4_get_context_lost(struct omap_hwmod *oh)
|
||||
return oh->prcm.omap4.context_lost_counter;
|
||||
}
|
||||
|
||||
/**
|
||||
* _enable_preprogram - Pre-program an IP block during the _enable() process
|
||||
* @oh: struct omap_hwmod *
|
||||
*
|
||||
* Some IP blocks (such as AESS) require some additional programming
|
||||
* after enable before they can enter idle. If a function pointer to
|
||||
* do so is present in the hwmod data, then call it and pass along the
|
||||
* return value; otherwise, return 0.
|
||||
*/
|
||||
static int __init _enable_preprogram(struct omap_hwmod *oh)
|
||||
{
|
||||
if (!oh->class->enable_preprogram)
|
||||
return 0;
|
||||
|
||||
return oh->class->enable_preprogram(oh);
|
||||
}
|
||||
|
||||
/**
|
||||
* _enable - enable an omap_hwmod
|
||||
* @oh: struct omap_hwmod *
|
||||
@@ -2160,6 +2177,7 @@ static int _enable(struct omap_hwmod *oh)
|
||||
_update_sysc_cache(oh);
|
||||
_enable_sysc(oh);
|
||||
}
|
||||
r = _enable_preprogram(oh);
|
||||
} else {
|
||||
if (soc_ops.disable_module)
|
||||
soc_ops.disable_module(oh);
|
||||
|
Reference in New Issue
Block a user