From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Subject: Re: [PATCH v3 06/17] irqchip/irq-mvebu-icu: switch to regmap Date: Fri, 29 Jun 2018 17:27:51 +0200 Message-ID: <20180629172751.7404a531@xps13> References: <20180622151432.1566-1-miquel.raynal@bootlin.com> <20180622151432.1566-7-miquel.raynal@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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+IHdyb3RlIG9uIFRo dSwgMjggSnVuIDIwMTggMTM6MDU6MDUKKzAxMDA6Cgo+IE9uIDIyLzA2LzE4IDE2OjE0LCBNaXF1 ZWwgUmF5bmFsIHdyb3RlOgo+ID4gQmVmb3JlIHNwbGl0dGluZyB0aGUgY29kZSB0byBzdXBwb3J0 IG11bHRpcGxlIHBsYXRmb3JtIGRldmljZXMgdG8KPiA+IGJlIHByb2JlZCAob25lIGZvciB0aGUg SUNVLCBvbmUgcGVyIGludGVycnVwdCBncm91cCksIGxldCdzIHN3aXRjaCB0bwo+ID4gcmVnbWFw IGZpcnN0IGJ5IGNyZWF0aW5nIG9uZSBpbiB0aGUgLT5wcm9iZSgpLiAgCj4gCj4gV2hhdCdzIHRo ZSBiZW5lZml0IG9mIGRvaW5nIHNvPyBJIGFzc3VtZSB0aGF0IGhhcyB0byBkbyB3aXRoIHN1cHBv cnRpbmcKPiBtdWx0aXBsZSBkZXZpY2VzIHRoYXQgc2hhcmUgYW4gTU1JTyByYW5nZT8KClllcywg dGhlIElDVSBzdWJub2RlcyB3aWxsIHNoYXJlIHRoZSBzYW1lIE1NSU8gcmFuZ2UuCgo+IAo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNaXF1ZWwgUmF5bmFsIDxtaXF1ZWwucmF5bmFsQGJvb3RsaW4u Y29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9pcnFjaGlwL2lycS1tdmVidS1pY3UuYyB8IDQ1ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5n ZWQsIDMwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pcnFjaGlwL2lycS1tdmVidS1pY3UuYyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEt bXZlYnUtaWN1LmMKPiA+IGluZGV4IDBmMjY1NWQ3ZjE5ZS4uMzY5NGMwZDczYzBkIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9pcnFjaGlwL2lycS1tdmVidS1pY3UuYwo+ID4gKysrIGIvZHJpdmVy cy9pcnFjaGlwL2lycS1tdmVidS1pY3UuYwo+ID4gQEAgLTE4LDYgKzE4LDggQEAKPiA+ICAjaW5j bHVkZSA8bGludXgvb2ZfaXJxLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+ Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4gKyNpbmNsdWRlIDxs aW51eC9yZWdtYXAuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgo+ID4gIAo+ ID4gICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxlci9tdmVidS1pY3Uu aD4KPiA+ICAKPiA+IEBAIC0zOCw3ICs0MCw3IEBACj4gPiAgCj4gPiAgc3RydWN0IG12ZWJ1X2lj dSB7Cj4gPiAgCXN0cnVjdCBpcnFfY2hpcCBpcnFfY2hpcDsKPiA+IC0Jdm9pZCBfX2lvbWVtICpi YXNlOwo+ID4gKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cj4gPiAgCXN0cnVjdCBpcnFfZG9tYWlu ICpkb21haW47Cj4gPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPiA+ICAJYXRvbWljX3QgaW5pdGlh bGl6ZWQ7Cj4gPiBAQCAtNTYsMTAgKzU4LDEwIEBAIHN0YXRpYyB2b2lkIG12ZWJ1X2ljdV9pbml0 KHN0cnVjdCBtdmVidV9pY3UgKmljdSwgc3RydWN0IG1zaV9tc2cgKm1zZykKPiA+ICAJCXJldHVy bjsKPiA+ICAKPiA+ICAJLyogU2V0IENsZWFyL1NldCBJQ1UgU1BJIG1lc3NhZ2UgYWRkcmVzcyBp biBBUCAqLwo+ID4gLQl3cml0ZWxfcmVsYXhlZChtc2dbMF0uYWRkcmVzc19oaSwgaWN1LT5iYXNl ICsgSUNVX1NFVFNQSV9OU1JfQUgpOwo+ID4gLQl3cml0ZWxfcmVsYXhlZChtc2dbMF0uYWRkcmVz c19sbywgaWN1LT5iYXNlICsgSUNVX1NFVFNQSV9OU1JfQUwpOwo+ID4gLQl3cml0ZWxfcmVsYXhl ZChtc2dbMV0uYWRkcmVzc19oaSwgaWN1LT5iYXNlICsgSUNVX0NMUlNQSV9OU1JfQUgpOwo+ID4g LQl3cml0ZWxfcmVsYXhlZChtc2dbMV0uYWRkcmVzc19sbywgaWN1LT5iYXNlICsgSUNVX0NMUlNQ SV9OU1JfQUwpOwo+ID4gKwlyZWdtYXBfd3JpdGUoaWN1LT5yZWdtYXAsIElDVV9TRVRTUElfTlNS X0FILCBtc2dbMF0uYWRkcmVzc19oaSk7Cj4gPiArCXJlZ21hcF93cml0ZShpY3UtPnJlZ21hcCwg SUNVX1NFVFNQSV9OU1JfQUwsIG1zZ1swXS5hZGRyZXNzX2xvKTsKPiA+ICsJcmVnbWFwX3dyaXRl KGljdS0+cmVnbWFwLCBJQ1VfQ0xSU1BJX05TUl9BSCwgbXNnWzFdLmFkZHJlc3NfaGkpOwo+ID4g KwlyZWdtYXBfd3JpdGUoaWN1LT5yZWdtYXAsIElDVV9DTFJTUElfTlNSX0FMLCBtc2dbMV0uYWRk cmVzc19sbyk7ICAKPiAKPiBJc24ndCB0aGlzIGEgY2hhbmdlIGluIHRoZSB3YXkgd2Ugd3JpdGUg dGhpbmdzIHRvIHRoZSBNTUlPIHJlZ2lzdGVycz8KPiBZb3UncmUgbm93IHRyYWRpbmcgYSB3cml0 ZWxfcmVsYXhlZCBmb3IgYSB3cml0ZWwsIHBsdXMgc29tZSBsb2NraW5nLi4uCgpJcyB0aGUgIndy aXRlbF9yZWxheGVkIiAtPiAid3JpdGVsIiB0aGluZyByZWFsbHkgYW4gaXNzdWU/Cgo+IAo+IFRh bGtpbmcgYWJvdXQgd2hpY2g6IEFyZSB5b3UgYWx3YXlzIGluIGEgY29udGV4dCB3aGVyZSB5b3Ug Y2FuIHRha2UgdGhhdAo+IGxvY2s/IFRoZSBiaXQgb2YgZG9jdW1lbnRhdGlvbiBJJ3ZlIGp1c3Qg cmVhZCBzZWVtcyB0byBpbXBseSB0aGF0IHRoZQo+IGRlZmF1bHQgbG9jayBpcyBhIG11dGV4LiBJ cyB0aGF0IGFsd2F5cyBzYWZlPyBNeSBndWVzcyBpcyB0aGF0IGl0IGlzbid0LAo+IGFuZCBhbnkg Y2FsbGJhY2sgdGhhdCBjYW4gZW5kLXVwIGhlcmUgYWZ0ZXIgaGF2aW5nIHRha2VuIHNvbWV0aGlu ZyBsaWtlCj4gdGhlIGRlc2MgbG9jayBpcyBnb2luZyB0byBibG93IGluIHlvdXIgZmFjZS4KPiAK PiBIYXZlIHlvdSB0cmllZCBsb2NrZGVwPwoKSnVzdCBkaWQgLS0gdGhhbmtzIGZvciBwb2ludGlu ZyBpdCwgaXQgZmFpbGVkIG9uY2UgdGhlIG92ZXJoZWF0CmludGVycnVwdCBmaXJlZC4gSSdtIG5v dCBzdXJlIGlmIGl0IGlzIGJlY2F1c2Ugb2YgdGhlIHJlZ21hcC1sb2NraW5nCm1lY2hhbmlzbS4g VGhlcmUgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZml4IHRoZXJlLCBidXQgSSBkb24ndCBr bm93CndoYXQgZm9yIG5vdzsgSSdsbCBjb21lIGJhY2sgb24gaXQuCgpbZm9yIHJlZmVyZW5jZTog bG9ncyBiZWxvd10KClRoYW5rcywKTWlxdcOobAoKLS0tClsgICA5MS4xMjg2MTVdIApbICAgOTEu MTMwMTIwXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbICAgOTEuMTM0NDA4XSBX QVJOSU5HOiBpbmNvbnNpc3RlbnQgbG9jayBzdGF0ZQpbICAgOTEuMTM4Njk4XSA0LjE4LjAtcmMx LTAwMDQ3LWc3ZjdjODA1YzJiNjktZGlydHkgIzE1ODAgTm90IHRhaW50ZWQKWyAgIDkxLjE0NDkw NV0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWyAgIDkxLjE0OTE5M10gaW5jb25z aXN0ZW50IHtIQVJESVJRLU9OLVd9IC0+IHtJTi1IQVJESVJRLVd9IHVzYWdlLgpbICAgOTEuMTU1 MjI3XSBzd2FwcGVyLzAvMCBbSEMxWzFdOlNDMFswXTpIRTA6U0UxXSB0YWtlczoKWyAgIDkxLjE2 MDM4OF0gKF9fX19wdHJ2YWxfX19fKSAoJnR6LT5sb2NrKXs/LisufSwgYXQ6IHRoZXJtYWxfem9u ZV9nZXRfdGVtcCsweDYwLzB4MTU4ClsgICA5MS4xNjgxODZdIHtIQVJESVJRLU9OLVd9IHN0YXRl IHdhcyByZWdpc3RlcmVkIGF0OgpbICAgOTEuMTczMDg5XSAgIGxvY2tfYWNxdWlyZSsweDQ0LzB4 NjAKWyAgIDkxLjE3NjY4M10gICBfX211dGV4X2xvY2srMHg3NC8weDg4MApbICAgOTEuMTgwMzYy XSAgIG11dGV4X2xvY2tfbmVzdGVkKzB4MWMvMHgyOApbICAgOTEuMTg0MzkwXSAgIHRoZXJtYWxf em9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIrMHgxOTgvMHgyNTAKWyAgIDkxLjE4OTgxMl0gICBkZXZt X3RoZXJtYWxfem9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIrMHg1Yy8weGMwClsgICA5MS4xOTU0OThd ICAgYXJtYWRhX3RoZXJtYWxfcHJvYmUrMHgyMjAvMHg1ZjAKWyAgIDkxLjE5OTk2M10gICBwbGF0 Zm9ybV9kcnZfcHJvYmUrMHg1MC8weGIwClsgICA5MS4yMDQwNzhdICAgZHJpdmVyX3Byb2JlX2Rl dmljZSsweDIyNC8weDMwOApbICAgOTEuMjA4NDU0XSAgIF9fZHJpdmVyX2F0dGFjaCsweGU4LzB4 ZjAKWyAgIDkxLjIxMjMwOV0gICBidXNfZm9yX2VhY2hfZGV2KzB4NjgvMHhjOApbICAgOTEuMjE2 MjQ4XSAgIGRyaXZlcl9hdHRhY2grMHgyMC8weDI4ClsgICA5MS4yMTk5MjZdICAgYnVzX2FkZF9k cml2ZXIrMHgxMDgvMHgyMjgKWyAgIDkxLjIyMzg2Nl0gICBkcml2ZXJfcmVnaXN0ZXIrMHg2MC8w eDExMApbICAgOTEuMjI3ODA2XSAgIF9fcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKzB4NDQvMHg1 MApbICAgOTEuMjMyNjIyXSAgIGFybWFkYV90aGVybWFsX2RyaXZlcl9pbml0KzB4MTgvMHgyMApb ICAgOTEuMjM3NDM2XSAgIGRvX29uZV9pbml0Y2FsbCsweDU4LzB4MTcwClsgICA5MS4yNDEzNzhd ICAga2VybmVsX2luaXRfZnJlZWFibGUrMHgxZDQvMHgyN2MKWyAgIDkxLjI0NTg0M10gICBrZXJu ZWxfaW5pdCsweDEwLzB4MTA4ClsgICA5MS4yNDk0MzRdICAgcmV0X2Zyb21fZm9yaysweDEwLzB4 MTgKWyAgIDkxLjI1MzExMV0gaXJxIGV2ZW50IHN0YW1wOiA2MTMxMgpbICAgOTEuMjU2NTMwXSBo YXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICg2MTMwOSk6IFs8ZmZmZjAwMDAwODA4NmFiMD5dIGFy Y2hfY3B1X2lkbGUrMHgxMC8weDIwClsgICA5MS4yNjQ5MThdIGhhcmRpcnFzIGxhc3QgZGlzYWJs ZWQgYXQgKDYxMzEwKTogWzxmZmZmMDAwMDA4MDgzMTM0Pl0gZWwxX2lycSsweDc0LzB4MTMwClsg ICA5MS4yNzI4NzFdIHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDYxMzEyKTogWzxmZmZmMDAw MDA4MGI3ZmEwPl0gX2xvY2FsX2JoX2VuYWJsZSsweDIwLzB4NDAKWyAgIDkxLjI4MTUyMF0gc29m dGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoNjEzMTEpOiBbPGZmZmYwMDAwMDgwYjgzOTg+XSBpcnFf ZW50ZXIrMHg1OC8weDc4ClsgICA5MS4yODk1NTldIApbICAgOTEuMjg5NTU5XSBvdGhlciBpbmZv IHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgpbICAgOTEuMjk2MTE0XSAgUG9zc2libGUg dW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86ClsgICA5MS4yOTYxMTRdIApbICAgOTEuMzAyMDU4XSAg ICAgICAgQ1BVMApbICAgOTEuMzA0NTE0XSAgICAgICAgLS0tLQpbICAgOTEuMzA2OTcwXSAgIGxv Y2soJnR6LT5sb2NrKTsKWyAgIDkxLjMxMDA0MV0gICA8SW50ZXJydXB0PgpbICAgOTEuMzEyNjcw XSAgICAgbG9jaygmdHotPmxvY2spOwpbICAgOTEuMzE1OTE2XSAKWyAgIDkxLjMxNTkxNl0gICoq KiBERUFETE9DSyAqKioKWyAgIDkxLjMxNTkxNl0gClsgICA5MS4zMjE4NjNdIG5vIGxvY2tzIGhl bGQgYnkgc3dhcHBlci8wLzAuClsgICA5MS4zMjU4OTBdIApbICAgOTEuMzI1ODkwXSBzdGFjayBi YWNrdHJhY2U6ClsgICA5MS4zMzAyNjldIENQVTogMCBQSUQ6IDAgQ29tbTogc3dhcHBlci8wIE5v dCB0YWludGVkIDQuMTguMC1yYzEtMDAwNDctZzdmN2M4MDVjMmI2OS1kaXJ0eSAjMTU4MApbICAg OTEuMzM5MDkxXSBIYXJkd2FyZSBuYW1lOiBNYXJ2ZWxsIEFybWFkYSA3MDQwIERCIGJvYXJkIChE VCkKWyAgIDkxLjM0NDc3NV0gQ2FsbCB0cmFjZToKWyAgIDkxLjM0NzIzNF0gIGR1bXBfYmFja3Ry YWNlKzB4MC8weDFhMApbICAgOTEuMzUwOTEzXSAgc2hvd19zdGFjaysweDE0LzB4MjAKWyAgIDkx LjM1NDI0NF0gIGR1bXBfc3RhY2srMHhiOC8weGY0ClsgICA5MS4zNTc1NzRdICBwcmludF91c2Fn ZV9idWcucGFydC4yNCsweDI2NC8weDI3YwpbICAgOTEuMzYyMjExXSAgbWFya19sb2NrKzB4MTUw LzB4NmIwClsgICA5MS4zNjU2MjhdICBfX2xvY2tfYWNxdWlyZSsweDZkMC8weDE4ZjgKWyAgIDkx LjM2OTU2OF0gIGxvY2tfYWNxdWlyZSsweDQ0LzB4NjAKWyAgIDkxLjM3MzA3M10gIF9fbXV0ZXhf bG9jaysweDc0LzB4ODgwClsgICA5MS4zNzY2NjZdICBtdXRleF9sb2NrX25lc3RlZCsweDFjLzB4 MjgKWyAgIDkxLjM4MDYwNl0gIHRoZXJtYWxfem9uZV9nZXRfdGVtcCsweDYwLzB4MTU4ClsgICA5 MS4zODQ5ODJdICB0aGVybWFsX3pvbmVfZGV2aWNlX3VwZGF0ZS5wYXJ0LjQrMHgzNC8weGUwClsg ICA5MS4zOTAzMThdICB0aGVybWFsX3pvbmVfZGV2aWNlX3VwZGF0ZSsweDI4LzB4MzgKWyAgIDkx LjM5NTA0M10gIGFybWFkYV9vdmVyaGVhdF9pc3IrMHhiMC8weGI4ClsgICA5MS4zOTkxNTldICBf X2hhbmRsZV9pcnFfZXZlbnRfcGVyY3B1KzB4OWMvMHgxMjgKWyAgIDkxLjQwMzg4M10gIGhhbmRs ZV9pcnFfZXZlbnRfcGVyY3B1KzB4MzQvMHg4OApbICAgOTEuNDA4MzQ2XSAgaGFuZGxlX2lycV9l dmVudCsweDQ4LzB4NzgKWyAgIDkxLjQxMjIwMV0gIGhhbmRsZV9mYXN0ZW9pX2lycSsweGEwLzB4 MTgwClsgICA5MS40MTYzMTZdICBnZW5lcmljX2hhbmRsZV9pcnErMHgyNC8weDM4ClsgICA5MS40 MjAzNDZdICBtdmVidV9zZWlfaGFuZGxlX2Nhc2NhZGVfaXJxKzB4YzgvMHgxODAKWyAgIDkxLjQy NTMzMl0gIGdlbmVyaWNfaGFuZGxlX2lycSsweDI0LzB4MzgKWyAgIDkxLjQyOTM2MF0gIF9faGFu ZGxlX2RvbWFpbl9pcnErMHg1Yy8weGI4ClsgICA5MS40MzM0NzNdICBnaWNfaGFuZGxlX2lycSsw eDU4LzB4YjAKWyAgIDkxLjQzNzE1MV0gIGVsMV9pcnErMHhiNC8weDEzMApbICAgOTEuNDQwMzA2 XSAgYXJjaF9jcHVfaWRsZSsweDE0LzB4MjAKWyAgIDkxLjQ0Mzg5OF0gIGRlZmF1bHRfaWRsZV9j YWxsKzB4MTgvMHgzMApbICAgOTEuNDQ3ODQwXSAgZG9faWRsZSsweDFjNC8weDI3OApbICAgOTEu NDUxMDgyXSAgY3B1X3N0YXJ0dXBfZW50cnkrMHgyNC8weDI4ClsgICA5MS40NTUwMjNdICByZXN0 X2luaXQrMHgyNTQvMHgyNjgKWyAgIDkxLjQ1ODQ0MF0gIHN0YXJ0X2tlcm5lbCsweDNmMC8weDQx YwpbICAgOTEuNDYyMTI2XSB0aGVybWFsIHRoZXJtYWxfem9uZTU6IGNyaXRpY2FsIHRlbXBlcmF0 dXJlIHJlYWNoZWQgKDU0IEMpLCBzaHV0dGluZyBkb3duCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: miquel.raynal@bootlin.com (Miquel Raynal) Date: Fri, 29 Jun 2018 17:27:51 +0200 Subject: [PATCH v3 06/17] irqchip/irq-mvebu-icu: switch to regmap In-Reply-To: References: <20180622151432.1566-1-miquel.raynal@bootlin.com> <20180622151432.1566-7-miquel.raynal@bootlin.com> Message-ID: <20180629172751.7404a531@xps13> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Marc, Marc Zyngier wrote on Thu, 28 Jun 2018 13:05:05 +0100: > On 22/06/18 16:14, Miquel Raynal wrote: > > Before splitting the code to support multiple platform devices to > > be probed (one for the ICU, one per interrupt group), let's switch to > > regmap first by creating one in the ->probe(). > > What's the benefit of doing so? I assume that has to do with supporting > multiple devices that share an MMIO range? Yes, the ICU subnodes will share the same MMIO range. > > > > > Signed-off-by: Miquel Raynal > > --- > > drivers/irqchip/irq-mvebu-icu.c | 45 +++++++++++++++++++++++++++-------------- > > 1 file changed, 30 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/irqchip/irq-mvebu-icu.c b/drivers/irqchip/irq-mvebu-icu.c > > index 0f2655d7f19e..3694c0d73c0d 100644 > > --- a/drivers/irqchip/irq-mvebu-icu.c > > +++ b/drivers/irqchip/irq-mvebu-icu.c > > @@ -18,6 +18,8 @@ > > #include > > #include > > #include > > +#include > > +#include > > > > #include > > > > @@ -38,7 +40,7 @@ > > > > struct mvebu_icu { > > struct irq_chip irq_chip; > > - void __iomem *base; > > + struct regmap *regmap; > > struct irq_domain *domain; > > struct device *dev; > > atomic_t initialized; > > @@ -56,10 +58,10 @@ static void mvebu_icu_init(struct mvebu_icu *icu, struct msi_msg *msg) > > return; > > > > /* Set Clear/Set ICU SPI message address in AP */ > > - writel_relaxed(msg[0].address_hi, icu->base + ICU_SETSPI_NSR_AH); > > - writel_relaxed(msg[0].address_lo, icu->base + ICU_SETSPI_NSR_AL); > > - writel_relaxed(msg[1].address_hi, icu->base + ICU_CLRSPI_NSR_AH); > > - writel_relaxed(msg[1].address_lo, icu->base + ICU_CLRSPI_NSR_AL); > > + regmap_write(icu->regmap, ICU_SETSPI_NSR_AH, msg[0].address_hi); > > + regmap_write(icu->regmap, ICU_SETSPI_NSR_AL, msg[0].address_lo); > > + regmap_write(icu->regmap, ICU_CLRSPI_NSR_AH, msg[1].address_hi); > > + regmap_write(icu->regmap, ICU_CLRSPI_NSR_AL, msg[1].address_lo); > > Isn't this a change in the way we write things to the MMIO registers? > You're now trading a writel_relaxed for a writel, plus some locking... Is the "writel_relaxed" -> "writel" thing really an issue? > > Talking about which: Are you always in a context where you can take that > lock? The bit of documentation I've just read seems to imply that the > default lock is a mutex. Is that always safe? My guess is that it isn't, > and any callback that can end-up here after having taken something like > the desc lock is going to blow in your face. > > Have you tried lockdep? Just did -- thanks for pointing it, it failed once the overheat interrupt fired. I'm not sure if it is because of the regmap-locking mechanism. There is definitely something to fix there, but I don't know what for now; I'll come back on it. [for reference: logs below] Thanks, Miqu?l --- [ 91.128615] [ 91.130120] ================================ [ 91.134408] WARNING: inconsistent lock state [ 91.138698] 4.18.0-rc1-00047-g7f7c805c2b69-dirty #1580 Not tainted [ 91.144905] -------------------------------- [ 91.149193] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [ 91.155227] swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes: [ 91.160388] (____ptrval____) (&tz->lock){?.+.}, at: thermal_zone_get_temp+0x60/0x158 [ 91.168186] {HARDIRQ-ON-W} state was registered at: [ 91.173089] lock_acquire+0x44/0x60 [ 91.176683] __mutex_lock+0x74/0x880 [ 91.180362] mutex_lock_nested+0x1c/0x28 [ 91.184390] thermal_zone_of_sensor_register+0x198/0x250 [ 91.189812] devm_thermal_zone_of_sensor_register+0x5c/0xc0 [ 91.195498] armada_thermal_probe+0x220/0x5f0 [ 91.199963] platform_drv_probe+0x50/0xb0 [ 91.204078] driver_probe_device+0x224/0x308 [ 91.208454] __driver_attach+0xe8/0xf0 [ 91.212309] bus_for_each_dev+0x68/0xc8 [ 91.216248] driver_attach+0x20/0x28 [ 91.219926] bus_add_driver+0x108/0x228 [ 91.223866] driver_register+0x60/0x110 [ 91.227806] __platform_driver_register+0x44/0x50 [ 91.232622] armada_thermal_driver_init+0x18/0x20 [ 91.237436] do_one_initcall+0x58/0x170 [ 91.241378] kernel_init_freeable+0x1d4/0x27c [ 91.245843] kernel_init+0x10/0x108 [ 91.249434] ret_from_fork+0x10/0x18 [ 91.253111] irq event stamp: 61312 [ 91.256530] hardirqs last enabled at (61309): [] arch_cpu_idle+0x10/0x20 [ 91.264918] hardirqs last disabled at (61310): [] el1_irq+0x74/0x130 [ 91.272871] softirqs last enabled at (61312): [] _local_bh_enable+0x20/0x40 [ 91.281520] softirqs last disabled at (61311): [] irq_enter+0x58/0x78 [ 91.289559] [ 91.289559] other info that might help us debug this: [ 91.296114] Possible unsafe locking scenario: [ 91.296114] [ 91.302058] CPU0 [ 91.304514] ---- [ 91.306970] lock(&tz->lock); [ 91.310041] [ 91.312670] lock(&tz->lock); [ 91.315916] [ 91.315916] *** DEADLOCK *** [ 91.315916] [ 91.321863] no locks held by swapper/0/0. [ 91.325890] [ 91.325890] stack backtrace: [ 91.330269] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.18.0-rc1-00047-g7f7c805c2b69-dirty #1580 [ 91.339091] Hardware name: Marvell Armada 7040 DB board (DT) [ 91.344775] Call trace: [ 91.347234] dump_backtrace+0x0/0x1a0 [ 91.350913] show_stack+0x14/0x20 [ 91.354244] dump_stack+0xb8/0xf4 [ 91.357574] print_usage_bug.part.24+0x264/0x27c [ 91.362211] mark_lock+0x150/0x6b0 [ 91.365628] __lock_acquire+0x6d0/0x18f8 [ 91.369568] lock_acquire+0x44/0x60 [ 91.373073] __mutex_lock+0x74/0x880 [ 91.376666] mutex_lock_nested+0x1c/0x28 [ 91.380606] thermal_zone_get_temp+0x60/0x158 [ 91.384982] thermal_zone_device_update.part.4+0x34/0xe0 [ 91.390318] thermal_zone_device_update+0x28/0x38 [ 91.395043] armada_overheat_isr+0xb0/0xb8 [ 91.399159] __handle_irq_event_percpu+0x9c/0x128 [ 91.403883] handle_irq_event_percpu+0x34/0x88 [ 91.408346] handle_irq_event+0x48/0x78 [ 91.412201] handle_fasteoi_irq+0xa0/0x180 [ 91.416316] generic_handle_irq+0x24/0x38 [ 91.420346] mvebu_sei_handle_cascade_irq+0xc8/0x180 [ 91.425332] generic_handle_irq+0x24/0x38 [ 91.429360] __handle_domain_irq+0x5c/0xb8 [ 91.433473] gic_handle_irq+0x58/0xb0 [ 91.437151] el1_irq+0xb4/0x130 [ 91.440306] arch_cpu_idle+0x14/0x20 [ 91.443898] default_idle_call+0x18/0x30 [ 91.447840] do_idle+0x1c4/0x278 [ 91.451082] cpu_startup_entry+0x24/0x28 [ 91.455023] rest_init+0x254/0x268 [ 91.458440] start_kernel+0x3f0/0x41c [ 91.462126] thermal thermal_zone5: critical temperature reached (54 C), shutting down