Message ID | 12365823142066-git-send-email-ext-eero.nurkkala@nokia.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Tony Lindgren |
Headers | show |
On Mon, 9 Mar 2009 08:05:11 +0100 "Nurkkala Eero.An (EXT-Offcode/Oulu)" <ext-Eero.Nurkkala@nokia.com> wrote: > From: Eero Nurkkala <ext-eero.nurkkala@nokia.com> > > McBSP fclk must be maintained for the duration of > audio playback or recording. Otherwise the fclk > may get autogated when the PER96M clk is no longer > required by other modules. This results in audio > playback being hang. Fix this phenomenom by > enabling the McBSP fclk clockactivity bit for > the entire active duration of McBSP usage > ... > w = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); > - w &= ~(ENAWAKEUP | SIDLEMODE(0x03)); > - w |= (ENAWAKEUP | SIDLEMODE(0x02)); > + w &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY > (0x03)); > + w |= (ENAWAKEUP | SIDLEMODE(0x02) | CLOCKACTIVITY > (0x01)); OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, w); > Looks like a valid change eventhough haven't tested the actual problem. Would it be possible with the PM branch and Beagle now? Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2009-03-10 at 15:29 +0100, Nikula Jarkko (Nokia-D/Helsinki) wrote: > Looks like a valid change eventhough haven't tested the actual problem. > Would it be possible with the PM branch and Beagle now? > > > Jarkko Now this appears to be inherently wrong =) Read this: http://marc.info/?l=linux-omap&m=123674373120880&w=2 (Of course I went in to mention "I am 100% certain the McBSP FCLK is the bit 8" =) - Eero -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 11 Mar 2009 06:48:10 +0100 "Nurkkala Eero.An (EXT-Offcode/Oulu)" <ext-Eero.Nurkkala@nokia.com> wrote: > On Tue, 2009-03-10 at 15:29 +0100, Nikula Jarkko (Nokia-D/Helsinki) > wrote: > > Looks like a valid change eventhough haven't tested the actual > > problem. Would it be possible with the PM branch and Beagle now? > > > > > > Jarkko > > > Now this appears to be inherently wrong =) > > Read this: > > http://marc.info/?l=linux-omap&m=123674373120880&w=2 > > (Of course I went in to mention "I am 100% certain the McBSP FCLK is > the bit 8" =) > Ah, ok. I was also reviewing your patch with even some older TRM (but this was going to be updated anyway only into next TRM) :-) Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h index 26bde05..ec61b89 100644 --- a/arch/arm/plat-omap/include/mach/mcbsp.h +++ b/arch/arm/plat-omap/include/mach/mcbsp.h @@ -252,6 +252,7 @@ #define RDISABLE 0x0001 /********************** McBSP SYSCONFIG bit definitions ********************/ +#define CLOCKACTIVITY(value) ((value)<<8) #define SIDLEMODE(value) ((value)<<3) #define ENAWAKEUP 0x0004 #define SOFTRST 0x0002 diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index a94d03e..59850c2 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c @@ -248,8 +248,8 @@ int omap_mcbsp_request(unsigned int id) u16 w; w = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); - w &= ~(ENAWAKEUP | SIDLEMODE(0x03)); - w |= (ENAWAKEUP | SIDLEMODE(0x02)); + w &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); + w |= (ENAWAKEUP | SIDLEMODE(0x02) | CLOCKACTIVITY(0x01)); OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, w); OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, WAKEUPEN_ALL); @@ -308,7 +308,7 @@ void omap_mcbsp_free(unsigned int id) u16 w; w = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); - w &= ~(ENAWAKEUP | SIDLEMODE(0x03)); + w &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, w); w = OMAP_MCBSP_READ(mcbsp->io_base, WAKEUPEN);