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: dmaengine: mv_xor_v2: Fix clock resource by adding a register clock From: Gregory CLEMENT Message-Id: <87vaeijw83.fsf@bootlin.com> Date: Tue, 27 Feb 2018 16:19:56 +0100 To: Vinod Koul Cc: dmaengine@vger.kernel.org, Jason Cooper , Andrew Lunn , Sebastian Hesselbarth , Thomas Petazzoni , linux-arm-kernel@lists.infradead.org, Antoine Tenart , =?utf-8?Q?Miqu=C3=A8l?= Raynal , Nadav Haklai , Shadi Ammouri , Omri Itach , Hanna Hawa , Igal Liberman , Marcin Wojtas , Rob Herring List-ID: SGkgVmlub2QsCiAKIE9uIG1hci4sIGbDqXZyLiAyNyAyMDE4LCBWaW5vZCBLb3VsIDx2aW5vZC5r b3VsQGludGVsLmNvbT4gd3JvdGU6Cgo+IFBscyBkbyBDQyBEVCBmb2xrcyBhbmQgUm9iIGZvciBi aW5kaW5ncyB1cGRhdGUKPgo+IE9uIFdlZCwgRmViIDE0LCAyMDE4IGF0IDA1OjI3OjMzUE0gKzAx MDAsIEdyZWdvcnkgQ0xFTUVOVCB3cm90ZToKPj4gT24gdGhlIENQMTEwIGNvbXBvbmVudHMgd2hp YyBhcmUgcHJlc2VudCBvbiB0aGUgQXJtYWRhIDdLLzhLIFNvQyB3ZSBuZWVkCj4KPiAvcy93aGlj L3doaWNoCj4KPj4gdG8gZXhwbGljaXRseSBlbmFibGUgdGhlIHJlZ2lzdGVycyBjbG9jay4gSG93 ZXZlciBpdCBpcyBub3QgbmVlZGVkIGZvcgo+Cj4gL3MvcmVnaXN0ZXJzL3JlZ2lzdGVyCj4KPj4g dGhlIEFQOHh4IGNvbXBvbmVuZXQsIHRoYXQncyB3aHkgdGhpcyBjbG9jayBpcyBvcHRpb25hbC4K Pj4gCj4+IFNpZ25lZC1vZmYtYnk6IEdyZWdvcnkgQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGJv b3RsaW4uY29tPgo+PiAtLS0KPj4gIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9tdi14b3It djIudHh0ICAgICAgICAgIHwgIDYgKysrKystCj4+ICBkcml2ZXJzL2RtYS9tdl94b3JfdjIuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrLS0tLS0KPj4g IDIgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPj4gCj4+ IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZG1hL212LXhv ci12Mi50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZG1hL212LXhvci12 Mi50eHQKPj4gaW5kZXggMjE3YTkwZWFhYmU3Li45YzM4YmJlN2U2ZDcgMTAwNjQ0Cj4+IC0tLSBh L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kbWEvbXYteG9yLXYyLnR4dAo+PiAr KysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZG1hL212LXhvci12Mi50eHQK Pj4gQEAgLTExLDcgKzExLDExIEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6Cj4+ICAgIGludGVycnVw dHMuCj4+ICAKPj4gIE9wdGlvbmFsIHByb3BlcnRpZXM6Cj4+IC0tIGNsb2NrczogT3B0aW9uYWwg cmVmZXJlbmNlIHRvIHRoZSBjbG9jayB1c2VkIGJ5IHRoZSBYT1IgZW5naW5lLgo+PiArLSBjbG9j a3M6IE9wdGlvbmFsIHJlZmVyZW5jZSB0byB0aGUgY2xvY2tzIHVzZWQgYnkgdGhlIFhPUiBlbmdp bmUuCj4+ICstIGNsb2NrLW5hbWVzOiBtYW5kYXRvcnkgaWYgdGhlcmUgaXMgYSBzZWNvbmQgY2xv Y2ssIGluIHRoaXMgY2FzZSB0aGUKPj4gKyAgIG5hbWUgbXVzdCBiZSAiY29yZSIgZm9yIHRoZSBm aXJzdCBjbG9jayBhbmQgInJlZyIgZm9yIHRoZSBzZWNvbmQKPj4gKyAgIG9uZQo+PiArCj4+ICAK Pj4gIEV4YW1wbGU6Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL212X3hvcl92Mi5j IGIvZHJpdmVycy9kbWEvbXZfeG9yX3YyLmMKPj4gaW5kZXggZjY1MmEwZTBmNWEyLi45M2IzZDgw Y2U3MDEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZG1hL212X3hvcl92Mi5jCj4+ICsrKyBiL2Ry aXZlcnMvZG1hL212X3hvcl92Mi5jCj4+IEBAIC0xNjMsNiArMTYzLDcgQEAgc3RydWN0IG12X3hv cl92Ml9kZXZpY2Ugewo+PiAgCXZvaWQgX19pb21lbSAqZG1hX2Jhc2U7Cj4+ICAJdm9pZCBfX2lv bWVtICpnbG9iX2Jhc2U7Cj4+ICAJc3RydWN0IGNsayAqY2xrOwo+PiArCXN0cnVjdCBjbGsgKnJl Z19jbGs7Cj4+ICAJc3RydWN0IHRhc2tsZXRfc3RydWN0IGlycV90YXNrbGV0Owo+PiAgCXN0cnVj dCBsaXN0X2hlYWQgZnJlZV9zd19kZXNjOwo+PiAgCXN0cnVjdCBkbWFfZGV2aWNlIGRtYWRldjsK Pj4gQEAgLTc0OSwxMyArNzUwLDI0IEBAIHN0YXRpYyBpbnQgbXZfeG9yX3YyX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICAJaWYgKHJldCkKPj4gIAkJcmV0dXJuIHJldDsK Pj4gIAo+PiAtCXhvcl9kZXYtPmNsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCBOVUxMKTsK Pj4gLQlpZiAoSVNfRVJSKHhvcl9kZXYtPmNsaykgJiYgUFRSX0VSUih4b3JfZGV2LT5jbGspID09 IC1FUFJPQkVfREVGRVIpCj4+ICsJeG9yX2Rldi0+cmVnX2NsayA9IGRldm1fY2xrX2dldCgmcGRl di0+ZGV2LCAicmVnIik7Cj4KPiBpcyB0aGlzIGFuIGV4aXRpbmcgcHJvcGVydHk/CgpJdCBpcyB0 aGUgbmFtZSBvZiB0aGUgbmV3IG9wdGlvbmFsIGNsb2NrIGRlc2NyaWJlZCBpbiB0aGUgZmlyc3Qg cGFydCBvZgp0aGlzIHBhdGNoLgoKQWJvdXQgdGhlIHR5cG8sIGRvIHlvdSBuZWVkIGEgbmV3IHZl cnNpb24gb3IgZG8geW91IHBsYW4gdG8gZml4IHRoZW0Kd2hpbGUgYXBwbHlpbmcgdGhlIHBhdGNo PwoKVGhhbmtzLAoKR3JlZ29yeQoKCj4KPj4gKwlpZiAoIUlTX0VSUih4b3JfZGV2LT5yZWdfY2xr KSkgewo+PiArCQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoeG9yX2Rldi0+cmVnX2Nsayk7Cj4+ ICsJCWlmIChyZXQpCj4+ICsJCQlyZXR1cm4gcmV0Owo+PiArCX0gZWxzZSBpZiAoUFRSX0VSUih4 b3JfZGV2LT5yZWdfY2xrKSA9PSAtRVBST0JFX0RFRkVSKSB7Cj4+ICAJCXJldHVybiAtRVBST0JF X0RFRkVSOwo+PiArCX0KPj4gKwo+PiArCXhvcl9kZXYtPmNsayA9IGRldm1fY2xrX2dldCgmcGRl di0+ZGV2LCBOVUxMKTsKPj4gKwlpZiAoSVNfRVJSKHhvcl9kZXYtPmNsaykgJiYgUFRSX0VSUih4 b3JfZGV2LT5jbGspID09IC1FUFJPQkVfREVGRVIpIHsKPj4gKwkJcmV0ID0gRVBST0JFX0RFRkVS Owo+PiArCQlnb3RvIGRpc2FibGVfcmVnX2NsazsKPj4gKwl9Cj4+ICAJaWYgKCFJU19FUlIoeG9y X2Rldi0+Y2xrKSkgewo+PiAgCQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoeG9yX2Rldi0+Y2xr KTsKPj4gIAkJaWYgKHJldCkKPj4gLQkJCXJldHVybiByZXQ7Cj4+ICsJCQlnb3RvIGRpc2FibGVf cmVnX2NsazsKPj4gIAl9Cj4+ICAKPj4gIAlyZXQgPSBwbGF0Zm9ybV9tc2lfZG9tYWluX2FsbG9j X2lycXMoJnBkZXYtPmRldiwgMSwKPj4gQEAgLTg2Niw4ICs4NzgsOSBAQCBzdGF0aWMgaW50IG12 X3hvcl92Ml9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiAgZnJlZV9tc2lf aXJxczoKPj4gIAlwbGF0Zm9ybV9tc2lfZG9tYWluX2ZyZWVfaXJxcygmcGRldi0+ZGV2KTsKPj4g IGRpc2FibGVfY2xrOgo+PiAtCWlmICghSVNfRVJSKHhvcl9kZXYtPmNsaykpCj4+IC0JCWNsa19k aXNhYmxlX3VucHJlcGFyZSh4b3JfZGV2LT5jbGspOwo+PiArCWNsa19kaXNhYmxlX3VucHJlcGFy ZSh4b3JfZGV2LT5jbGspOwo+PiArZGlzYWJsZV9yZWdfY2xrOgo+PiArCWNsa19kaXNhYmxlX3Vu cHJlcGFyZSh4b3JfZGV2LT5yZWdfY2xrKTsKPj4gIAlyZXR1cm4gcmV0Owo+PiAgfQo+PiAgCj4+ IC0tIAo+PiAyLjE1LjEKPj4gCj4KPiAtLSAKPiB+Vmlub2QKPiAtLQo+IFRvIHVuc3Vic2NyaWJl IGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBkbWFlbmdpbmUiIGlu Cj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKPiBN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: gregory.clement@bootlin.com (Gregory CLEMENT) Date: Tue, 27 Feb 2018 16:19:56 +0100 Subject: [PATCH] dmaengine: mv_xor_v2: Fix clock resource by adding a register clock In-Reply-To: <20180227151511.GC15443@localhost> (Vinod Koul's message of "Tue, 27 Feb 2018 20:45:11 +0530") References: <20180214162733.4591-1-gregory.clement@bootlin.com> <20180227151511.GC15443@localhost> Message-ID: <87vaeijw83.fsf@bootlin.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Vinod, On mar., f?vr. 27 2018, Vinod Koul wrote: > Pls do CC DT folks and Rob for bindings update > > On Wed, Feb 14, 2018 at 05:27:33PM +0100, Gregory CLEMENT wrote: >> On the CP110 components whic are present on the Armada 7K/8K SoC we need > > /s/whic/which > >> to explicitly enable the registers clock. However it is not needed for > > /s/registers/register > >> the AP8xx componenet, that's why this clock is optional. >> >> Signed-off-by: Gregory CLEMENT >> --- >> .../devicetree/bindings/dma/mv-xor-v2.txt | 6 +++++- >> drivers/dma/mv_xor_v2.c | 23 +++++++++++++++++----- >> 2 files changed, 23 insertions(+), 6 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/dma/mv-xor-v2.txt b/Documentation/devicetree/bindings/dma/mv-xor-v2.txt >> index 217a90eaabe7..9c38bbe7e6d7 100644 >> --- a/Documentation/devicetree/bindings/dma/mv-xor-v2.txt >> +++ b/Documentation/devicetree/bindings/dma/mv-xor-v2.txt >> @@ -11,7 +11,11 @@ Required properties: >> interrupts. >> >> Optional properties: >> -- clocks: Optional reference to the clock used by the XOR engine. >> +- clocks: Optional reference to the clocks used by the XOR engine. >> +- clock-names: mandatory if there is a second clock, in this case the >> + name must be "core" for the first clock and "reg" for the second >> + one >> + >> >> Example: >> >> diff --git a/drivers/dma/mv_xor_v2.c b/drivers/dma/mv_xor_v2.c >> index f652a0e0f5a2..93b3d80ce701 100644 >> --- a/drivers/dma/mv_xor_v2.c >> +++ b/drivers/dma/mv_xor_v2.c >> @@ -163,6 +163,7 @@ struct mv_xor_v2_device { >> void __iomem *dma_base; >> void __iomem *glob_base; >> struct clk *clk; >> + struct clk *reg_clk; >> struct tasklet_struct irq_tasklet; >> struct list_head free_sw_desc; >> struct dma_device dmadev; >> @@ -749,13 +750,24 @@ static int mv_xor_v2_probe(struct platform_device *pdev) >> if (ret) >> return ret; >> >> - xor_dev->clk = devm_clk_get(&pdev->dev, NULL); >> - if (IS_ERR(xor_dev->clk) && PTR_ERR(xor_dev->clk) == -EPROBE_DEFER) >> + xor_dev->reg_clk = devm_clk_get(&pdev->dev, "reg"); > > is this an exiting property? It is the name of the new optional clock described in the first part of this patch. About the typo, do you need a new version or do you plan to fix them while applying the patch? Thanks, Gregory > >> + if (!IS_ERR(xor_dev->reg_clk)) { >> + ret = clk_prepare_enable(xor_dev->reg_clk); >> + if (ret) >> + return ret; >> + } else if (PTR_ERR(xor_dev->reg_clk) == -EPROBE_DEFER) { >> return -EPROBE_DEFER; >> + } >> + >> + xor_dev->clk = devm_clk_get(&pdev->dev, NULL); >> + if (IS_ERR(xor_dev->clk) && PTR_ERR(xor_dev->clk) == -EPROBE_DEFER) { >> + ret = EPROBE_DEFER; >> + goto disable_reg_clk; >> + } >> if (!IS_ERR(xor_dev->clk)) { >> ret = clk_prepare_enable(xor_dev->clk); >> if (ret) >> - return ret; >> + goto disable_reg_clk; >> } >> >> ret = platform_msi_domain_alloc_irqs(&pdev->dev, 1, >> @@ -866,8 +878,9 @@ static int mv_xor_v2_probe(struct platform_device *pdev) >> free_msi_irqs: >> platform_msi_domain_free_irqs(&pdev->dev); >> disable_clk: >> - if (!IS_ERR(xor_dev->clk)) >> - clk_disable_unprepare(xor_dev->clk); >> + clk_disable_unprepare(xor_dev->clk); >> +disable_reg_clk: >> + clk_disable_unprepare(xor_dev->reg_clk); >> return ret; >> } >> >> -- >> 2.15.1 >> > > -- > ~Vinod > -- > To unsubscribe from this list: send the line "unsubscribe dmaengine" in > the body of a message to majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Gregory Clement, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering http://bootlin.com