"Koyamangalath, Abhilash" <abhilash.kv@xxxxxx> writes: > powerdomains3xxx_data.c defines core_3xxx_pre_es3_1_pwrdm and > core_3xxx_es3_1_pwrdm to take care of differences in "core_pwrdm" > implementations across revisions. > However,_pwrdm_lookup("core_pwrdm") always matches the first definition for > 3630 ES 1.1 and 1.2 which is incorrect. This patch fixes this issue by adding > code to match silicon revision as well while looking up "core_pwrdm" in > _pwrdm_lookup(). > core_3xxx_es3_1_pwrdm is different from core_3xxx_pre_es3_1_pwrdm in > that the former adds hardware save-restore support for USBTLL for 3430 > ES3.1 and for 3630 ES1.1 and ES1.2. > However,with this change, issuing a standby command (by suspending to RAM) > seems to crash the system on a 3630 ES1.2., with or without the USB support > enabled. > I'm not very sure about how the USBTLL setting effects the suspend operation of > the rest of the system. Checkpatch reports: total: 17 errors, 16 warnings, 29 lines checked Please fix punctuation, spacing, line-wrapping in changelog for readability. The CPU rev is also used on other 34xx SoCs, please check for those too. Kevin > > Signed-off-by: Abhilash K V <abhilash.kv@xxxxxx> > --- > arch/arm/mach-omap2/powerdomain.c | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c > index eaed0df..cc2b6e6 100644 > --- a/arch/arm/mach-omap2/powerdomain.c > +++ b/arch/arm/mach-omap2/powerdomain.c > @@ -29,6 +29,7 @@ > #include "powerdomain.h" > #include "clockdomain.h" > #include <plat/prcm.h> > +#include <plat/cpu.h> > > #include "pm.h" > > @@ -53,6 +54,22 @@ static struct powerdomain *_pwrdm_lookup(const char *name) > > list_for_each_entry(temp_pwrdm, &pwrdm_list, node) { > if (!strcmp(name, temp_pwrdm->name)) { > + if (!strcmp(name, "core_pwrdm") && cpu_is_omap3630()) { > + if (omap_rev() > OMAP3630_REV_ES1_0) { > + /* > + * match omap_chip info for OMAP3630 Rev ES1.1, > + * ES1.2 or higher > + */ > + if (!(temp_pwrdm->omap_chip.oc > + & CHIP_GE_OMAP3630ES1_1)) > + continue; > + } else { > + /* match omap_chip info for OMAP3630 Rev ES1.0 */ > + if (!(temp_pwrdm->omap_chip.oc > + & CHIP_IS_OMAP3630ES1)) > + continue; > + } > + } > pwrdm = temp_pwrdm; > break; > } -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html