From mboxrd@z Thu Jan 1 00:00:00 1970 From: Will Deacon Subject: Re: [PATCH v18 1/5] iommu/arm-smmu: Add pm_runtime/sleep ops Date: Fri, 30 Nov 2018 18:15:37 +0000 Message-ID: <20181130181536.GA15274@arm.com> References: <20181127101145.7682-1-vivek.gautam@codeaurora.org> <20181127101145.7682-2-vivek.gautam@codeaurora.org> <154342225921.88331.14467967828250776155@swboyd.mtv.corp.google.com> <0d76b669-6c4f-7c3b-50a1-084201f2c07a@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Vivek Gautam Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Linux PM , sboyd-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-arm-msm , Joerg Roedel , "Rafael J. Wysocki" , open list , "list-Y9sIeH5OGRo@public.gmane.org:IOMMU DRIVERS , Joerg Roedel , " , robh+dt , freedreno , Robin Murphy List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBOb3YgMjksIDIwMTggYXQgMDg6MjU6MjBQTSArMDUzMCwgVml2ZWsgR2F1dGFtIHdy b3RlOgo+IE9uIFdlZCwgTm92IDI4LCAyMDE4IGF0IDEwOjA3IFBNIFJvYmluIE11cnBoeSA8cm9i aW4ubXVycGh5QGFybS5jb20+IHdyb3RlOgo+ID4KPiA+IE9uIDI4LzExLzIwMTggMTY6MjQsIFN0 ZXBoZW4gQm95ZCB3cm90ZToKPiA+ID4gUXVvdGluZyBWaXZlayBHYXV0YW0gKDIwMTgtMTEtMjcg MDI6MTE6NDEpCj4gPiA+PiBAQCAtMTk2Niw2ICsxOTcwLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIGFybV9zbW11X29mX21hdGNoW10gPSB7Cj4gPiA+PiAgIH07Cj4gPiA+ PiAgIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFybV9zbW11X29mX21hdGNoKTsKPiA+ID4+Cj4g PiA+PiArc3RhdGljIHZvaWQgYXJtX3NtbXVfZmlsbF9jbGtfZGF0YShzdHJ1Y3QgYXJtX3NtbXVf ZGV2aWNlICpzbW11LAo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICogY29uc3QgKmNsa3MpCj4gPiA+PiArewo+ID4gPj4gKyAgICAgICBpbnQgaTsK PiA+ID4+ICsKPiA+ID4+ICsgICAgICAgaWYgKHNtbXUtPm51bV9jbGtzIDwgMSkKPiA+ID4+ICsg ICAgICAgICAgICAgICByZXR1cm47Cj4gPiA+PiArCj4gPiA+PiArICAgICAgIHNtbXUtPmNsa3Mg PSBkZXZtX2tjYWxsb2Moc21tdS0+ZGV2LCBzbW11LT5udW1fY2xrcywKPiA+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKnNtbXUtPmNsa3MpLCBHRlBfS0VSTkVM KTsKPiA+ID4+ICsgICAgICAgaWYgKCFzbW11LT5jbGtzKQo+ID4gPj4gKyAgICAgICAgICAgICAg IHJldHVybjsKPiA+ID4+ICsKPiA+ID4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IHNtbXUtPm51 bV9jbGtzOyBpKyspCj4gPiA+PiArICAgICAgICAgICAgICAgc21tdS0+Y2xrc1tpXS5pZCA9IGNs a3NbaV07Cj4gPiA+Cj4gPiA+IElzIHRoaXMgY2xrX2J1bGtfZ2V0X2FsbCgpPwo+IAo+IEZyb20g d2hhdCBJIHJlbWVtYmVyLCBhbmQgbm93IEkgY291bGQgZ28gYmFjayB0byB2NyBhbmQgY2hlY2sg WzFdLCB3ZSBwYXJrZWQKPiBjbGtfYnVsa19nZXQgb3V0IG9mIE9GJ3Mgc29sZSBwdXJ2aWV3IGFz IHdlIGFsc28gaGF2ZQo+IGFybV9zbW11X2RldmljZV9hY3BpX3Byb2JlKCkgYmVzaWRlcyBhcm1f c21tdV9kZXZpY2VfZHRfcHJvYmUoKS4KPiAKPiBhcm1fc21tdV9kZXZpY2VfZHRfcHJvYmUoKSBj b3VsZCBnZXQgdGhlIGNsb2NrcyBmcm9tIGR0IGFuZCBmaWxsIGluCj4gdGhlIGNsb2NrIGJ1bGsg ZGF0YSwgYW5kCj4gc2ltaWxhcmx5LCBhcm1fc21tdV9kZXZpY2VfYWNwaV9wcm9iZSgpIGNvdWxk IGZpbGwgdGhlIGNsb2NrIGJ1bGsgZGF0YQo+IGJ5IGdldHRpbmcgaXQgZnJvbSBBQ1BJLgo+IAo+ IGNsa19idWxrX2dldF9hbGwoKSBzZWVtcyBsaWtlIGdvaW5nIG9ubHkgdGhlIE9GIHdheS4KPiBJ cyB0aGVyZSBhbm90aGVyIHdheSBoZXJlIHRvIGhhdmUgc29tZXRoaW5nIGNvbW1vbiBiZXR3ZWVu IEFDUEkKPiBhbmQgT0YsIGFuZCB0aGVuIGRvIHRoZSBjbGtfYnVsa19nZXQ/CgpJJ2Qgc2F5IGp1 c3QgZ28gd2l0aCBjbGtfYnVsa19nZXRfYWxsKCkgYW5kIGlmIHNvbWVib2R5IHJlYWxseSB3YW50 cyB0bwptZXNzIHdpdGggdGhlIFNNTVUgY2xvY2tzIG9uIGEgc3lzdGVtIGJvb3RlZCB2aWEgQUNQ SSwgdGhlbiBpdCdzIHRoZWlyCnByb2JsZW0gdG8gc29sdmUuIE15IHVuZGVyc3RhbmRpbmcgaXMg dGhhdCB0aGUgZGVzaWduIG9mIElPUlQgbWFrZXMgdGhpcwpuZXh0IHRvIGltcG9zc2libGUgdG8g c29sdmUgYW55d2F5LCBiZWNhdXNlIGEgc3RhdGljIHRhYmxlIGlzIHVzZWQgYW5kCnRoZXJlZm9y ZSB3ZSdyZSB1bmFibGUgdG8gcnVuIHdoYXRldmVyIEFTTCBtZXRob2RzIG5lZWQgdG8gYmUgaW52 b2tlZCB0bwptZXNzIHdpdGggdGhlIGNsb2Nrcy4KCldpbGwKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg== 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=-2.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT 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 C292CC04EB8 for ; Fri, 30 Nov 2018 18:15:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 975CA20834 for ; Fri, 30 Nov 2018 18:15:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 975CA20834 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726629AbeLAFZ0 (ORCPT ); Sat, 1 Dec 2018 00:25:26 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:34176 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725893AbeLAFZZ (ORCPT ); Sat, 1 Dec 2018 00:25:25 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B1CD0165C; Fri, 30 Nov 2018 10:15:18 -0800 (PST) Received: from edgewater-inn.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7E8AA3F575; Fri, 30 Nov 2018 10:15:18 -0800 (PST) Received: by edgewater-inn.cambridge.arm.com (Postfix, from userid 1000) id 5D94B1AE0FA2; Fri, 30 Nov 2018 18:15:37 +0000 (GMT) Date: Fri, 30 Nov 2018 18:15:37 +0000 From: Will Deacon To: Vivek Gautam Cc: Robin Murphy , sboyd@kernel.org, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , Joerg Roedel , robh+dt , Mark Rutland , Linux PM , "Rafael J. Wysocki" , open list , alex.williamson@redhat.com, linux-arm-msm , freedreno Subject: Re: [PATCH v18 1/5] iommu/arm-smmu: Add pm_runtime/sleep ops Message-ID: <20181130181536.GA15274@arm.com> References: <20181127101145.7682-1-vivek.gautam@codeaurora.org> <20181127101145.7682-2-vivek.gautam@codeaurora.org> <154342225921.88331.14467967828250776155@swboyd.mtv.corp.google.com> <0d76b669-6c4f-7c3b-50a1-084201f2c07a@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 29, 2018 at 08:25:20PM +0530, Vivek Gautam wrote: > On Wed, Nov 28, 2018 at 10:07 PM Robin Murphy wrote: > > > > On 28/11/2018 16:24, Stephen Boyd wrote: > > > Quoting Vivek Gautam (2018-11-27 02:11:41) > > >> @@ -1966,6 +1970,23 @@ static const struct of_device_id arm_smmu_of_match[] = { > > >> }; > > >> MODULE_DEVICE_TABLE(of, arm_smmu_of_match); > > >> > > >> +static void arm_smmu_fill_clk_data(struct arm_smmu_device *smmu, > > >> + const char * const *clks) > > >> +{ > > >> + int i; > > >> + > > >> + if (smmu->num_clks < 1) > > >> + return; > > >> + > > >> + smmu->clks = devm_kcalloc(smmu->dev, smmu->num_clks, > > >> + sizeof(*smmu->clks), GFP_KERNEL); > > >> + if (!smmu->clks) > > >> + return; > > >> + > > >> + for (i = 0; i < smmu->num_clks; i++) > > >> + smmu->clks[i].id = clks[i]; > > > > > > Is this clk_bulk_get_all()? > > From what I remember, and now I could go back to v7 and check [1], we parked > clk_bulk_get out of OF's sole purview as we also have > arm_smmu_device_acpi_probe() besides arm_smmu_device_dt_probe(). > > arm_smmu_device_dt_probe() could get the clocks from dt and fill in > the clock bulk data, and > similarly, arm_smmu_device_acpi_probe() could fill the clock bulk data > by getting it from ACPI. > > clk_bulk_get_all() seems like going only the OF way. > Is there another way here to have something common between ACPI > and OF, and then do the clk_bulk_get? I'd say just go with clk_bulk_get_all() and if somebody really wants to mess with the SMMU clocks on a system booted via ACPI, then it's their problem to solve. My understanding is that the design of IORT makes this next to impossible to solve anyway, because a static table is used and therefore we're unable to run whatever ASL methods need to be invoked to mess with the clocks. Will