Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1296159 > unrolled thread

[PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain

Started byMans Rullgard <mans@mansr.com>
First post2015-12-21 20:20 +0100
Last post2015-12-22 06:40 +0100
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain Mans Rullgard <mans@mansr.com> - 2015-12-21 20:20 +0100
    Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last  descriptor of a chain Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-12-21 20:40 +0100
      Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last  descriptor of a chain "Shevchenko, Andriy" <andriy.shevchenko@intel.com> - 2015-12-22 18:00 +0100
    Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor  of a chain Viresh Kumar <viresh.kumar@linaro.org> - 2015-12-22 06:40 +0100

#1296159 — [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain

FromMans Rullgard <mans@mansr.com>
Date2015-12-21 20:20 +0100
Subject[PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain
Message-ID<qIe9X-25k-9@gated-at.bofh.it>
The datasheet requires that the LLP_[SD]_EN bits be cleared whenever
LLP.LOC is zero, i.e. in the last descriptor of a multi-block chain.
Make the driver do this.

Signed-off-by: Mans Rullgard <mans@mansr.com>
---
 drivers/dma/dw/core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c
index 7067b6ddc1db..ca7cafc82f6b 100644
--- a/drivers/dma/dw/core.c
+++ b/drivers/dma/dw/core.c
@@ -751,6 +751,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
 		prev->lli.ctllo |= DWC_CTLL_INT_EN;
 
 	prev->lli.llp = 0;
+	prev->lli.ctllo &= ~(DWC_CTLL_LLP_D_EN | DWC_CTLL_LLP_S_EN);
 	first->txd.flags = flags;
 	first->total_len = len;
 
@@ -912,6 +913,7 @@ slave_sg_fromdev_fill_desc:
 		prev->lli.ctllo |= DWC_CTLL_INT_EN;
 
 	prev->lli.llp = 0;
+	prev->lli.ctllo &= ~(DWC_CTLL_LLP_D_EN | DWC_CTLL_LLP_S_EN);
 	first->total_len = total_len;
 
 	return &first->txd;
-- 
2.6.3

--
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/

[toc] | [next] | [standalone]


#1296172 — Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain

FromAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Date2015-12-21 20:40 +0100
SubjectRe: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain
Message-ID<qIetk-2e0-7@gated-at.bofh.it>
In reply to#1296159
On Mon, 2015-12-21 at 19:10 +0000, Mans Rullgard wrote:
> The datasheet requires that the LLP_[SD]_EN bits be cleared whenever
> LLP.LOC is zero, i.e. in the last descriptor of a multi-block chain.
> Make the driver do this.

Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> 
> Signed-off-by: Mans Rullgard <mans@mansr.com>
> ---
>  drivers/dma/dw/core.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c
> index 7067b6ddc1db..ca7cafc82f6b 100644
> --- a/drivers/dma/dw/core.c
> +++ b/drivers/dma/dw/core.c
> @@ -751,6 +751,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan,
> dma_addr_t dest, dma_addr_t src,
>  		prev->lli.ctllo |= DWC_CTLL_INT_EN;
>  
>  	prev->lli.llp = 0;
> +	prev->lli.ctllo &= ~(DWC_CTLL_LLP_D_EN | DWC_CTLL_LLP_S_EN);
>  	first->txd.flags = flags;
>  	first->total_len = len;
>  
> @@ -912,6 +913,7 @@ slave_sg_fromdev_fill_desc:
>  		prev->lli.ctllo |= DWC_CTLL_INT_EN;
>  
>  	prev->lli.llp = 0;
> +	prev->lli.ctllo &= ~(DWC_CTLL_LLP_D_EN | DWC_CTLL_LLP_S_EN);
>  	first->total_len = total_len;
>  
>  	return &first->txd;

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

--
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/

[toc] | [prev] | [next] | [standalone]


#1296892 — Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain

From"Shevchenko, Andriy" <andriy.shevchenko@intel.com>
Date2015-12-22 18:00 +0100
SubjectRe: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain
Message-ID<qIys1-6rG-1@gated-at.bofh.it>
In reply to#1296172
T24gTW9uLCAyMDE1LTEyLTIxIGF0IDIxOjM0ICswMjAwLCBBbmR5IFNoZXZjaGVua28gd3JvdGU6
DQo+IE9uIE1vbiwgMjAxNS0xMi0yMSBhdCAxOToxMCArMDAwMCwgTWFucyBSdWxsZ2FyZCB3cm90
ZToNCj4gPiBUaGUgZGF0YXNoZWV0IHJlcXVpcmVzIHRoYXQgdGhlIExMUF9bU0RdX0VOIGJpdHMg
YmUgY2xlYXJlZA0KPiA+IHdoZW5ldmVyDQo+ID4gTExQLkxPQyBpcyB6ZXJvLCBpLmUuIGluIHRo
ZSBsYXN0IGRlc2NyaXB0b3Igb2YgYSBtdWx0aS1ibG9jaw0KPiA+IGNoYWluLg0KPiA+IE1ha2Ug
dGhlIGRyaXZlciBkbyB0aGlzLg0KPiANCj4gQWNrZWQtYnk6IEFuZHkgU2hldmNoZW5rbyA8YW5k
cml5LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tPg0KDQpWaW5vZCwgSSB3b3VsZCBsaWtlIHRv
IHBvc3Rwb25lIHRoaXMgcGF0Y2ggZm9yIGEgd2hpbGUgdG8gbWFrZSBhIGJpdA0KZWFzaWVyIGJh
Y2sgcG9ydGluZyBvZiBvdGhlciBkd19kbWFjIGNoYW5nZXMgd3J0IGZpeCBTQVRBIG9uIDQ2MEVY
ICgqKS4NCg0KSSB3aWxsIHNlbmQgaXQgbGF0ZXIgaW4gYSBidW5jaC4gSG9wZSBNw6VucyBoYXMg
bm8gb2JqZWN0aW9ucyBvbiB0aGlzLg0KDQooKikgTm93IEknbSBwcmV0dHkgc3VyZSB0aGF0IHRo
ZSBtYWluIGlzc3VlcyB3aXRoIFNBVEEgYXJlIGEpIHdyb25nDQptYXN0ZXIgc2V0dGluZ3MgZm9y
IHRyYW5zZmVycyBhbmQgTExQLCBhbmQgYikgZW5kaWFubmVzIGlzc3VlIHdpdGgNCnZhbHVlcyBp
biBMTFAuIFRoYXQncyB3aHkgSSBob3BlIHRvIGhhdmUgdGhvc2UgcGF0Y2hlcyBjb21pbmcgZmly
c3QNCndpdGggYSBwcm9wZXIgRml4ZXM6IHRhZy4NCg0KPiANCj4gPiANCj4gPiBTaWduZWQtb2Zm
LWJ5OiBNYW5zIFJ1bGxnYXJkIDxtYW5zQG1hbnNyLmNvbT4NCj4gPiAtLS0NCj4gPiDCoGRyaXZl
cnMvZG1hL2R3L2NvcmUuYyB8IDIgKysNCj4gPiDCoDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv
bnMoKykNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvZHcvY29yZS5jIGIvZHJp
dmVycy9kbWEvZHcvY29yZS5jDQo+ID4gaW5kZXggNzA2N2I2ZGRjMWRiLi5jYTdjYWZjODJmNmIg
MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9kbWEvZHcvY29yZS5jDQo+ID4gKysrIGIvZHJpdmVy
cy9kbWEvZHcvY29yZS5jDQo+ID4gQEAgLTc1MSw2ICs3NTEsNyBAQCBkd2NfcHJlcF9kbWFfbWVt
Y3B5KHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwNCj4gPiBkbWFfYWRkcl90IGRlc3QsIGRtYV9hZGRy
X3Qgc3JjLA0KPiA+IMKgCQlwcmV2LT5sbGkuY3RsbG8gfD0gRFdDX0NUTExfSU5UX0VOOw0KPiA+
IMKgDQo+ID4gwqAJcHJldi0+bGxpLmxscCA9IDA7DQo+ID4gKwlwcmV2LT5sbGkuY3RsbG8gJj0g
fihEV0NfQ1RMTF9MTFBfRF9FTiB8DQo+ID4gRFdDX0NUTExfTExQX1NfRU4pOw0KPiA+IMKgCWZp
cnN0LT50eGQuZmxhZ3MgPSBmbGFnczsNCj4gPiDCoAlmaXJzdC0+dG90YWxfbGVuID0gbGVuOw0K
PiA+IMKgDQo+ID4gQEAgLTkxMiw2ICs5MTMsNyBAQCBzbGF2ZV9zZ19mcm9tZGV2X2ZpbGxfZGVz
YzoNCj4gPiDCoAkJcHJldi0+bGxpLmN0bGxvIHw9IERXQ19DVExMX0lOVF9FTjsNCj4gPiDCoA0K
PiA+IMKgCXByZXYtPmxsaS5sbHAgPSAwOw0KPiA+ICsJcHJldi0+bGxpLmN0bGxvICY9IH4oRFdD
X0NUTExfTExQX0RfRU4gfA0KPiA+IERXQ19DVExMX0xMUF9TX0VOKTsNCj4gPiDCoAlmaXJzdC0+
dG90YWxfbGVuID0gdG90YWxfbGVuOw0KPiA+IMKgDQo+ID4gwqAJcmV0dXJuICZmaXJzdC0+dHhk
Ow0KPiANCg0KLS0gDQpBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGludGVsLmNv
bT4NCkludGVsIEZpbmxhbmQgT3kNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbnRlbCBGaW5sYW5kIE95ClJlZ2lz
dGVyZWQgQWRkcmVzczogUEwgMjgxLCAwMDE4MSBIZWxzaW5raSAKQnVzaW5lc3MgSWRlbnRpdHkg
Q29kZTogMDM1NzYwNiAtIDQgCkRvbWljaWxlZCBpbiBIZWxzaW5raSAKClRoaXMgZS1tYWlsIGFu
ZCBhbnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvcgp0
aGUgc29sZSB1c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBk
aXN0cmlidXRpb24KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUg
bm90IHRoZSBpbnRlbmRlZApyZWNpcGllbnQsIHBsZWFzZSBjb250YWN0IHRoZSBzZW5kZXIgYW5k
IGRlbGV0ZSBhbGwgY29waWVzLgo=

--
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/

[toc] | [prev] | [next] | [standalone]


#1296551 — Re: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain

FromViresh Kumar <viresh.kumar@linaro.org>
Date2015-12-22 06:40 +0100
SubjectRe: [PATCH] dmaengine: dw: clear LLP_[SD]_EN bits in last descriptor of a chain
Message-ID<qInPY-8dk-17@gated-at.bofh.it>
In reply to#1296159
On 21-12-15, 19:10, Mans Rullgard wrote:
> The datasheet requires that the LLP_[SD]_EN bits be cleared whenever
> LLP.LOC is zero, i.e. in the last descriptor of a multi-block chain.
> Make the driver do this.
> 
> Signed-off-by: Mans Rullgard <mans@mansr.com>
> ---
>  drivers/dma/dw/core.c | 2 ++
>  1 file changed, 2 insertions(+)

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

-- 
viresh
--
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/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web