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 2362BC433F5 for ; Thu, 26 May 2022 06:55:28 +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=gs43d0Hs6s4I38PeSSShcRVVKi6jrB37OyGUwGZAR3c=; b=fKnwepCwfuMc2m 3z74B8b4iVWyM17eNmiZCX3zpFy2EGuuiWgh9Y9y6Fr2wpxy6hM3hdBmrEMl7wd7hpMstdVTx8m+j 1EYsLbXxvw2mLBIz16IWiv1wsr1wjo9Rce+QZMmcRjnMjHtPuBtsI9DkFivncUKMoLtNldm/UnX/b VKWumzcl726X5n1gRbEL6Ug3jBxtXo+K1NXWAC/srsStUPhs2LO7lAT2Cybq2uHlPO8nBX2yX5C2g VA9B/1uBWD/Q+uDHBRxC9C705VBidWbCRMjTzLOeJqIZlJc6w5bt1ry4QqXEbXYHw3HfqfPTeMjnE kDEqpXYdz/7msGoWVjPg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nu7Nt-00Df7Z-4k; Thu, 26 May 2022 06:54:13 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nu7Nn-00Df66-Sl for linux-arm-kernel@lists.infradead.org; Thu, 26 May 2022 06:54:09 +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 ams.source.kernel.org (Postfix) with ESMTPS id 98559B81EBC; Thu, 26 May 2022 06:54:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BC4EC385A9; Thu, 26 May 2022 06:54:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1653548045; bh=v8SvQPQ97nFV5d3lLq/BEczJQQiolsIIT/VHCP9PfFk=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=sw9p0cDwBjfb68NgDGb8yPDJPc9J91TELIIAqwntVcsWr8+vHQ0JzI3dBxs2DRmiq 6xaGCLFSMxbkns4We5NRNCgPHkjC2ExYXdY2lLthEp1g5g+ojmCItPDlCSLpZZjwUU c3DYeqkbfqpyfizawGrQzvcBigVlzrrG9ziitpi4qtrfqaMZjGSAgpLL9t7rjZqZqL jCeCGWupcQPjkbDqauQj3mv8oGs02nfm+ofULrzL5qDx+21otL9MXJh80QP4HCrVE6 +Uc3Jj0AMpXMSNtVLZq12t0YYPLu/tAQFjLlPe+BzMEH/z7Q0cgpmigwYZxsv/n8IS 6uu9mVhrpy/6A== Received: from athedsl-4490923.home.otenet.gr ([94.71.82.179] 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 1nu7Ni-00DmwU-JY; Thu, 26 May 2022 07:54:02 +0100 Date: Thu, 26 May 2022 07:54:01 +0100 Message-ID: <87ee0gn5rq.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> 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.71.82.179 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-20220525_235408_269219_5CC01BD5 X-CRM114-Status: GOOD ( 38.65 ) 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 T24gVGh1LCAyNiBNYXkgMjAyMiAwNDo0NDo0MSArMDEwMCwKcmljaGFyZCBjbGFyayA8cmljaGFy ZC54bnUuY2xhcmtAZ21haWwuY29tPiB3cm90ZToKPiAKPiBPbiBUaHUsIE1heSAyNiwgMjAyMiBh dCAzOjE0IEFNIFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+IHdyb3RlOgo+ID4K PiA+IE9uIDIwMjItMDUtMjUgMTE6MDEsIHJpY2hhcmQgY2xhcmsgd3JvdGU6Cj4gPiA+IEhpIE1h cmMsCj4gPiA+Cj4gPiA+IEZvciBiZWxvdyBjb2RlIHNuaXBwZXQgYWJvdXQgU1BJIGludGVycnVw dCB0cmlnZ2VyIHR5cGU6Cj4gPiA+Cj4gPiA+IHN0YXRpYyBpbnQgZ2ljX3NldF90eXBlKHN0cnVj dCBpcnFfZGF0YSAqZCwgdW5zaWduZWQgaW50IHR5cGUpCj4gPiA+IHsKPiA+ID4gICAgICAgICAg Li4uCj4gPiA+ICAgICAgICAgIC8qIFNQSXMgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIHN1cHBv cnRlZCB0eXBlcyAqLwo+ID4gPiAgICAgICAgICBpZiAoKHJhbmdlID09IFNQSV9SQU5HRSB8fCBy YW5nZSA9PSBFU1BJX1JBTkdFKSAmJgo+ID4gPiAgICAgICAgICAgICAgdHlwZSAhPSBJUlFfVFlQ RV9MRVZFTF9ISUdIICYmIHR5cGUgIT0gSVJRX1RZUEVfRURHRV9SSVNJTkcpCj4gPiA+ICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICAgICAgICAgIC4uLgo+ID4gPiB9Cj4g PiA+Cj4gPiA+IFdlIGhhdmUgYSBkZXZpY2UgYXQgaGFuZCB3aG9zZSBpbnRlcnJ1cHQgdHlwZSBp cyBTUEksIEZhbGxpbmcgZWRnZQo+ID4gPiB3aWxsIHRyaWdnZXIgdGhlIGludGVycnVwdC4gQnV0 IHRoZSByZXF1ZXN0X2lycSg1MCwgaGFuZGxlciwKPiA+ID4gSVJRX1RZUEVfRURHRV9GQUxMSU5H LCAuLi4pIHdpbGwgcmV0dXJuIC1FSU5WQUwuCj4gPiA+Cj4gPiA+IFRoZSBxdWVzdGlvbiBpcywg d2h5IG11c3QgdGhlIFNQSSBpbnRlcnJ1cHQgdXNlIElSUV9UWVBFX0VER0VfUklTSU5HCj4gPiA+ IGluc3RlYWQgb2YgSVJRX1RZUEVfRURHRV9GQUxMSU5HPwo+ID4KPiA+IEJlY2F1c2UgdGhhdCdz IHdoYXQgdGhlIEdJQyBhcmNoaXRlY3R1cmVbMV0gc2F5cy4gRnJvbSBzZWN0aW9uIDEuMi4xCj4g PiAiSW50ZXJydXB0IFR5cGVzIjoKPiA+Cj4gPiAiQW4gaW50ZXJydXB0IHRoYXQgaXMgZWRnZS10 cmlnZ2VyZWQgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydHk6Cj4gPiAgICAgICAgIOKAoiBJdCBp cyBhc3NlcnRlZCBvbiBkZXRlY3Rpb24gb2YgYSByaXNpbmcgZWRnZSBvZiBhbiBpbnRlcnJ1cHQg c2lnbmFsCj4gCj4gVGhpcyByaXNpbmcgZWRnZSBkZXRlY3Rpb24gaXMgbm90IHRydWUsIGl0J3Mg YWxzbyBhc3NlcnRlZCBieQo+IGZhbGxpbmcgZWRnZSwganVzdCBsaWtlIHRoZSBHSUNEX0lDRkdS IHJlZ2lzdGVyIHNheXM6IENoYW5naW5nIHRoZQo+IGludGVycnVwdCBjb25maWd1cmF0aW9uIGJl dHdlZW4gbGV2ZWwtc2Vuc2l0aXZlIGFuZCAqZWRnZS10cmlnZ2VyZWQKPiAoaW4gZWl0aGVyIGRp cmVjdGlvbikqIGF0IGEgdGltZSB3aGVuIHRoZXJlIGlzIGEgcGVuZGluZyBpbnRlcnJ1cHQKPiAu Li4sCgpMZXQgbWUgZmluaXNoIHRoZSBzZW50ZW5jZSBmb3IgeW91OgoKPHF1b3RlPgouLi4gd2ls bCBsZWF2ZSB0aGUgaW50ZXJydXB0IGluIGFuIFVOS05PV04gcGVuZGluZyBzdGF0ZS4KPC9xdW90 ZT4KCmFuZCB0aGUgZGlyZWN0aW9uIGhlcmUgaXMgYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb24gYml0 LCBub3QgdGhlIGVkZ2UKZGlyZWN0aW9uLgoKPiB3aGljaCBoYXMgYmVlbiBjb25maXJtZWQgYnkg R0lDLTUwMCBvbiBteSBwbGF0Zm9ybS4KCkZyb20gdGhlIEdJQzUwMCByMXAxIFRSTSwgcGFnZSAy LTg6Cgo8cXVvdGU+ClNQSXMgYXJlIGdlbmVyYXRlZCBlaXRoZXIgYnkgd2lyZSBpbnB1dHMgb3Ig Ynkgd3JpdGVzIHRvIHRoZSBBWEk0CnNsYXZlIHByb2dyYW1taW5nIGludGVyZmFjZS4gIFRoZSBH SUMtNTAwIGNhbiBzdXBwb3J0IHVwIHRvIDk2MCBTUElzCmNvcnJlc3BvbmRpbmcgdG8gdGhlIGV4 dGVybmFsIHNwaVs5OTE6MzJdIHNpZ25hbC4gVGhlIG51bWJlciBvZiBTUElzCmF2YWlsYWJsZSBk ZXBlbmRzIG9uIHRoZSBpbXBsZW1lbnRlZCBjb25maWd1cmF0aW9uLiBUaGUgcGVybWl0dGVkCnZh bHVlcyBhcmUgMzItOTYwLCBpbiBzdGVwcyBvZiAzMi4gVGhlIGZpcnN0IFNQSSBoYXMgYW4gSUQg bnVtYmVyIG9mCjMyLiBZb3UgY2FuIGNvbmZpZ3VyZSB3aGV0aGVyIGVhY2ggU1BJIGlzIHRyaWdn ZXJlZCBvbiBhIHJpc2luZyBlZGdlCm9yIGlzIGFjdGl2ZS1ISUdIIGxldmVsLXNlbnNpdGl2ZS4K PC9xdW90ZT4KClNvIEkgaGF2ZSBubyBpZGVhIHdoYXQgeW91IGFyZSB0YWxraW5nIGFib3V0LCBi dXQgeW91IGRlZmluaXRlbHkgaGF2ZQp0aGUgd3JvbmcgZW5kIG9mIHRoZSBzdGljay4gQm90aCB0 aGUgYXJjaGl0ZWN0dXJlIGFuZCB0aGUKaW1wbGVtZW50YXRpb25zIGFyZSBhbGlnbmVkIHdpdGgg d2hhdCB0aGUgR0lDIGRyaXZlcnMgZG8uCgpJZiB5b3VyIHN5c3RlbSBiZWhhdmVzIGRpZmZlcmVu dGx5LCB0aGlzIGlzIGJlY2F1c2Ugc29tZXRoaW5nIGlzCmludmVydGluZyB0aGUgc2lnbmFsLCB3 aGljaCBpcyBleHRyZW1lbHkgY29tbW9uLiBKdXN0IGRlc2NyaWJlIHRoaXMgaW4KeW91ciBkZXZp Y2UgdHJlZSwgb3IgbGllIHRvIHRoZSBrZXJuZWwsIHdoaWNoZXZlciB3YXkgeW91IHdhbnQuCgo+ IAo+ID4gYW5kIHRoZW4sIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXRlIG9mIHRoZSBzaWduYWwsIHJl bWFpbnMgYXNzZXJ0ZWQgdW50aWwKPiA+IHRoZSBpbnRlcnJ1cHQgaXMgYWNrbm93bGVkZ2VkIGJ5 IHNvZnR3YXJlLiIKPiA+Cj4gPiBFeHRlcm5hbCBzaWduYWxzIHdpdGggdGhlIHdyb25nIHBvbGFy aXR5IG1heSBuZWVkIGV4dGVybmFsIGxvZ2ljIHRvCj4gCj4gSU1PLCBpdCdzIG5vdCB3cm9uZyBw b2xhcml0eSBmb3IgYSBkZXZpY2UgdG8gaW50ZXJydXB0IHRoZSBwcm9jZXNzb3IKPiB3aXRoIGEg ZmFsbGluZyBlZGdlLCBpdCdzIG5vcm1hbC4gQWN0dWFsbHksIHRoZSBHSUMgc3VwcG9ydHMKPiBl ZGdlLXRyaWdnZXIgdHlwZToKPiAnMGIxMCBDb3JyZXNwb25kaW5nIGludGVycnVwdCBpcyBlZGdl LXRyaWdnZXJlZCcsIHRoZQo+IElSUV9UWVBFX0VER0VfUklTSU5HIGNoZWNrIGluIGdpY19zZXRf dHlwZSguLi4pIGlzIGp1c3QgYSBzYW5pdHkgY2hlY2sKPiBmcm9tIHRoaXMgcG9pbnQgb2Ygdmll dy4KCk5vLCB0aGlzIGlzIGFuIGFyY2hpdGVjdHVyYWwgcmVxdWlyZW1lbnQsIGFuZCB0aGUgZHJp dmVyIGNhdGVycyBmb3IKdGhlIGFyY2hpdGVjdHVyZSAoYW5kIG9ubHkgdGhhdCkuCgo+IEkgd291 bGQgbW9yZSBsaWtlIHRvIGhhdmUgYmVsb3cgY2hhbmdlcyBhcHBsaWVkOgo+IAo+IC0tLSBhL2xp bnV4L2RyaXZlcnMvaXJxY2hpcC9pcnEtZ2ljLXYzLmMKPiArKysgYi9saW51eC9kcml2ZXJzL2ly cWNoaXAvaXJxLWdpYy12My5jCj4gCj4gQEAgLTU2MCw4ICs1NjAsNyBAQCBzdGF0aWMgaW50IGdp Y19zZXRfdHlwZShzdHJ1Y3QgaXJxX2RhdGEgKmQsCj4gdW5zaWduZWQgaW50IHR5cGUpCj4gICAg ICAgICAgICAgICAgIHJldHVybiB0eXBlICE9IElSUV9UWVBFX0VER0VfUklTSU5HID8gLUVJTlZB TCA6IDA7Cj4gICAgICAgICAvKiBTUElzIGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBzdXBwb3J0 ZWQgdHlwZXMgKi8KPiAtICAgICAgIGlmICgocmFuZ2UgPT0gU1BJX1JBTkdFIHx8IHJhbmdlID09 IEVTUElfUkFOR0UpICYmCj4gLSAgICAgICAgICAgdHlwZSAhPSBJUlFfVFlQRV9MRVZFTF9ISUdI ICYmIHR5cGUgIT0gSVJRX1RZUEVfRURHRV9SSVNJTkcpCj4gKyAgICAgICBpZiAoKHJhbmdlID09 IFNQSV9SQU5HRSB8fCByYW5nZSA9PSBFU1BJX1JBTkdFKSAmJiAhKHR5cGUgJiAweGYpKQo+ICAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAKCk5vdCB1bmRlciBteSB3YXRjaC4KClRo YW5rcywKCglNLgoKLS0gCldpdGhvdXQgZGV2aWF0aW9uIGZyb20gdGhlIG5vcm0sIHByb2dyZXNz IGlzIG5vdCBwb3NzaWJsZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK 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 9F50EC433F5 for ; Thu, 26 May 2022 06:54:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346304AbiEZGyN (ORCPT ); Thu, 26 May 2022 02:54:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346296AbiEZGyL (ORCPT ); Thu, 26 May 2022 02:54:11 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B74872E3E for ; Wed, 25 May 2022 23:54:08 -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 8F162B81ECC for ; Thu, 26 May 2022 06:54:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BC4EC385A9; Thu, 26 May 2022 06:54:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1653548045; bh=v8SvQPQ97nFV5d3lLq/BEczJQQiolsIIT/VHCP9PfFk=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=sw9p0cDwBjfb68NgDGb8yPDJPc9J91TELIIAqwntVcsWr8+vHQ0JzI3dBxs2DRmiq 6xaGCLFSMxbkns4We5NRNCgPHkjC2ExYXdY2lLthEp1g5g+ojmCItPDlCSLpZZjwUU c3DYeqkbfqpyfizawGrQzvcBigVlzrrG9ziitpi4qtrfqaMZjGSAgpLL9t7rjZqZqL jCeCGWupcQPjkbDqauQj3mv8oGs02nfm+ofULrzL5qDx+21otL9MXJh80QP4HCrVE6 +Uc3Jj0AMpXMSNtVLZq12t0YYPLu/tAQFjLlPe+BzMEH/z7Q0cgpmigwYZxsv/n8IS 6uu9mVhrpy/6A== Received: from athedsl-4490923.home.otenet.gr ([94.71.82.179] 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 1nu7Ni-00DmwU-JY; Thu, 26 May 2022 07:54:02 +0100 Date: Thu, 26 May 2022 07:54:01 +0100 Message-ID: <87ee0gn5rq.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> 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.71.82.179 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 04:44:41 +0100, richard clark wrote: >=20 > 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_RISING > > > 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 in= terrupt signal >=20 > 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. > which has been confirmed by GIC-500 on my platform. =46rom 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. >=20 > > and then, regardless of the state of the signal, remains asserted until > > the interrupt is acknowledged by software." > > > > External signals with the wrong polarity may need external logic to >=20 > IMO, it's not wrong polarity for a device to interrupt the processor > with a falling edge, it's normal. Actually, the GIC supports > edge-trigger type: > '0b10 Corresponding interrupt is edge-triggered', the > IRQ_TYPE_EDGE_RISING check in gic_set_type(...) is just a sanity check > from this point of view. No, this is an architectural requirement, and the driver caters for the architecture (and only that). > I would more like to have below changes applied: >=20 > --- a/linux/drivers/irqchip/irq-gic-v3.c > +++ b/linux/drivers/irqchip/irq-gic-v3.c >=20 > @@ -560,8 +560,7 @@ static int gic_set_type(struct irq_data *d, > unsigned int type) > return type !=3D IRQ_TYPE_EDGE_RISING ? -EINVAL : 0; > /* 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_RISI= NG) > + if ((range =3D=3D SPI_RANGE || range =3D=3D ESPI_RANGE) && !(type= & 0xf)) > return -EINVAL; >=20 Not under my watch. Thanks, M. --=20 Without deviation from the norm, progress is not possible.