Merge branch 'misc_2.6.37' of git://git.pwsan.com/linux-2.6 into omap-for-linus
This commit is contained in:
commit
d58cc92bda
|
@ -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,9 +51,11 @@ 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),
|
||||
MAX_MODULE_READY_TIME, i);
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue