Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753881AbbF3HBx (ORCPT ); Tue, 30 Jun 2015 03:01:53 -0400 Received: from smtp-out-013.synserver.de ([212.40.185.13]:1128 "EHLO smtp-out-013.synserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753870AbbF3HBq (ORCPT ); Tue, 30 Jun 2015 03:01:46 -0400 X-SynServer-TrustedSrc: 1 X-SynServer-AuthUser: lars@metafoo.de X-SynServer-PPID: 18123 Message-ID: <55923ED5.3070607@metafoo.de> Date: Tue, 30 Jun 2015 09:01:41 +0200 From: Lars-Peter Clausen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: =?UTF-8?B?S3J6eXN6dG9mIEtvesWCb3dza2k=?= , Vinod Koul CC: gabriel@unseen.is, Marek Szyprowski , dmaengine@vger.kernel.org, Dan Williams , stable@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] dmaengine: pl330: Really fix choppy sound because of wrong residue calculation References: <1434376809-8029-1-git-send-email-k.kozlowski.k@gmail.com> <20150630041428.GE3246@localhost> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2614 Lines: 52 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 -- 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/