Re: [PATCH] dmaengine: pl330: Really fix choppy sound because of wrong residue calculation

From: Krzysztof KozÅowski
Date: Tue Jun 30 2015 - 03:58:05 EST


2015-06-30 16:01 GMT+09:00 Lars-Peter Clausen <lars@xxxxxxxxxx>:
> On 06/30/2015 06:51 AM, Krzysztof KozÅowski wrote:
>>
>> 2015-06-30 13:14 GMT+09:00 Vinod Koul <vinod.koul@xxxxxxxxx>:
>>>
>>> On Mon, Jun 22, 2015 at 11:14:42AM +0900, Krzysztof KozÅowski wrote:
>>>>
>>>> 2015-06-15 23:00 GMT+09:00 Krzysztof Kozlowski
>>>> <k.kozlowski.k@xxxxxxxxx>:
>>>>>
>>>>> When pl330 driver was used during sound playback, after some time or
>>>>> after a number of plays the sound became choppy or totally noisy. For
>>>>> example on Odroid XU3 board the first four executions of aplay with
>>>>> small WAVE worked fine, but fifth was unrecognizable with errors:
>>>>> $ aplay /usr/share/sounds/alsa/Front_Right.wava
>>>>> underrun!!! (at least 0.095 ms long)
>>>>>
>>>>> Issue was caused by wrong residue reported by pl330 driver to
>>>>> pcm_dmaengine for its cyclic dma transfers.
>>>>>
>>>>> The pl330_tx_status(), residue reporting function, used a "last" flag
>>>>> in
>>>>> a descriptor to indicate that there is no more data to send.
>>>>>
>>>>> The pl330_tx_submit() iterated over descriptors trying to remove this
>>>>> flag from them and then mark last descriptor as "last". However when
>>>>> iterating it actually removed the flag not from descriptors but always
>>>>> from last of it (and then reset it). Thus effectively once some
>>>>> descriptor was marked as last, then it stayed like this forever causing
>>>>> residue to be reported too low.
>>>>>
>>>>> Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@xxxxxxxxx>
>>>>> Fixes: aee4d1fac887 ("dmaengine: pl330: improve pl330_tx_status()
>>>>> function")
>>>>> Cc: <stable@xxxxxxxxxxxxxxx>
>>>>> Reported-by: gabriel@xxxxxxxxx
>>>>> Suggested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
>>>>
>>>>
>>>> Gabriel, could you give this patch a try? It helped for my Odroid XU3,
>>>> which has the same audio codec. Nevertheless it would be great to hear
>>>> that it solves the initial bug report.
>>>
>>>
>>> So is there a word on what finally fixes this
>>
>>
>> This fixes sound issue on my Odroid XU3 board, which is good. My board
>> has the same audio codec and DMA driver as the board used by Gabriel
>> so there is high chance that his issue is also fixed.
>>
>> However it is sad that I did not receive any reviews or tests from
>> anyone, apparently no one cares enough about it :) .
>
>
> I care, I've had it in applied to my local tree for a while now. Without it
> audio does not work.
>
> Tested-by: Lars-Peter Clausen <lars@xxxxxxxxxx>

Thanks, I appreciate this!

Best regards,
Krzysztof
--
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/