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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id CEA2BC433EF for ; Thu, 26 May 2022 13:01:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Subject:Cc:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WDEBx6LtdVVz8CWvYr/xGu/8FDR1tVaJPlTW1N9b6ag=; b=ag5t3o8pcyKRBK bvukEN167W41fJkI9zxniOihc3YoERQ+Gkb/p7PCMKJQwskr813RUSrsOHGVe+gu1ZytMhMpMqJBE zdYwOFmmsvG6TnbU2aOb1AQhBJ60S5fMso3hv5bL2420bnOqx158a8JPHscFZMc3aOAJmF1V/pJHW Y4REM6fp1S1Db1cCVbz95d0nZ9m4b3l5CJIeO8rgMUDIYWaGt9a8S6KhpHZzYXGb8LaE+wG2sPGZB lqoUp+pzqZzDxg/C2KXCEuQMRSh+LJRX2Ik5/rwgtNBEESEOD70CdiIRMI0G1uYOPNHU7SMVbnPtV V2VcQD2NH5W47dx+YpfQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nuD65-00ExcS-RL; Thu, 26 May 2022 13:00:13 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nuD62-00ExbN-2E for linux-arm-kernel@lists.infradead.org; Thu, 26 May 2022 13:00:11 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4AA6761A10; Thu, 26 May 2022 13:00:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADD6AC385A9; Thu, 26 May 2022 13:00:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1653570008; bh=GrNN2j5tqrd/2L9HWmTTDNls2RMClzr1/7nW7pxBuy8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=GRKuXugyyT3Tk/2E/Jax28CgLLu8HOB3WfgtbCUPiI/S6Cx+d4X3XW3bHhgU4ldYg iDsnTMF3G8n0kUybLVCcMEPtjPajLCTDQLetrzEFBXwhP8siy6lbGJ4GaJ0x1iavUo zhe4WgRRactOPYqF/ZnHIHW4HnIH6NTfOiHF3hU/DJwcvb0eaWyFecfR5zxf9zrZ4j MVrvHWRKO9mZa4olKHLxUWdyvv/V8gMHAVIwGD8tY5P1gkG/UYHvuNaS0ZNJDyfF2F r9Wnai2yQjRVMGoD1o10zLvI5yj4+xsoC3Wm+IzetIRr64OH/7ETpqjwQtRri2CHIz TP6E9DUdowV1A== Received: from athedsl-4557779.home.otenet.gr ([94.70.87.219] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nuD5y-00Dr09-7b; Thu, 26 May 2022 14:00:06 +0100 Date: Thu, 26 May 2022 14:00:05 +0100 Message-ID: <87bkvkmotm.wl-maz@kernel.org> From: Marc Zyngier To: richard clark Cc: Robin Murphy , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: Question about SPIs' interrupt trigger type restrictions In-Reply-To: References: <35f95ba3-8a7b-7918-0f9d-e14274a5ffe9@arm.com> <87ee0gn5rq.wl-maz@kernel.org> <5a8d5c51-ae02-a335-6768-2bedf809ab63@arm.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 94.70.87.219 X-SA-Exim-Rcpt-To: richard.xnu.clark@gmail.com, robin.murphy@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220526_060010_233643_69CF684F X-CRM114-Status: GOOD ( 52.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCAyNiBNYXkgMjAyMiAxMzozMDozNSArMDEwMCwKcmljaGFyZCBjbGFyayA8cmljaGFy ZC54bnUuY2xhcmtAZ21haWwuY29tPiB3cm90ZToKPiAKPiBPbiBUaHUsIE1heSAyNiwgMjAyMiBh dCA0OjQxIFBNIFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+IHdyb3RlOgo+ID4K PiA+IE9uIDIwMjItMDUtMjYgMDc6NTQsIE1hcmMgWnluZ2llciB3cm90ZToKPiA+ID4gT24gVGh1 LCAyNiBNYXkgMjAyMiAwNDo0NDo0MSArMDEwMCwKPiA+ID4gcmljaGFyZCBjbGFyayA8cmljaGFy ZC54bnUuY2xhcmtAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+Cj4gPiA+PiBPbiBUaHUsIE1heSAy NiwgMjAyMiBhdCAzOjE0IEFNIFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+IHdy b3RlOgo+ID4gPj4+Cj4gPiA+Pj4gT24gMjAyMi0wNS0yNSAxMTowMSwgcmljaGFyZCBjbGFyayB3 cm90ZToKPiA+ID4+Pj4gSGkgTWFyYywKPiA+ID4+Pj4KPiA+ID4+Pj4gRm9yIGJlbG93IGNvZGUg c25pcHBldCBhYm91dCBTUEkgaW50ZXJydXB0IHRyaWdnZXIgdHlwZToKPiA+ID4+Pj4KPiA+ID4+ Pj4gc3RhdGljIGludCBnaWNfc2V0X3R5cGUoc3RydWN0IGlycV9kYXRhICpkLCB1bnNpZ25lZCBp bnQgdHlwZSkKPiA+ID4+Pj4gewo+ID4gPj4+PiAgICAgICAgICAgLi4uCj4gPiA+Pj4+ICAgICAg ICAgICAvKiBTUElzIGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBzdXBwb3J0ZWQgdHlwZXMgKi8K PiA+ID4+Pj4gICAgICAgICAgIGlmICgocmFuZ2UgPT0gU1BJX1JBTkdFIHx8IHJhbmdlID09IEVT UElfUkFOR0UpICYmCj4gPiA+Pj4+ICAgICAgICAgICAgICAgdHlwZSAhPSBJUlFfVFlQRV9MRVZF TF9ISUdIICYmIHR5cGUgIT0gSVJRX1RZUEVfRURHRV9SSVNJTkcpCj4gPiA+Pj4+ICAgICAgICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gPj4+PiAgICAgICAgICAgLi4uCj4gPiA+Pj4+ IH0KPiA+ID4+Pj4KPiA+ID4+Pj4gV2UgaGF2ZSBhIGRldmljZSBhdCBoYW5kIHdob3NlIGludGVy cnVwdCB0eXBlIGlzIFNQSSwgRmFsbGluZyBlZGdlCj4gPiA+Pj4+IHdpbGwgdHJpZ2dlciB0aGUg aW50ZXJydXB0LiBCdXQgdGhlIHJlcXVlc3RfaXJxKDUwLCBoYW5kbGVyLAo+ID4gPj4+PiBJUlFf VFlQRV9FREdFX0ZBTExJTkcsIC4uLikgd2lsbCByZXR1cm4gLUVJTlZBTC4KPiA+ID4+Pj4KPiA+ ID4+Pj4gVGhlIHF1ZXN0aW9uIGlzLCB3aHkgbXVzdCB0aGUgU1BJIGludGVycnVwdCB1c2UgSVJR X1RZUEVfRURHRV9SSVNJTkcKPiA+ID4+Pj4gaW5zdGVhZCBvZiBJUlFfVFlQRV9FREdFX0ZBTExJ Tkc/Cj4gPiA+Pj4KPiA+ID4+PiBCZWNhdXNlIHRoYXQncyB3aGF0IHRoZSBHSUMgYXJjaGl0ZWN0 dXJlWzFdIHNheXMuIEZyb20gc2VjdGlvbiAxLjIuMQo+ID4gPj4+ICJJbnRlcnJ1cHQgVHlwZXMi Ogo+ID4gPj4+Cj4gPiA+Pj4gIkFuIGludGVycnVwdCB0aGF0IGlzIGVkZ2UtdHJpZ2dlcmVkIGhh cyB0aGUgZm9sbG93aW5nIHByb3BlcnR5Ogo+ID4gPj4+ICAgICAgICAgIOKAoiBJdCBpcyBhc3Nl cnRlZCBvbiBkZXRlY3Rpb24gb2YgYSByaXNpbmcgZWRnZSBvZiBhbiBpbnRlcnJ1cHQgc2lnbmFs Cj4gPiA+Pgo+ID4gPj4gVGhpcyByaXNpbmcgZWRnZSBkZXRlY3Rpb24gaXMgbm90IHRydWUsIGl0 J3MgYWxzbyBhc3NlcnRlZCBieQo+ID4gPj4gZmFsbGluZyBlZGdlLCBqdXN0IGxpa2UgdGhlIEdJ Q0RfSUNGR1IgcmVnaXN0ZXIgc2F5czogQ2hhbmdpbmcgdGhlCj4gPiA+PiBpbnRlcnJ1cHQgY29u ZmlndXJhdGlvbiBiZXR3ZWVuIGxldmVsLXNlbnNpdGl2ZSBhbmQgKmVkZ2UtdHJpZ2dlcmVkCj4g PiA+PiAoaW4gZWl0aGVyIGRpcmVjdGlvbikqIGF0IGEgdGltZSB3aGVuIHRoZXJlIGlzIGEgcGVu ZGluZyBpbnRlcnJ1cHQKPiA+ID4+IC4uLiwKPiA+ID4KPiA+ID4gTGV0IG1lIGZpbmlzaCB0aGUg c2VudGVuY2UgZm9yIHlvdToKPiA+ID4KPiA+ID4gPHF1b3RlPgo+ID4gPiAuLi4gd2lsbCBsZWF2 ZSB0aGUgaW50ZXJydXB0IGluIGFuIFVOS05PV04gcGVuZGluZyBzdGF0ZS4KPiA+ID4gPC9xdW90 ZT4KPiA+ID4KPiA+ID4gYW5kIHRoZSBkaXJlY3Rpb24gaGVyZSBpcyBhYm91dCB0aGUgY29uZmln dXJhdGlvbiBiaXQsIG5vdCB0aGUgZWRnZQo+ID4gPiBkaXJlY3Rpb24uCj4gPgo+ID4gSW5kZWVk IGl0J3MgY2xlYXJseSByZWZlcnJpbmcgdG8gZWl0aGVyIGRpcmVjdGlvbiBvZiAqdGhlIGNoYW5n ZSosIGkuZS4KPiA+IGZyb20gZWRnZSB0byBsZXZlbCBhbmQgZnJvbSBsZXZlbCB0byBlZGdlLgo+ ID4KPiA+ID4+IHdoaWNoIGhhcyBiZWVuIGNvbmZpcm1lZCBieSBHSUMtNTAwIG9uIG15IHBsYXRm b3JtLgo+ID4gPgo+ID4gPiAgRnJvbSB0aGUgR0lDNTAwIHIxcDEgVFJNLCBwYWdlIDItODoKPiA+ ID4KPiA+ID4gPHF1b3RlPgo+ID4gPiBTUElzIGFyZSBnZW5lcmF0ZWQgZWl0aGVyIGJ5IHdpcmUg aW5wdXRzIG9yIGJ5IHdyaXRlcyB0byB0aGUgQVhJNAo+ID4gPiBzbGF2ZSBwcm9ncmFtbWluZyBp bnRlcmZhY2UuICBUaGUgR0lDLTUwMCBjYW4gc3VwcG9ydCB1cCB0byA5NjAgU1BJcwo+ID4gPiBj b3JyZXNwb25kaW5nIHRvIHRoZSBleHRlcm5hbCBzcGlbOTkxOjMyXSBzaWduYWwuIFRoZSBudW1i ZXIgb2YgU1BJcwo+ID4gPiBhdmFpbGFibGUgZGVwZW5kcyBvbiB0aGUgaW1wbGVtZW50ZWQgY29u ZmlndXJhdGlvbi4gVGhlIHBlcm1pdHRlZAo+ID4gPiB2YWx1ZXMgYXJlIDMyLTk2MCwgaW4gc3Rl cHMgb2YgMzIuIFRoZSBmaXJzdCBTUEkgaGFzIGFuIElEIG51bWJlciBvZgo+ID4gPiAzMi4gWW91 IGNhbiBjb25maWd1cmUgd2hldGhlciBlYWNoIFNQSSBpcyB0cmlnZ2VyZWQgb24gYSByaXNpbmcg ZWRnZQo+ID4gPiBvciBpcyBhY3RpdmUtSElHSCBsZXZlbC1zZW5zaXRpdmUuCj4gPiA+IDwvcXVv dGU+Cj4gPiA+Cj4gPiA+IFNvIEkgaGF2ZSBubyBpZGVhIHdoYXQgeW91IGFyZSB0YWxraW5nIGFi b3V0LCBidXQgeW91IGRlZmluaXRlbHkgaGF2ZQo+ID4gPiB0aGUgd3JvbmcgZW5kIG9mIHRoZSBz dGljay4gQm90aCB0aGUgYXJjaGl0ZWN0dXJlIGFuZCB0aGUKPiA+ID4gaW1wbGVtZW50YXRpb25z IGFyZSBhbGlnbmVkIHdpdGggd2hhdCB0aGUgR0lDIGRyaXZlcnMgZG8uCj4gPiA+Cj4gPiA+IElm IHlvdXIgc3lzdGVtIGJlaGF2ZXMgZGlmZmVyZW50bHksIHRoaXMgaXMgYmVjYXVzZSBzb21ldGhp bmcgaXMKPiA+ID4gaW52ZXJ0aW5nIHRoZSBzaWduYWwsIHdoaWNoIGlzIGV4dHJlbWVseSBjb21t b24uIEp1c3QgZGVzY3JpYmUgdGhpcyBpbgo+ID4gPiB5b3VyIGRldmljZSB0cmVlLCBvciBsaWUg dG8gdGhlIGtlcm5lbCwgd2hpY2hldmVyIHdheSB5b3Ugd2FudC4KPiA+Cj4gPiBJIHRoaW5rIHRo ZSBpbXBvcnRhbnQgY29uY2VwdCB0byBncmFzcCBoZXJlIGlzIHRoYXQgd2hhdCB3ZSBkZXNjcmli ZSBpbgo+ID4gRFQgaXMgbm90IHByb3BlcnRpZXMgb2YgdGhlIGRldmljZSBpbiBpc29sYXRpb24s IGJ1dCBwcm9wZXJ0aWVzIG9mIGl0cwo+ID4gaW50ZWdyYXRpb24gaW50byB0aGUgc3lzdGVtIGFz IGEgd2hvbGUuIENvbnNpZGVyIHRoZSAicmVnIiBwcm9wZXJ0eSwKPiA+IHdoaWNoIGluIDk5JSBv ZiBjYXNlcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBhY3R1YWwgZGV2aWNlIGl0Cj4gPiBi ZWxvbmdzIHRvLCBidXQgaXMgaW5zdGVhZCBkZXNjcmliaW5nIGEgcHJvcGVydHkgb2YgdGhlIGlu dGVyY29ubmVjdCwKPiA+IG5hbWVseSBob3cgaXRzIGFkZHJlc3MgbWFwIGRlY29kZXMgdG8gYSBw YXJ0aWN1bGFyIGludGVyZmFjZSwgdG8gd2hpY2gKPiA+IHRoZSBnaXZlbiBkZXZpY2UgaGFwcGVu cyB0byBiZSBhdHRhY2hlZC4KPiAKPiBJIGRvbid0IGNhcmUgYWJvdXQgdGhlIERUIGF0IGFsbC4u LiBUaGUgZXNzZW50aWFsIGlzLSBkb2VzIHRoZSBHSUMKPiBvbmx5IHN1cHBvcnQgcmlzaW5nIGVk Z2UgZGV0ZWN0aW9uIHJlYWxseSBqdXN0IGFzIHRoZSBkb2N1bWVudCBzYXlzLAo+IEknbSBkb3Vi dGZ1bCBhYm91dCB0aGF0IDstKQoKRG91YnQgYXMgbXVjaCBhcyB5b3Ugd2FudC4gVGhlIGFyY2hp dGVjdHVyZSBhbmQgaW1wbGVtZW50YXRpb25zIGFyZQpjcnlzdGFsIGNsZWFyIG9uIHRoZSBzdWJq ZWN0LgoKPiAKPiA+Cj4gPiBBdCB0aGUgSERMIGxldmVsLCB0aGUgZGV2aWNlIGJsb2NrIG1heSB2 ZXJ5IHdlbGwgaGF2ZSBhbiBvdXRwdXQgc2lnbmFsCj4gPiB3aGljaCBpZGxlcyBhdCBsb2dpYy1o aWdoLCBhbmQgcHVsc2VzIGxvdyB0byBpbmRpY2F0ZSBhbiBldmVudCwgaG93ZXZlcgo+ID4gaXQg b25seSBiZWNvbWVzIGFuICppbnRlcnJ1cHQqIGlmIGl0IGlzIHdpcmVkIHVwIHRvIGFuIGludGVy cnVwdAo+ID4gY29udHJvbGxlcjsgb24gaXRzIG93biBpdCdzIGp1c3Qgc29tZSBvdXRwdXQgc2ln bmFsLiBXaGF0IHRoZSBEVAo+ID4gaW50ZXJydXB0IHNwZWNpZmllciBkZXNjcmliZXMgaXMgdGhh dCB3aXJpbmcsICpmcm9tIHRoZSBpbnRlcnJ1cHQKPiA+IGNvbnRyb2xsZXIncyBwb2ludCBvZiB2 aWV3Ki4gSWYgYSBwdWxzZWQgc2lnbmFsIGlzIGZlZCBpbnRvIGFuIEFybSBHSUMKPiA+IFNQSSBp bnB1dCB0aGVuIGFzIGFuIGludGVycnVwdCBpdCAqaXMqIElSUV9UWVBFX0VER0VfUklTSU5HLCBi ZWNhdXNlCj4gPiB0aGF0J3MgaG93IHRoZSBHSUMgaGFyZHdhcmUgd2lsbCB0cmVhdCBpdC4gVGhl IGludGVncmF0aW9uIGFzIGEgd2hvbGUKPiAKPiBFREdFX1JJU0lORyBjYW4gbGVhdmUgaXRzIG1h cmsgaW4gdGhlIEdJQywgdGhhdCdzIHRoZSAqaG93KiwgYnV0IHdoeQo+IEVER0VfRkFMTElORyBj YW4ndCwgYW55IHJlYXNvbnMgdG8ganVzdGlmeSB0aGlzIGJlaGF2aW9yPwoKRXJyLCBiZWNhdXNl IHRoZXJlIGlzIG5vIGJpdCB0aGF0IGFsbG93cyBzdWNoIGEgY29uZmlndXJhdGlvbiwgbWF5YmU/ CgpBbmQgdGhhdCBpZiBzb21lb25lIGhhcyBhIGZhbGxpbmcgZWRnZSBzaWduYWwsIHRoZXkgY2Fu IGRyb3AgYW4KaW52ZXJ0ZXIgb24gdGhlIHBhdGggYW5kIGJlIGRvbmUgd2l0aCBpdD8KCkFueXdh eSwgaWYgeW91IGhhdmUgYW4gaXNzdWUgd2l0aCB0aGUgY3VycmVudCBiZWhhdmlvdXIgb2YgZWl0 aGVyCmltcGxlbWVudGF0aW9ucyBvciBhcmNoaXRlY3R1cmUsIEkgc3VnZ2VzdCB5b3UgdGFrZSB1 cCB3aXRoIEFSTS4KCj4gSSBiZWxpZXZlIHRoYXQgdGhlIGRyaXZlcnMgc3RpbGwgd29yayBpZiB0 aGUgdHJpZ2dlciB0eXBlIHNhbml0eSBjaGVjawo+IGluIHRoZSBHSUMgZHJpdmVyIGlzIHJlbW92 ZWQuCgpUaGUgZHJpdmVyIHdvdWxkIHRoZW4gYmUgbWlzcmVwcmVzZW50aW5nIHRoZSBhcmNoaXRl Y3R1cmUsIGFuZCB0aGF0CndvdWxkIGJlIGEgYnVnLiBUaGVyZSBhcmUgZW5vdWdoIGJ1Z3MgaW4g dGhhdCBhcmVhIHRoYXQgd2UgZG9uJ3QgbmVlZAp0byBhZGQgYW4gZXh0cmEgb25lLgoKCU0uCgot LSAKV2l0aG91dCBkZXZpYXRpb24gZnJvbSB0aGUgbm9ybSwgcHJvZ3Jlc3MgaXMgbm90IHBvc3Np YmxlLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo= 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DC4AC433F5 for ; Thu, 26 May 2022 13:00:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345698AbiEZNAQ (ORCPT ); Thu, 26 May 2022 09:00:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231159AbiEZNAM (ORCPT ); Thu, 26 May 2022 09:00:12 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B5C7CFE00 for ; Thu, 26 May 2022 06:00:11 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id E744DB820CB for ; Thu, 26 May 2022 13:00:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADD6AC385A9; Thu, 26 May 2022 13:00:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1653570008; bh=GrNN2j5tqrd/2L9HWmTTDNls2RMClzr1/7nW7pxBuy8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=GRKuXugyyT3Tk/2E/Jax28CgLLu8HOB3WfgtbCUPiI/S6Cx+d4X3XW3bHhgU4ldYg iDsnTMF3G8n0kUybLVCcMEPtjPajLCTDQLetrzEFBXwhP8siy6lbGJ4GaJ0x1iavUo zhe4WgRRactOPYqF/ZnHIHW4HnIH6NTfOiHF3hU/DJwcvb0eaWyFecfR5zxf9zrZ4j MVrvHWRKO9mZa4olKHLxUWdyvv/V8gMHAVIwGD8tY5P1gkG/UYHvuNaS0ZNJDyfF2F r9Wnai2yQjRVMGoD1o10zLvI5yj4+xsoC3Wm+IzetIRr64OH/7ETpqjwQtRri2CHIz TP6E9DUdowV1A== Received: from athedsl-4557779.home.otenet.gr ([94.70.87.219] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nuD5y-00Dr09-7b; Thu, 26 May 2022 14:00:06 +0100 Date: Thu, 26 May 2022 14:00:05 +0100 Message-ID: <87bkvkmotm.wl-maz@kernel.org> From: Marc Zyngier To: richard clark Cc: Robin Murphy , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: Question about SPIs' interrupt trigger type restrictions In-Reply-To: References: <35f95ba3-8a7b-7918-0f9d-e14274a5ffe9@arm.com> <87ee0gn5rq.wl-maz@kernel.org> <5a8d5c51-ae02-a335-6768-2bedf809ab63@arm.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 94.70.87.219 X-SA-Exim-Rcpt-To: richard.xnu.clark@gmail.com, robin.murphy@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 26 May 2022 13:30:35 +0100, richard clark wrote: >=20 > On Thu, May 26, 2022 at 4:41 PM Robin Murphy wrote: > > > > On 2022-05-26 07:54, Marc Zyngier wrote: > > > On Thu, 26 May 2022 04:44:41 +0100, > > > richard clark wrote: > > >> > > >> On Thu, May 26, 2022 at 3:14 AM Robin Murphy = wrote: > > >>> > > >>> On 2022-05-25 11:01, richard clark wrote: > > >>>> Hi Marc, > > >>>> > > >>>> For below code snippet about SPI interrupt trigger type: > > >>>> > > >>>> static int gic_set_type(struct irq_data *d, unsigned int type) > > >>>> { > > >>>> ... > > >>>> /* SPIs have restrictions on the supported types */ > > >>>> if ((range =3D=3D SPI_RANGE || range =3D=3D ESPI_RANGE) = && > > >>>> type !=3D IRQ_TYPE_LEVEL_HIGH && type !=3D IRQ_TYPE_= EDGE_RISING) > > >>>> return -EINVAL; > > >>>> ... > > >>>> } > > >>>> > > >>>> We have a device at hand whose interrupt type is SPI, Falling edge > > >>>> will trigger the interrupt. But the request_irq(50, handler, > > >>>> IRQ_TYPE_EDGE_FALLING, ...) will return -EINVAL. > > >>>> > > >>>> The question is, why must the SPI interrupt use IRQ_TYPE_EDGE_RISI= NG > > >>>> instead of IRQ_TYPE_EDGE_FALLING? > > >>> > > >>> Because that's what the GIC architecture[1] says. From section 1.2.1 > > >>> "Interrupt Types": > > >>> > > >>> "An interrupt that is edge-triggered has the following property: > > >>> =E2=80=A2 It is asserted on detection of a rising edge of = an interrupt signal > > >> > > >> This rising edge detection is not true, it's also asserted by > > >> falling edge, just like the GICD_ICFGR register says: Changing the > > >> interrupt configuration between level-sensitive and *edge-triggered > > >> (in either direction)* at a time when there is a pending interrupt > > >> ..., > > > > > > Let me finish the sentence for you: > > > > > > > > > ... will leave the interrupt in an UNKNOWN pending state. > > > > > > > > > and the direction here is about the configuration bit, not the edge > > > direction. > > > > Indeed it's clearly referring to either direction of *the change*, i.e. > > from edge to level and from level to edge. > > > > >> which has been confirmed by GIC-500 on my platform. > > > > > > From the GIC500 r1p1 TRM, page 2-8: > > > > > > > > > SPIs are generated either by wire inputs or by writes to the AXI4 > > > slave programming interface. The GIC-500 can support up to 960 SPIs > > > corresponding to the external spi[991:32] signal. The number of SPIs > > > available depends on the implemented configuration. The permitted > > > values are 32-960, in steps of 32. The first SPI has an ID number of > > > 32. You can configure whether each SPI is triggered on a rising edge > > > or is active-HIGH level-sensitive. > > > > > > > > > So I have no idea what you are talking about, but you definitely have > > > the wrong end of the stick. Both the architecture and the > > > implementations are aligned with what the GIC drivers do. > > > > > > If your system behaves differently, this is because something is > > > inverting the signal, which is extremely common. Just describe this in > > > your device tree, or lie to the kernel, whichever way you want. > > > > I think the important concept to grasp here is that what we describe in > > DT is not properties of the device in isolation, but properties of its > > integration into the system as a whole. Consider the "reg" property, > > which in 99% of cases has nothing to do with the actual device it > > belongs to, but is instead describing a property of the interconnect, > > namely how its address map decodes to a particular interface, to which > > the given device happens to be attached. >=20 > I don't care about the DT at all... The essential is- does the GIC > only support rising edge detection really just as the document says, > I'm doubtful about that ;-) Doubt as much as you want. The architecture and implementations are crystal clear on the subject. >=20 > > > > At the HDL level, the device block may very well have an output signal > > which idles at logic-high, and pulses low to indicate an event, however > > it only becomes an *interrupt* if it is wired up to an interrupt > > controller; on its own it's just some output signal. What the DT > > interrupt specifier describes is that wiring, *from the interrupt > > controller's point of view*. If a pulsed signal is fed into an Arm GIC > > SPI input then as an interrupt it *is* IRQ_TYPE_EDGE_RISING, because > > that's how the GIC hardware will treat it. The integration as a whole >=20 > EDGE_RISING can leave its mark in the GIC, that's the *how*, but why > EDGE_FALLING can't, any reasons to justify this behavior? Err, because there is no bit that allows such a configuration, maybe? And that if someone has a falling edge signal, they can drop an inverter on the path and be done with it? Anyway, if you have an issue with the current behaviour of either implementations or architecture, I suggest you take up with ARM. > I believe that the drivers still work if the trigger type sanity check > in the GIC driver is removed. The driver would then be misrepresenting the architecture, and that would be a bug. There are enough bugs in that area that we don't need to add an extra one. M. --=20 Without deviation from the norm, progress is not possible.