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: [v2,2/3] dma: imx-sdma: add clock ratio 1:1 check From: Angus Ainslie Message-Id: <6cbbac1e98b74702fc5a9b915b7630f7@www.akkea.ca> Date: Sun, 20 Jan 2019 07:38:12 -0700 To: Daniel Baluta Cc: Vinod Koul , dmaengine@vger.kernel.org, NXP Linux Team , Pengutronix Kernel Team , linux-arm-kernel , Linux Kernel Mailing List List-ID: SGkgRGFuaWVsLAoKT24gMjAxOS0wMS0yMCAwMjo1OCwgRGFuaWVsIEJhbHV0YSB3cm90ZToKPiBP biBTdW4sIEphbiAyMCwgMjAxOSBhdCA0OjMyIEFNIEFuZ3VzIEFpbnNsaWUgKFB1cmlzbSkgPGFu Z3VzQGFra2VhLmNhPiAKPiB3cm90ZToKPj4gCj4+IE9uIGkubXg4IG1zY2FsZSBCMCBjaGlwLCBB SEIvU0RNQSBjbG9jayByYXRpbyAyOjEgY2FuJ3QgYmUgc3VwcG9ydHRlZCwKPj4gc2luY2UgU0RN QSBjbG9jayByYXRpbyBoYXMgdG8gYmUgaW5jcmVhc2VkIHRvIDI1ME1oeiwgQUhCIGNhbid0IHJl YWNoCj4+IHRvIDUwME1oeiwgc28gdXNlIDE6MSBpbnN0ZWFkLgo+PiAKPj4gYmFzZWQgb24gTlhQ IGNvbW1pdCBNTEstMTY4NDEtMQo+IAo+IEhpIEFuZ3VzLAo+IAo+IFRoYW5rcyBmb3IgZG9pbmcg dGhpcyEKPiAKPiBJJ20gbm90IHN1cmUgc3BlY2lmeWluZyB0aGUgTUxLIGhlcmUgaGVscHMuIEkg dGhpbmsgaXQgd291bGQgYmUgYmV0dGVyCj4gdG8gc29tZWhvdyBhZGQgdGhlIG9yaWdpbmFsIFNp Z25lZC1vZmYtYnkgYW5kIG1lbnRpb24gdGhhdCB0aGUgY29tbWl0Cj4gd2FzIHB1bGxlZCBmcm9t IE5YUCBsaW51eC1pbXggdHJlZS4KCklmIGl0IHdhcyBleGFjdGx5IHRoZSBzYW1lIHBhdGNoIEkg d291bGQgaGF2ZSBidXQgYXMgSSBhZGRlZCB0aGUgbGluZXMgCmluCnNkbWFfcnVuX2NoYW5uZWww IEkgZGlkbid0IHRoaW5rIGl0IHdvdWxkIGJlIHJpZ2h0IHRvIHB1dCBzaWduZWQgb2ZmIGJ5CiJS b2JpbiBHb25nIDx5aWJpbi5nb25nQG54cC5jb20+IiBhcyB0aGUgY29kZSBpc24ndCB3aGF0IGhl IHNpZ25lZCBvZmYgCm9uLgoKPj4gCj4+IFNpZ25lZC1vZmYtYnk6IEFuZ3VzIEFpbnNsaWUgKFB1 cmlzbSkgPGFuZ3VzQGFra2VhLmNhPgo+PiAtLS0KPj4gIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdz L2RtYS9mc2wtaW14LXNkbWEudHh0ICB8ICAxICsKPj4gIGRyaXZlcnMvZG1hL2lteC1zZG1hLmMg ICAgICAgICAgICAgICAgICAgICAgICB8IDIwIAo+PiArKysrKysrKysrKysrKystLS0tCj4+ICAy IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+IAo+PiBk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9mc2wtaW14 LXNkbWEudHh0IAo+PiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kbWEvZnNs LWlteC1zZG1hLnR4dAo+PiBpbmRleCAzYzlhNTdhODQ0M2IuLjE3NTQ0YzE4MjBiNyAxMDA2NDQK Pj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9mc2wtaW14LXNk bWEudHh0Cj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kbWEvZnNs LWlteC1zZG1hLnR4dAo+PiBAQCAtNjcsNiArNjcsNyBAQCBPcHRpb25hbCBwcm9wZXJ0aWVzOgo+ PiAgICAgIHJlZyBpcyB0aGUgR1BSIHJlZ2lzdGVyIG9mZnNldC4KPj4gICAgICBzaGlmdCBpcyB0 aGUgYml0IHBvc2l0aW9uIGluc2lkZSB0aGUgR1BSIHJlZ2lzdGVyLgo+PiAgICAgIHZhbCBpcyB0 aGUgdmFsdWUgb2YgdGhlIGJpdCAoMCBvciAxKS4KPj4gKy0gZnNsLHJhdGlvLTEtMTogQUhCL1NE TUEgY29yZSBjbG9jayByYXRpb24gMToxLCAyOjEgd2l0aG91dCB0aGlzLgo+PiAKPj4gIEV4YW1w bGVzOgo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2lteC1zZG1hLmMgYi9kcml2ZXJz L2RtYS9pbXgtc2RtYS5jCj4+IGluZGV4IDBiM2E2N2ZmOGU4Mi4uNjVkYWRhMjFkM2MxIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2RtYS9pbXgtc2RtYS5jCj4+ICsrKyBiL2RyaXZlcnMvZG1hL2lt eC1zZG1hLmMKPj4gQEAgLTQ0MCw2ICs0NDAsOCBAQCBzdHJ1Y3Qgc2RtYV9lbmdpbmUgewo+PiAg ICAgICAgIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgaXJxOwo+PiAgICAgICAgIGRt YV9hZGRyX3QgICAgICAgICAgICAgICAgICAgICAgYmQwX3BoeXM7Cj4+ICAgICAgICAgc3RydWN0 IHNkbWFfYnVmZmVyX2Rlc2NyaXB0b3IgICAqYmQwOwo+PiArICAgICAgIC8qIGNsb2NrIHJhdGlv IGZvciBBSEI6U0RNQSBjb3JlLiAxOjEgaXMgMSwgMjoxIGlzIDAqLwo+PiArICAgICAgIGJvb2wg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xrX3JhdGlvOwo+PiAgfTsKPj4gCj4+ICBzdGF0 aWMgaW50IHNkbWFfY29uZmlnX3dyaXRlKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwKPj4gQEAgLTY2 Miw4ICs2NjQsMTQgQEAgc3RhdGljIGludCBzZG1hX3J1bl9jaGFubmVsMChzdHJ1Y3Qgc2RtYV9l bmdpbmUgCj4+ICpzZG1hKQo+PiAgICAgICAgICAgICAgICAgZGV2X2VycihzZG1hLT5kZXYsICJU aW1lb3V0IHdhaXRpbmcgZm9yIENIMCByZWFkeVxuIik7Cj4+IAo+PiAgICAgICAgIC8qIFNldCBi aXRzIG9mIENPTkZJRyByZWdpc3RlciB3aXRoIGR5bmFtaWMgY29udGV4dCBzd2l0Y2hpbmcgCj4+ ICovCj4+IC0gICAgICAgaWYgKHJlYWRsKHNkbWEtPnJlZ3MgKyBTRE1BX0hfQ09ORklHKSA9PSAw KQo+PiAtICAgICAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoU0RNQV9IX0NPTkZJR19DU00sIHNk bWEtPnJlZ3MgKyAKPj4gU0RNQV9IX0NPTkZJRyk7Cj4+ICsgICAgICAgaWYgKHJlYWRsKHNkbWEt PnJlZ3MgKyBTRE1BX0hfQ09ORklHKSA9PSAwKSB7Cj4+ICsgICAgICAgICAgICAgICBpZiAoc2Rt YS0+Y2xrX3JhdGlvKQo+PiArICAgICAgICAgICAgICAgICAgICAgICByZWcgPSBTRE1BX0hfQ09O RklHX0NTTSB8IFNETUFfSF9DT05GSUdfQUNSOwo+PiArICAgICAgICAgICAgICAgZWxzZQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICByZWcgPSBTRE1BX0hfQ09ORklHX0NTTTsKPj4gKwo+PiAr ICAgICAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQocmVnLCBzZG1hLT5yZWdzICsgU0RNQV9IX0NP TkZJRyk7Cj4+ICsgICAgICAgfQo+PiAKClRoaXMgaXMgdGhlIGNvZGUgdGhhdCBJIGFkZGVkIG91 dCBvZiBhbiBvdmVyIGFidW5kYW5jZSBvZiBwcnVkZW5jZS4KCkFuZ3VzCgo+PiAgICAgICAgIHJl dHVybiByZXQ7Cj4+ICB9Cj4+IEBAIC0xODgwLDggKzE4ODgsMTAgQEAgc3RhdGljIGludCBzZG1h X2luaXQoc3RydWN0IHNkbWFfZW5naW5lICpzZG1hKQo+PiAgICAgICAgIHdyaXRlbF9yZWxheGVk KDB4NDA1MCwgc2RtYS0+cmVncyArIFNETUFfQ0hOMEFERFIpOwo+PiAKPj4gICAgICAgICAvKiBT ZXQgYml0cyBvZiBDT05GSUcgcmVnaXN0ZXIgYnV0IHdpdGggc3RhdGljIGNvbnRleHQgCj4+IHN3 aXRjaGluZyAqLwo+PiAtICAgICAgIC8qIEZJWE1FOiBDaGVjayB3aGV0aGVyIHRvIHNldCBBQ1Ig Yml0IGRlcGVuZGluZyBvbiBjbG9jayAKPj4gcmF0aW9zICovCj4+IC0gICAgICAgd3JpdGVsX3Jl bGF4ZWQoMCwgc2RtYS0+cmVncyArIFNETUFfSF9DT05GSUcpOwo+PiArICAgICAgIGlmIChzZG1h LT5jbGtfcmF0aW8pCj4+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChTRE1BX0hfQ09O RklHX0FDUiwgc2RtYS0+cmVncyArIAo+PiBTRE1BX0hfQ09ORklHKTsKPj4gKyAgICAgICBlbHNl Cj4+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZCgwLCBzZG1hLT5yZWdzICsgU0RNQV9I X0NPTkZJRyk7Cj4+IAo+PiAgICAgICAgIHdyaXRlbF9yZWxheGVkKGNjYl9waHlzLCBzZG1hLT5y ZWdzICsgU0RNQV9IX0MwUFRSKTsKPj4gCj4+IEBAIC0xOTc1LDYgKzE5ODUsOCBAQCBzdGF0aWMg aW50IHNkbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAKPj4gKnBkZXYpCj4+ICAgICAg ICAgaWYgKCFzZG1hKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+IAo+PiAr ICAgICAgIHNkbWEtPmNsa19yYXRpbyA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgImZzbCxy YXRpby0xLTEiKTsKPj4gKwo+PiAgICAgICAgIHNwaW5fbG9ja19pbml0KCZzZG1hLT5jaGFubmVs XzBfbG9jayk7Cj4+IAo+PiAgICAgICAgIHNkbWEtPmRldiA9ICZwZGV2LT5kZXY7Cj4+IC0tCj4+ IDIuMTcuMQo+Pgo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 021CAC676ED for ; Sun, 20 Jan 2019 14:38:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C4EE42085A for ; Sun, 20 Jan 2019 14:38:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=akkea.ca header.i=@akkea.ca header.b="TpEpeNEk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730580AbfATOiN (ORCPT ); Sun, 20 Jan 2019 09:38:13 -0500 Received: from node.akkea.ca ([192.155.83.177]:50632 "EHLO node.akkea.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726693AbfATOiN (ORCPT ); Sun, 20 Jan 2019 09:38:13 -0500 Received: by node.akkea.ca (Postfix, from userid 33) id 12A004E204B; Sun, 20 Jan 2019 14:38:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akkea.ca; s=mail; t=1547995092; bh=lqzT7b3ndhHCCoDCH9ylBv0zUtb2DkeRZ+CEWkdvREI=; h=To:Subject:Date:From:Cc:In-Reply-To:References; b=TpEpeNEkEAIawrV+M9ImxJNBfdfvsUlbPfwa4rhCQv1e/rjj8c/fWXB1ijFPdMNuS ygjKGLBVs7QpLmD/K8pXXL+qMzxfvdhHBR1i1oHjyBfentToWub8nBt0Skx2PfWRH8 SeRAq79KcDh2zOLl5BCwXaYgM15x8wfUJn/GVwJE= To: Daniel Baluta Subject: Re: [PATCH v2 2/3] dma: imx-sdma: add clock ratio 1:1 check X-PHP-Originating-Script: 1000:rcube.php MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Sun, 20 Jan 2019 07:38:12 -0700 From: Angus Ainslie Cc: Vinod Koul , dmaengine@vger.kernel.org, NXP Linux Team , Pengutronix Kernel Team , linux-arm-kernel , Linux Kernel Mailing List In-Reply-To: References: <20190120023150.17138-1-angus@akkea.ca> <20190120023150.17138-3-angus@akkea.ca> Message-ID: <6cbbac1e98b74702fc5a9b915b7630f7@www.akkea.ca> X-Sender: angus@akkea.ca User-Agent: Roundcube Webmail/1.1.3 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel, On 2019-01-20 02:58, Daniel Baluta wrote: > On Sun, Jan 20, 2019 at 4:32 AM Angus Ainslie (Purism) > wrote: >> >> On i.mx8 mscale B0 chip, AHB/SDMA clock ratio 2:1 can't be supportted, >> since SDMA clock ratio has to be increased to 250Mhz, AHB can't reach >> to 500Mhz, so use 1:1 instead. >> >> based on NXP commit MLK-16841-1 > > Hi Angus, > > Thanks for doing this! > > I'm not sure specifying the MLK here helps. I think it would be better > to somehow add the original Signed-off-by and mention that the commit > was pulled from NXP linux-imx tree. If it was exactly the same patch I would have but as I added the lines in sdma_run_channel0 I didn't think it would be right to put signed off by "Robin Gong " as the code isn't what he signed off on. >> >> Signed-off-by: Angus Ainslie (Purism) >> --- >> .../devicetree/bindings/dma/fsl-imx-sdma.txt | 1 + >> drivers/dma/imx-sdma.c | 20 >> +++++++++++++++---- >> 2 files changed, 17 insertions(+), 4 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> index 3c9a57a8443b..17544c1820b7 100644 >> --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> @@ -67,6 +67,7 @@ Optional properties: >> reg is the GPR register offset. >> shift is the bit position inside the GPR register. >> val is the value of the bit (0 or 1). >> +- fsl,ratio-1-1: AHB/SDMA core clock ration 1:1, 2:1 without this. >> >> Examples: >> >> diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c >> index 0b3a67ff8e82..65dada21d3c1 100644 >> --- a/drivers/dma/imx-sdma.c >> +++ b/drivers/dma/imx-sdma.c >> @@ -440,6 +440,8 @@ struct sdma_engine { >> unsigned int irq; >> dma_addr_t bd0_phys; >> struct sdma_buffer_descriptor *bd0; >> + /* clock ratio for AHB:SDMA core. 1:1 is 1, 2:1 is 0*/ >> + bool clk_ratio; >> }; >> >> static int sdma_config_write(struct dma_chan *chan, >> @@ -662,8 +664,14 @@ static int sdma_run_channel0(struct sdma_engine >> *sdma) >> dev_err(sdma->dev, "Timeout waiting for CH0 ready\n"); >> >> /* Set bits of CONFIG register with dynamic context switching >> */ >> - if (readl(sdma->regs + SDMA_H_CONFIG) == 0) >> - writel_relaxed(SDMA_H_CONFIG_CSM, sdma->regs + >> SDMA_H_CONFIG); >> + if (readl(sdma->regs + SDMA_H_CONFIG) == 0) { >> + if (sdma->clk_ratio) >> + reg = SDMA_H_CONFIG_CSM | SDMA_H_CONFIG_ACR; >> + else >> + reg = SDMA_H_CONFIG_CSM; >> + >> + writel_relaxed(reg, sdma->regs + SDMA_H_CONFIG); >> + } >> This is the code that I added out of an over abundance of prudence. Angus >> return ret; >> } >> @@ -1880,8 +1888,10 @@ static int sdma_init(struct sdma_engine *sdma) >> writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR); >> >> /* Set bits of CONFIG register but with static context >> switching */ >> - /* FIXME: Check whether to set ACR bit depending on clock >> ratios */ >> - writel_relaxed(0, sdma->regs + SDMA_H_CONFIG); >> + if (sdma->clk_ratio) >> + writel_relaxed(SDMA_H_CONFIG_ACR, sdma->regs + >> SDMA_H_CONFIG); >> + else >> + writel_relaxed(0, sdma->regs + SDMA_H_CONFIG); >> >> writel_relaxed(ccb_phys, sdma->regs + SDMA_H_C0PTR); >> >> @@ -1975,6 +1985,8 @@ static int sdma_probe(struct platform_device >> *pdev) >> if (!sdma) >> return -ENOMEM; >> >> + sdma->clk_ratio = of_property_read_bool(np, "fsl,ratio-1-1"); >> + >> spin_lock_init(&sdma->channel_0_lock); >> >> sdma->dev = &pdev->dev; >> -- >> 2.17.1 >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5104EC636A2 for ; Sun, 20 Jan 2019 14:38:27 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 19ED12085A for ; Sun, 20 Jan 2019 14:38:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kRrKcikD"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=akkea.ca header.i=@akkea.ca header.b="TpEpeNEk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 19ED12085A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=akkea.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:From:Date: MIME-Version:Subject:To:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QEzYMSN5OzVBq/4IKtyvvvpKgZzJo52uJxbTBtiQgx8=; b=kRrKcikDewS+aRlQ1JWX3BQD2 DHGSHcZCAoxkwpIgH0rIihJ7fBs/uEnBIFj5eEaCMLDjvf1nyXprn107d/HbdK1LCDmllSPZihTNb VMvWMBxLRtV2KomibYRGVipIOMtaQVxJHHpRR2z1QgCOiWJ60ctT/lkijpnfZBvfFzWngQQJNC+mK vq7BC92ftgypXtJIXFDo5kIi7x4yTECxcv9QUKotOyQelg8ceCetS+vMyIw3w34pvZL/RINncJ7F9 TeRQzwg+RmCU5vKF54JxR2mHZ19eWSJMnMQPQ/bRZTB6Qtf+cWciffPMI3hTANzxEBHg2CvYvAli0 x3/9Lkd+w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1glEEx-0002Kx-H3; Sun, 20 Jan 2019 14:38:23 +0000 Received: from node.akkea.ca ([192.155.83.177]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1glEEp-0002K8-Tl for linux-arm-kernel@lists.infradead.org; Sun, 20 Jan 2019 14:38:17 +0000 Received: by node.akkea.ca (Postfix, from userid 33) id 12A004E204B; Sun, 20 Jan 2019 14:38:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akkea.ca; s=mail; t=1547995092; bh=lqzT7b3ndhHCCoDCH9ylBv0zUtb2DkeRZ+CEWkdvREI=; h=To:Subject:Date:From:Cc:In-Reply-To:References; b=TpEpeNEkEAIawrV+M9ImxJNBfdfvsUlbPfwa4rhCQv1e/rjj8c/fWXB1ijFPdMNuS ygjKGLBVs7QpLmD/K8pXXL+qMzxfvdhHBR1i1oHjyBfentToWub8nBt0Skx2PfWRH8 SeRAq79KcDh2zOLl5BCwXaYgM15x8wfUJn/GVwJE= To: Daniel Baluta Subject: Re: [PATCH v2 2/3] dma: imx-sdma: add clock ratio 1:1 check X-PHP-Originating-Script: 1000:rcube.php MIME-Version: 1.0 Date: Sun, 20 Jan 2019 07:38:12 -0700 From: Angus Ainslie In-Reply-To: References: <20190120023150.17138-1-angus@akkea.ca> <20190120023150.17138-3-angus@akkea.ca> Message-ID: <6cbbac1e98b74702fc5a9b915b7630f7@www.akkea.ca> X-Sender: angus@akkea.ca User-Agent: Roundcube Webmail/1.1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190120_063816_017218_DC1B98B3 X-CRM114-Status: GOOD ( 16.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linux Kernel Mailing List , Vinod Koul , NXP Linux Team , Pengutronix Kernel Team , dmaengine@vger.kernel.org, linux-arm-kernel Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Daniel, On 2019-01-20 02:58, Daniel Baluta wrote: > On Sun, Jan 20, 2019 at 4:32 AM Angus Ainslie (Purism) > wrote: >> >> On i.mx8 mscale B0 chip, AHB/SDMA clock ratio 2:1 can't be supportted, >> since SDMA clock ratio has to be increased to 250Mhz, AHB can't reach >> to 500Mhz, so use 1:1 instead. >> >> based on NXP commit MLK-16841-1 > > Hi Angus, > > Thanks for doing this! > > I'm not sure specifying the MLK here helps. I think it would be better > to somehow add the original Signed-off-by and mention that the commit > was pulled from NXP linux-imx tree. If it was exactly the same patch I would have but as I added the lines in sdma_run_channel0 I didn't think it would be right to put signed off by "Robin Gong " as the code isn't what he signed off on. >> >> Signed-off-by: Angus Ainslie (Purism) >> --- >> .../devicetree/bindings/dma/fsl-imx-sdma.txt | 1 + >> drivers/dma/imx-sdma.c | 20 >> +++++++++++++++---- >> 2 files changed, 17 insertions(+), 4 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> index 3c9a57a8443b..17544c1820b7 100644 >> --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt >> @@ -67,6 +67,7 @@ Optional properties: >> reg is the GPR register offset. >> shift is the bit position inside the GPR register. >> val is the value of the bit (0 or 1). >> +- fsl,ratio-1-1: AHB/SDMA core clock ration 1:1, 2:1 without this. >> >> Examples: >> >> diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c >> index 0b3a67ff8e82..65dada21d3c1 100644 >> --- a/drivers/dma/imx-sdma.c >> +++ b/drivers/dma/imx-sdma.c >> @@ -440,6 +440,8 @@ struct sdma_engine { >> unsigned int irq; >> dma_addr_t bd0_phys; >> struct sdma_buffer_descriptor *bd0; >> + /* clock ratio for AHB:SDMA core. 1:1 is 1, 2:1 is 0*/ >> + bool clk_ratio; >> }; >> >> static int sdma_config_write(struct dma_chan *chan, >> @@ -662,8 +664,14 @@ static int sdma_run_channel0(struct sdma_engine >> *sdma) >> dev_err(sdma->dev, "Timeout waiting for CH0 ready\n"); >> >> /* Set bits of CONFIG register with dynamic context switching >> */ >> - if (readl(sdma->regs + SDMA_H_CONFIG) == 0) >> - writel_relaxed(SDMA_H_CONFIG_CSM, sdma->regs + >> SDMA_H_CONFIG); >> + if (readl(sdma->regs + SDMA_H_CONFIG) == 0) { >> + if (sdma->clk_ratio) >> + reg = SDMA_H_CONFIG_CSM | SDMA_H_CONFIG_ACR; >> + else >> + reg = SDMA_H_CONFIG_CSM; >> + >> + writel_relaxed(reg, sdma->regs + SDMA_H_CONFIG); >> + } >> This is the code that I added out of an over abundance of prudence. Angus >> return ret; >> } >> @@ -1880,8 +1888,10 @@ static int sdma_init(struct sdma_engine *sdma) >> writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR); >> >> /* Set bits of CONFIG register but with static context >> switching */ >> - /* FIXME: Check whether to set ACR bit depending on clock >> ratios */ >> - writel_relaxed(0, sdma->regs + SDMA_H_CONFIG); >> + if (sdma->clk_ratio) >> + writel_relaxed(SDMA_H_CONFIG_ACR, sdma->regs + >> SDMA_H_CONFIG); >> + else >> + writel_relaxed(0, sdma->regs + SDMA_H_CONFIG); >> >> writel_relaxed(ccb_phys, sdma->regs + SDMA_H_C0PTR); >> >> @@ -1975,6 +1985,8 @@ static int sdma_probe(struct platform_device >> *pdev) >> if (!sdma) >> return -ENOMEM; >> >> + sdma->clk_ratio = of_property_read_bool(np, "fsl,ratio-1-1"); >> + >> spin_lock_init(&sdma->channel_0_lock); >> >> sdma->dev = &pdev->dev; >> -- >> 2.17.1 >> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel