Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752628AbbF3H6B (ORCPT ); Tue, 30 Jun 2015 03:58:01 -0400 Received: from mail-vn0-f54.google.com ([209.85.216.54]:36998 "EHLO mail-vn0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751355AbbF3H5w convert rfc822-to-8bit (ORCPT ); Tue, 30 Jun 2015 03:57:52 -0400 MIME-Version: 1.0 In-Reply-To: <55923ED5.3070607@metafoo.de> References: <1434376809-8029-1-git-send-email-k.kozlowski.k@gmail.com> <20150630041428.GE3246@localhost> <55923ED5.3070607@metafoo.de> Date: Tue, 30 Jun 2015 16:57:51 +0900 Message-ID: Subject: Re: [PATCH] dmaengine: pl330: Really fix choppy sound because of wrong residue calculation From: =?UTF-8?Q?Krzysztof_Koz=C5=82owski?= To: Lars-Peter Clausen Cc: Vinod Koul , gabriel@unseen.is, Marek Szyprowski , dmaengine@vger.kernel.org, Dan Williams , stable@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2831 Lines: 69 2015-06-30 16:01 GMT+09:00 Lars-Peter Clausen : > On 06/30/2015 06:51 AM, Krzysztof Kozłowski wrote: >> >> 2015-06-30 13:14 GMT+09:00 Vinod Koul : >>> >>> On Mon, Jun 22, 2015 at 11:14:42AM +0900, Krzysztof Kozłowski wrote: >>>> >>>> 2015-06-15 23:00 GMT+09:00 Krzysztof Kozlowski >>>> : >>>>> >>>>> 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 >>>>> Fixes: aee4d1fac887 ("dmaengine: pl330: improve pl330_tx_status() >>>>> function") >>>>> Cc: >>>>> Reported-by: gabriel@unseen.is >>>>> Suggested-by: Marek Szyprowski >>>> >>>> >>>> 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 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/