Hi Anand, > -----Original Message----- > From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap- > owner@xxxxxxxxxxxxxxx] On Behalf Of Anand Gadiyar > Sent: Wednesday, July 14, 2010 8:39 AM > To: linux-omap@xxxxxxxxxxxxxxx > Cc: Gadiyar, Anand > Subject: [PATCH resend v2] omap: 3630: disable TLL SAR on 3630 ES1 > > USBTLL Save-and-Restore is broken in 3630 ES1.0. Having it > enabled could result in incorrect register restores as > the OMAP exits off-mode. This could potentially result in > unexpected wakeup events. > > (Refer 3630 errata ID i579) > > This is fixed in ES1.1. So disable it for ES1.0s. > > Signed-off-by: Anand Gadiyar <gadiyar@xxxxxx> > Acked-by: Paul Walmsley <paul@xxxxxxxxx> > --- > (v2: Added a comment to the code with a reference to the errata IDs > for 3430 and 3630. Also added Paul's ack). > > This is a fix for buggy hardware, and it would be nice > to see this in the next merge window too. > > Depends on the patch I just posted which adds the > CHIP_GE_OMAP3630ES1_1 macro > <https://patchwork.kernel.org/patch/111147/> > > arch/arm/mach-omap2/powerdomains34xx.h | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > Index: linux-omap-2.6/arch/arm/mach-omap2/powerdomains34xx.h > =================================================================== > --- linux-omap-2.6.orig/arch/arm/mach-omap2/powerdomains34xx.h > +++ linux-omap-2.6/arch/arm/mach-omap2/powerdomains34xx.h > @@ -75,12 +75,19 @@ static struct powerdomain mpu_3xxx_pwrdm > }, > }; > > +/* > + * The USBTLL Save-and-Restore mechanism is broken on > + * 3430s upto ES3.0 and 3630ES1.0. Hence this feature > + * needs to be disabled on these chips. > + * Refer: 3430 errata ID i459 and 3630 errata ID i579 > + */ > static struct powerdomain core_3xxx_pre_es3_1_pwrdm = { IMHO, The above name (and below ones) should be revisited, since its becoming misleading (even before your patch). Pre ES3.1 on OMAP3 chips is confusing, since both 3630ES1.0 and ES1.1 _are_ "pre ES3.1". Not sure if this needs to be taken care before or in this patch.. What do you think? Regards, Sergio > .name = "core_pwrdm", > .prcm_offs = CORE_MOD, > .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | > CHIP_IS_OMAP3430ES2 | > - CHIP_IS_OMAP3430ES3_0), > + CHIP_IS_OMAP3430ES3_0 | > + CHIP_IS_OMAP3630ES1), > .pwrsts = PWRSTS_OFF_RET_ON, > .pwrsts_logic_ret = PWRSTS_OFF_RET, > .banks = 2, > @@ -97,7 +104,8 @@ static struct powerdomain core_3xxx_pre_ > static struct powerdomain core_3xxx_es3_1_pwrdm = { > .name = "core_pwrdm", > .prcm_offs = CORE_MOD, > - .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES3_1), > + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES3_1 | > + CHIP_GE_OMAP3630ES1_1), > .pwrsts = PWRSTS_OFF_RET_ON, > .pwrsts_logic_ret = PWRSTS_OFF_RET, > .flags = PWRDM_HAS_HDWR_SAR, /* for USBTLL only */ > -- > 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 -- 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