From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: Revert "dmaengine: pl330: add DMA_PAUSE feature" From: Frank Mori Hess Message-Id: Date: Thu, 17 May 2018 12:20:07 -0400 To: Vinod Koul Cc: Marek Szyprowski , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Dan Williams , r.baldyga@hackerion.com, Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Linux Samsung SOC List-ID: U29ycnkgdG8ga2VlcCBjb21pbmcgYmFjayB0byB0aGlzLCBidXQgSSdtIGV4cGVyaWVuY2luZyBh IGJpdCBvZgppbmNyZWR1bGl0eSB0aGF0IHlvdSBhcmUgc2F5aW5nIHdoYXQgeW91IHNlZW0gdG8g YmUgc2F5aW5nLiAgWW91IHNlZW0KdG8gYmUgc2F5aW5nIGRtYWVuZ2luZSBwcm92aWRlcyBubyB3 YXkgdG8gcGVybWFuZW50bHkgc3RvcCBhIHRyYW5zZmVyCnNhZmVseSBvdGhlciB0aGFuIHRyYW5z ZmVycmluZyB0aGUgZnVsbCBudW1iZXIgb2YgYnl0ZXMgaW5pdGlhbGx5CnJlcXVlc3RlZC4gIFNv IHRoZSBwcm9wZXIgcmVzb2x1dGlvbiBpcyB0aGUgODI1MCBzZXJpYWwgZHJpdmVyIG5lZWRzCnRv IHJlbW92ZSByeCBkbWEgc3VwcG9ydCwgYmVjYXVzZSB0aGV5IGFyZSBqdXN0IHRyeWluZyB0byBk byBzb21ldGhpbmcKdGhhdCBpcyBub3Qgc3VwcG9ydGVkLgoKT24gVGh1LCBNYXkgMTcsIDIwMTgg YXQgMTI6MTkgQU0sIFZpbm9kIEtvdWwgPHZpbm9kLmtvdWxAbGluYXJvLm9yZz4gd3JvdGU6Cj4+ ID4gVGVybWluYXRlIGlzIGFib3J0LCBkYXRhIGxvc3MgbWF5IGhhcHBlbiBoZXJlLgo+Pgo+PiBX YWl0LCBhcmUgeW91IHNheWluZyBpZiB5b3UgZG8KPj4KPj4gZG1hIHBhdXNlCj4KPiBubyBkYXRh IGxvc3MKPj4gcmVhZCByZXNpZHVlCj4KPiBoZXJlIGFzIHdlbGwKPj4gZG1hIHRlcm1pbmF0ZQo+ Cj4gT2ggeWVzLCB3ZSBhYm9ydGVkLi4uCj4+CgpJIHNlZSB0d28gd2F5cyBvZiBpbnRlcnByZXRp bmcgd2hhdCB5b3UgYXJlIHNheWluZy4gRmlyc3QsIGZyb20gdGhlCnBvaW50IG9mIHZpZXcgb2Yg dGhlIHVzZXIgb2YgdGhlIGRtYWVuZ2luZSBhcGkuICBGcm9tIHRoaXMgcG9pbnQgb2YKdmlldyBp dCBpcyBpbXBvc3NpYmxlIGZvciBkYXRhIGxvc3MgdG8gb2NjdXIgZHVyaW5nIHBhdXNlIG9yIHJl YWRpbmcKdGhlIHJlc2lkdWUsIHNvIHNheWluZyB0aGV5IGNhdXNlIG5vIGRhdGEgbG9zcyBkdXJp bmcKcGF1c2UvcmVzaWR1ZS90ZXJtaW5hdGUgaXMgbWVhbmluZ2xlc3MuICBUaGlzIGlzIGJlY2F1 c2UgdGhlIHVzZXIKY2FuJ3QgY29uZmlybSBhbnkgZGF0YSBsb3NzIHVudGlsIGFmdGVyIHRoZXkg aGF2ZSByZWFkIHRoZSByZXNpZHVlIGFuZAp0aGUgdHJhbnNmZXIgaXMgdGVybWluYXRlZCwgc2lu Y2Ugb3B0aW1pc3RpY2FsbHkgdGhlIGRhdGEgbWF5IHN0aWxsIGJlCmF2YWlsYWJsZSBpZiBvbmx5 IHRoZSB1c2VyIHdvdWxkIHJlc3VtZSBhbmQgYWxsb3cgdGhlIHRyYW5zZmVyIHRvCmNvbnRpbnVl LgoKU2Vjb25kIHRoZXJlIGlzIHRoZSBpbnRlcnByZXRhdGlvbiBJIHdhbnQgdG8gYmVsaWV2ZS4g IFRoaXMgaXMgIm5vCmRhdGEgbG9zcyBvbiBwYXVzZSIgbWVhbnMgdGhhdCBhZnRlciB0aGUgcGF1 c2UsIG5vIGRhdGEgaGFzIGJlZW4KZGlzY2FyZGVkIGJ5IHRoZSBkbWEgY29udHJvbGxlciBoYXJk d2FyZSwgaW4gZmFjdCBhbGwgdGhlIGRhdGEgaXQgaGFzCnJlYWQgYmVmb3JlIGJlaW5nIHBhdXNl ZCBoYXMgYmVlbiBmdWxseSB0cmFuc2ZlcnJlZCB0byBpdHMKZGVzdGluYXRpb24uICBSZWFkaW5n IHRoZSByZXNpZHVlIHdoaWxlIHBhdXNlZCBnaXZlcyB5b3UgYW4gYWNjdXJhdGUsCnVwLXRvLWRh dGUgc3RhdGUgb2YgdGhlIHBhdXNlZCB0cmFuc2Zlci4gIFRoZW4gZmluYWxseSwgYWx0aG91Z2gg aW4KZ2VuZXJhbCBkbWEgdGVybWluYXRlIGNhdXNlcyBkYXRhIGxvc3MsIGl0IGRvZXMgbm90IGlu IHRoaXMgY2FzZSBzaW5jZQp3ZSB0ZXJtaW5hdGVkIHdoaWxlIHdlIHdlcmUgcGF1c2VkIGFuZCBy ZWFkIHRoZSB1cC10by1kYXRlIHJlc2lkdWUuClRoaXMgaXMgdGhlIGludGVycHJldGF0aW9uIGlt cGxpY2l0IGluIHRoZSA4MjUwIHNlcmlhbCBkcml2ZXIuCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9t IHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgZG1hZW5naW5lIiBpbgp0aGUg Ym9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9y ZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752322AbeEQQUM (ORCPT ); Thu, 17 May 2018 12:20:12 -0400 Received: from mail-io0-f195.google.com ([209.85.223.195]:40363 "EHLO mail-io0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751649AbeEQQUJ (ORCPT ); Thu, 17 May 2018 12:20:09 -0400 X-Google-Smtp-Source: AB8JxZqC2r4JpLip9lqRmUF6LIUJ312XiCtuogPTfBnXhOpGhX2isgLsHgLhN77S7mtXzt4jQ+hRsoVExzu7OG7ueno= MIME-Version: 1.0 In-Reply-To: <20180517041946.GQ13271@vkoul-mobl> References: <2484918.HKVQc3yJkt@bear> <53b13d76-16a1-0e0a-09e1-c917e5d49326@samsung.com> <182f50b9-55b6-c9ce-07fb-718a1d22e9c8@samsung.com> <06f54061-c537-b399-e493-ec2cdf4def5d@samsung.com> <20180515062144.GC13271@vkoul-mobl> <20180517041946.GQ13271@vkoul-mobl> From: Frank Mori Hess Date: Thu, 17 May 2018 12:20:07 -0400 Message-ID: Subject: Re: Revert "dmaengine: pl330: add DMA_PAUSE feature" To: Vinod Koul Cc: Marek Szyprowski , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Dan Williams , r.baldyga@hackerion.com, Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Linux Samsung SOC Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sorry to keep coming back to this, but I'm experiencing a bit of incredulity that you are saying what you seem to be saying. You seem to be saying dmaengine provides no way to permanently stop a transfer safely other than transferring the full number of bytes initially requested. So the proper resolution is the 8250 serial driver needs to remove rx dma support, because they are just trying to do something that is not supported. On Thu, May 17, 2018 at 12:19 AM, Vinod Koul wrote: >> > Terminate is abort, data loss may happen here. >> >> Wait, are you saying if you do >> >> dma pause > > no data loss >> read residue > > here as well >> dma terminate > > Oh yes, we aborted... >> I see two ways of interpreting what you are saying. First, from the point of view of the user of the dmaengine api. From this point of view it is impossible for data loss to occur during pause or reading the residue, so saying they cause no data loss during pause/residue/terminate is meaningless. This is because the user can't confirm any data loss until after they have read the residue and the transfer is terminated, since optimistically the data may still be available if only the user would resume and allow the transfer to continue. Second there is the interpretation I want to believe. This is "no data loss on pause" means that after the pause, no data has been discarded by the dma controller hardware, in fact all the data it has read before being paused has been fully transferred to its destination. Reading the residue while paused gives you an accurate, up-to-date state of the paused transfer. Then finally, although in general dma terminate causes data loss, it does not in this case since we terminated while we were paused and read the up-to-date residue. This is the interpretation implicit in the 8250 serial driver.