From mboxrd@z Thu Jan 1 00:00:00 1970 From: miquel.raynal@bootlin.com (Miquel Raynal) Date: Tue, 2 Oct 2018 10:13:41 +0200 Subject: [PATCH v6 06/14] irqchip/irq-mvebu-icu: support ICU subnodes In-Reply-To: <86k1n1vcgb.wl-marc.zyngier@arm.com> References: <20181001141358.31508-1-miquel.raynal@bootlin.com> <20181001141358.31508-7-miquel.raynal@bootlin.com> <86k1n1vcgb.wl-marc.zyngier@arm.com> Message-ID: <20181002101341.1d3442dd@xps13> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Marc, Marc Zyngier wrote on Mon, 01 Oct 2018 17:49:56 +0100: > On Mon, 01 Oct 2018 15:13:50 +0100, > Miquel Raynal wrote: > > > > The ICU can handle several type of interrupt, each of them being handled > > differently on AP side. On CP side, the ICU should be able to make the > > distinction between each interrupt group by pointing to the right parent. > > > > This is done through the introduction of new bindings, presenting the ICU > > node as the parent of multiple ICU sub-nodes, each of them being an > > interrupt type with a different interrupt parent. ICU interrupt 'clients' > > now directly point to the right sub-node, avoiding the need for the extra > > ICU_GRP_* parameter. > > > > ICU subnodes are probed automatically with devm_platform_populate(). If > > the node as no child, the probe function for NSRs will still be called > > 'manually' in order to preserve backward compatibility with DT using the > > old binding. > > > > Signed-off-by: Miquel Raynal > > --- > > drivers/irqchip/irq-mvebu-icu.c | 77 ++++++++++++++++++++++++++------- > > 1 file changed, 61 insertions(+), 16 deletions(-) > > > > diff --git a/drivers/irqchip/irq-mvebu-icu.c b/drivers/irqchip/irq-mvebu-icu.c > > index d09f220a2701..c79d2cb787a0 100644 > > --- a/drivers/irqchip/irq-mvebu-icu.c > > +++ b/drivers/irqchip/irq-mvebu-icu.c > > [...] > > > +static const struct of_device_id mvebu_icu_subset_of_match[] = { > > + { > > + .compatible = "marvell,cp110-icu-nsr", > > + }, > > + {}, > > +}; > > + > > static int mvebu_icu_subset_probe(struct platform_device *pdev) > > { > > struct device_node *msi_parent_dn; > > @@ -210,7 +224,14 @@ static int mvebu_icu_subset_probe(struct platform_device *pdev) > > struct irq_domain *irq_domain; > > struct mvebu_icu *icu; > > > > - icu = dev_get_drvdata(dev); > > + /* > > + * Device data being populated means we are using the legacy bindings. > > + * Using the parent device data means we are using the new bindings. > > + */ > > + if (dev_get_drvdata(dev)) > > + icu = dev_get_drvdata(dev); > > + else > > + icu = dev_get_drvdata(dev->parent); > > We now have a static key to determine which binding to use, and we > should certainly have set it correctly by the time we start end up > here. Why aren't you using it? > Sure, this condition now is checking the static key. Thanks, Miqu?l From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Subject: Re: [PATCH v6 06/14] irqchip/irq-mvebu-icu: support ICU subnodes Date: Tue, 2 Oct 2018 10:13:41 +0200 Message-ID: <20181002101341.1d3442dd@xps13> References: <20181001141358.31508-1-miquel.raynal@bootlin.com> <20181001141358.31508-7-miquel.raynal@bootlin.com> <86k1n1vcgb.wl-marc.zyngier@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <86k1n1vcgb.wl-marc.zyngier@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Marc Zyngier Cc: Mark Rutland , Andrew Lunn , Jason Cooper , devicetree@vger.kernel.org, Antoine Tenart , Catalin Marinas , Gregory Clement , Haim Boot , Will Deacon , Maxime Chevallier , Nadav Haklai , Rob Herring , Thomas Petazzoni , Thomas Gleixner , Hanna Hawa , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth List-Id: devicetree@vger.kernel.org SGkgTWFyYywKCk1hcmMgWnluZ2llciA8bWFyYy56eW5naWVyQGFybS5jb20+IHdyb3RlIG9uIE1v biwgMDEgT2N0IDIwMTggMTc6NDk6NTYKKzAxMDA6Cgo+IE9uIE1vbiwgMDEgT2N0IDIwMTggMTU6 MTM6NTAgKzAxMDAsCj4gTWlxdWVsIFJheW5hbCA8bWlxdWVsLnJheW5hbEBib290bGluLmNvbT4g d3JvdGU6Cj4gPiAKPiA+IFRoZSBJQ1UgY2FuIGhhbmRsZSBzZXZlcmFsIHR5cGUgb2YgaW50ZXJy dXB0LCBlYWNoIG9mIHRoZW0gYmVpbmcgaGFuZGxlZAo+ID4gZGlmZmVyZW50bHkgb24gQVAgc2lk ZS4gT24gQ1Agc2lkZSwgdGhlIElDVSBzaG91bGQgYmUgYWJsZSB0byBtYWtlIHRoZQo+ID4gZGlz dGluY3Rpb24gYmV0d2VlbiBlYWNoIGludGVycnVwdCBncm91cCBieSBwb2ludGluZyB0byB0aGUg cmlnaHQgcGFyZW50Lgo+ID4gCj4gPiBUaGlzIGlzIGRvbmUgdGhyb3VnaCB0aGUgaW50cm9kdWN0 aW9uIG9mIG5ldyBiaW5kaW5ncywgcHJlc2VudGluZyB0aGUgSUNVCj4gPiBub2RlIGFzIHRoZSBw YXJlbnQgb2YgbXVsdGlwbGUgSUNVIHN1Yi1ub2RlcywgZWFjaCBvZiB0aGVtIGJlaW5nIGFuCj4g PiBpbnRlcnJ1cHQgdHlwZSB3aXRoIGEgZGlmZmVyZW50IGludGVycnVwdCBwYXJlbnQuIElDVSBp bnRlcnJ1cHQgJ2NsaWVudHMnCj4gPiBub3cgZGlyZWN0bHkgcG9pbnQgdG8gdGhlIHJpZ2h0IHN1 Yi1ub2RlLCBhdm9pZGluZyB0aGUgbmVlZCBmb3IgdGhlIGV4dHJhCj4gPiBJQ1VfR1JQXyogcGFy YW1ldGVyLgo+ID4gCj4gPiBJQ1Ugc3Vibm9kZXMgYXJlIHByb2JlZCBhdXRvbWF0aWNhbGx5IHdp dGggZGV2bV9wbGF0Zm9ybV9wb3B1bGF0ZSgpLiBJZgo+ID4gdGhlIG5vZGUgYXMgbm8gY2hpbGQs IHRoZSBwcm9iZSBmdW5jdGlvbiBmb3IgTlNScyB3aWxsIHN0aWxsIGJlIGNhbGxlZAo+ID4gJ21h bnVhbGx5JyBpbiBvcmRlciB0byBwcmVzZXJ2ZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGgg RFQgdXNpbmcgdGhlCj4gPiBvbGQgYmluZGluZy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogTWlx dWVsIFJheW5hbCA8bWlxdWVsLnJheW5hbEBib290bGluLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvaXJxY2hpcC9pcnEtbXZlYnUtaWN1LmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRp b25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lycWNoaXAvaXJxLW12ZWJ1LWlj dS5jIGIvZHJpdmVycy9pcnFjaGlwL2lycS1tdmVidS1pY3UuYwo+ID4gaW5kZXggZDA5ZjIyMGEy NzAxLi5jNzlkMmNiNzg3YTAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2lycWNoaXAvaXJxLW12 ZWJ1LWljdS5jCj4gPiArKysgYi9kcml2ZXJzL2lycWNoaXAvaXJxLW12ZWJ1LWljdS5jICAKPiAK PiBbLi4uXQo+IAo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ZWJ1X2lj dV9zdWJzZXRfb2ZfbWF0Y2hbXSA9IHsKPiA+ICsJewo+ID4gKwkJLmNvbXBhdGlibGUgPSAibWFy dmVsbCxjcDExMC1pY3UtbnNyIiwKPiA+ICsJfSwKPiA+ICsJe30sCj4gPiArfTsKPiA+ICsKPiA+ ICBzdGF0aWMgaW50IG12ZWJ1X2ljdV9zdWJzZXRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbXNpX3BhcmVudF9kbjsK PiA+IEBAIC0yMTAsNyArMjI0LDE0IEBAIHN0YXRpYyBpbnQgbXZlYnVfaWN1X3N1YnNldF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gIAlzdHJ1Y3QgaXJxX2RvbWFpbiAq aXJxX2RvbWFpbjsKPiA+ICAJc3RydWN0IG12ZWJ1X2ljdSAqaWN1Owo+ID4gIAo+ID4gLQlpY3Ug PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiA+ICsJLyoKPiA+ICsJICogRGV2aWNlIGRhdGEgYmVp bmcgcG9wdWxhdGVkIG1lYW5zIHdlIGFyZSB1c2luZyB0aGUgbGVnYWN5IGJpbmRpbmdzLgo+ID4g KwkgKiBVc2luZyB0aGUgcGFyZW50IGRldmljZSBkYXRhIG1lYW5zIHdlIGFyZSB1c2luZyB0aGUg bmV3IGJpbmRpbmdzLgo+ID4gKwkgKi8KPiA+ICsJaWYgKGRldl9nZXRfZHJ2ZGF0YShkZXYpKQo+ ID4gKwkJaWN1ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiArCWVsc2UKPiA+ICsJCWljdSA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYtPnBhcmVudCk7ICAKPiAKPiBXZSBub3cgaGF2ZSBhIHN0YXRp YyBrZXkgdG8gZGV0ZXJtaW5lIHdoaWNoIGJpbmRpbmcgdG8gdXNlLCBhbmQgd2UKPiBzaG91bGQg Y2VydGFpbmx5IGhhdmUgc2V0IGl0IGNvcnJlY3RseSBieSB0aGUgdGltZSB3ZSBzdGFydCBlbmQg dXAKPiBoZXJlLiBXaHkgYXJlbid0IHlvdSB1c2luZyBpdD8KPiAKClN1cmUsIHRoaXMgY29uZGl0 aW9uIG5vdyBpcyBjaGVja2luZyB0aGUgc3RhdGljIGtleS4KClRoYW5rcywKTWlxdcOobAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=