Re: [alsa-devel] [PATCH] ALSA: ASoC: McASP: Fix data rotation for playback. Enables 24bit audio playback

From: Michal Bachraty
Date: Fri Jan 18 2013 - 03:44:35 EST


On Friday, January 18, 2013 08:22:53 Hebbar, Gururaja wrote:
> On Tue, Jan 15, 2013 at 20:11:00, Michal Bachraty wrote:
> > Signed-off-by: Michal Bachraty <michal.bachraty@xxxxxxxxxxxxxxxxxxx>
>
> Even simple patches need a simple changelog.
> Add a brief description about what & why it is done?
>

Hi Gurujaja,

> > - u32 rotate = (32 - word_length) / 4;
This implementation is wrong, but it works only for 16, or 32 bit audio data.
(rotation for 16 or 32 bit is same as in code I present) Mcasp rotated data in
4 bits (max value 0x7)and then masks them . That data are sended to i2s bus.
For 24 bit or 20 bit or other data formats, this code rotates data badly and
you hear somethink like noise. You need to use
> > + u32 rotate = (word_length / 4) & 0x7;
to proper data rotation.

Regards,
Michal

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/