On Tue, 13 Jan 2009 09:52:14 +0200 "ext ext-eero.nurkkala@xxxxxxxxx" <ext-eero.nurkkala@xxxxxxxxx> wrote: > From: Eero Nurkkala <ext-eero.nurkkala@xxxxxxxxx> > > ASoC has an annoying bug letting either L or R channel to be > played on L channel. In other words, L and R channels can > switch at random. This provides McBSP funtionality that may > be used to fix this feature. > I can confirm this. Long lasting problem unfortunately not solved yet. This is visible on 2420 as well so this patch is not enough. http://marc.info/?l=linux-omap&m=120643770810683&w=2 ... > +void omap_mcbsp_xmit_enable(unsigned int id, u8 enable) > +{ > + struct omap_mcbsp *mcbsp; > + void __iomem *io_base; > + u16 w; > + > + if (!(cpu_is_omap2430() || cpu_is_omap34xx())) > + return; > + > + if (!omap_mcbsp_check_valid_id(id)) { > + printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); > + return; > + } > + > + mcbsp = id_to_mcbsp_ptr(id); > + io_base = mcbsp->io_base; > + > + w = OMAP_MCBSP_READ(io_base, XCCR); > + > + if (enable) > + OMAP_MCBSP_WRITE(io_base, XCCR, w & ~(XDISABLE)); This doesn't fix problem on 2420. I assume when it works on 2420, the same fix will fix the 34xx as well. I fear the mcbsp initialization procedure in omap_mcbsp_start is not correct somewhat for 2420-34xx. Jarkko -- 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