On 2018-10-26 09:00, Jarkko Nikula wrote:
On Thu, Oct 25, 2018 at 04:48:24PM +0300, Peter Ujfalusi wrote:
For samples sizes of 20/24/32 bit the DRR2/DXR2 registers must be used to receive or transmit the most significant part of the 32bit sample. We can not trick the system by using the DRR2/DXR2 register offset and use 32bit element size since these (and other McBSP) registers are 16bit ones.
We would need support for port_window in cyclic mode from the sDMA driver, but it is not straight forward as we would need to have the sDMA frame to cover the 32bit (DRR2+DRR1/DXR2+DXR1), but the frames must cover the ALSA period to be able to receive periodic interrupts.
Since the 32bit samples are not working (DMA timeout), just remove it in case we have McBSP with reg_size of 2.
Signed-off-by: Peter Ujfalusi peter.ujfalusi@ti.com
Hi,
I have noticed that on Nokia n810 32bit samples just don't work at all for audio
Regards, Peter
sound/soc/omap/omap-mcbsp.c | 5 +++++ 1 file changed, 5 insertions(+)
I guess this same holds for OMAP1 too as it has 16-bit McBSP registers too.
Yes, it does. That's why I check for the reg_size.
Acked-by: Jarkko Nikula jarkko.nikula@bitmer.com
Thanks.
There is a slight chance that I can make the 32bit samples to work on the sDMA side, but it is a long shot: Add support for port_window to cyclic Set the dev_width for omap1/omap2420 to 16bit (as this is the case) If port_windows is set and it is multiple of dev_width use single indexed addressing on the McBSP side instead of constant set the csdp.xxx_packed set the csdp.data_type to 32bit set the ES (element size) to 16bit set EI to -4
Aaargh, no, it can not be done... The TRM states that Packed access only works if EI=1 in single/double indexed modes.
I don't see how this can be done :(
- Péter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki