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 A7707C5478C for ; Wed, 28 Feb 2024 11:33:00 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=b+W032cyv5jS3FZ0ZVkJMhfv8t5rbjft/4kDQ/xJNfc=; b=r+PRuUfd+Reg/A QmcWaflzzuH1JbTjC4SWsgMZtYgOUx5kIOOS5XCsQC4/QIMcNVqrGh8GRk58drzN40+LFRg6krFG5 gqBQGpD3bzpqovJM8lRpezOTwErzCHU9vmlYpZQThU8oyGWSvFWtO9lnbVJeIASSNsD9FqvzuFDVc Nv+sXJuQ9KVZw98jqRnLo0QN7UCY95qKT7+taTcKi6yn4jEwJW+NfXliQsg6PkXfZRah7Qy6X6F1A 9fbp6xbPp1NBzpZ3e+ralXuY3VS3SCD6PjSo4xSkpsnftf3S+W+gu/1+ij/qjeqrxW3KxrB2al/dH hYXjjH3hsxjRsqoE8CtA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfIB4-000000090Ig-1T8k; Wed, 28 Feb 2024 11:32:46 +0000 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfI6u-00000008yW9-2xzo for linux-arm-kernel@lists.infradead.org; Wed, 28 Feb 2024 11:28:30 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id A12871BF204; Wed, 28 Feb 2024 11:28:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1709119707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1CKPeuaFeg2qn7vKIBXgXa0jHiCHpqCVug3U+r+c9qM=; b=DBZ/9XhetHH8Lu80R4BIRRy4pKmJa5KlrneukUL2KEppGtVd3Jimh3KZ4BpnODbAenFSAX 5Ryf78hAO1Vg0QkgruAEsm4wpy7sGXOsipe0c7doA6m5DaCxtvT6DA0JriskHl6Vk3gLrJ tmuDTaJNM4ICu4cC8v4BAYh+zafRD5U/xpLtizRBobm32ikRp/JuSAUp7zGAzqskd+v+47 s1J7L6SHK7JYNkm9MVsR/kaCcvpiPj6Db+9KHyiGExr5N6XCgvkhcAnM1pgNYmNv9YjXqp tMi+0eTiHlFSR9AK2JY2zT16dcymg4LzQbKqhBkbo1MB0XPFXrnmWIz3VjqvBg== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Wed, 28 Feb 2024 12:28:20 +0100 Subject: [PATCH v2 22/30] gpio: nomadik: support shared GPIO IRQs MIME-Version: 1.0 Message-Id: <20240228-mbly-gpio-v2-22-3ba757474006@bootlin.com> References: <20240228-mbly-gpio-v2-0-3ba757474006@bootlin.com> In-Reply-To: <20240228-mbly-gpio-v2-0-3ba757474006@bootlin.com> To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Thomas Bogendoerfer Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, Gregory CLEMENT , Vladimir Kondratiev , Thomas Petazzoni , Tawfik Bayouk , =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.13.0 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240228_032829_062637_8EEC7F8C X-CRM114-Status: GOOD ( 17.83 ) 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 U3VwcG9ydCBhIHNpbmdsZSBJUlFzIHVzZWQgYnkgbXVsdGlwbGUgR1BJTyBiYW5rcy4gQ2hhbmdl IHRoZSBJUlEKaGFuZGxlciB0eXBlIGZyb20gYSBjaGFpbmVkIGhhbmRsZXIgKGFzIHVzZWQgYnkg Z3Bpb2xpYgpmb3IgLT5wYXJlbnRfaGFuZGxlcikgdG8gYSB0aHJlYWRlZCBJUlEuCgpVc2UgdGhl IGdlbmVyaWNfaGFuZGxlX2RvbWFpbl9pcnFfc2FmZSgpIGhlbHBlci4gVGhlIG5vbi1zYWZlIHZl cnNpb24KbXVzdCBiZSBjYWxsZWQgaW4gYSBuby1JUlEgY29udGV4dC4KClRoZSBNb2JpbGV5ZSBF eWVRNSBwbGF0Zm9ybSB1c2VzIHRoaXMgR1BJTyBjb250cm9sbGVyIGFuZCBzaGFyZSBhbiBJUlEK Zm9yIGl0cyB0d28gYmFua3MuCgpTaWduZWQtb2ZmLWJ5OiBUaMOpbyBMZWJydW4gPHRoZW8ubGVi cnVuQGJvb3RsaW4uY29tPgotLS0KIGRyaXZlcnMvZ3Bpby9ncGlvLW5vbWFkaWsuYyB8IDY4ICsr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDM2IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3Bpby9ncGlvLW5vbWFkaWsuYyBiL2RyaXZlcnMvZ3Bpby9ncGlvLW5vbWFkaWsuYwppbmRl eCBjMjJhMDg2NGNhNzAuLmNhNWMyODk2NTIyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncGlvL2dw aW8tbm9tYWRpay5jCisrKyBiL2RyaXZlcnMvZ3Bpby9ncGlvLW5vbWFkaWsuYwpAQCAtMjU1LDI3 ICsyNTUsMjggQEAgc3RhdGljIHZvaWQgbm1rX2dwaW9faXJxX3NodXRkb3duKHN0cnVjdCBpcnFf ZGF0YSAqZCkKIAljbGtfZGlzYWJsZShubWtfY2hpcC0+Y2xrKTsKIH0KIAotc3RhdGljIHZvaWQg bm1rX2dwaW9faXJxX2hhbmRsZXIoc3RydWN0IGlycV9kZXNjICpkZXNjKQorc3RhdGljIGlycXJl dHVybl90IG5ta19ncGlvX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKLQlz dHJ1Y3QgaXJxX2NoaXAgKmhvc3RfY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOwotCXN0 cnVjdCBncGlvX2NoaXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRlc2MpOwot CXN0cnVjdCBubWtfZ3Bpb19jaGlwICpubWtfY2hpcCA9IGdwaW9jaGlwX2dldF9kYXRhKGNoaXAp OwotCXUzMiBzdGF0dXM7Ci0KLQljaGFpbmVkX2lycV9lbnRlcihob3N0X2NoaXAsIGRlc2MpOwor CXN0cnVjdCBubWtfZ3Bpb19jaGlwICpubWtfY2hpcCA9IGRldl9pZDsKKwlzdHJ1Y3QgZ3Bpb19j aGlwICpjaGlwID0gJm5ta19jaGlwLT5jaGlwOworCXVuc2lnbmVkIGxvbmcgbWFzayA9IEdFTk1B U0soY2hpcC0+bmdwaW8gLSAxLCAwKTsKKwl1bnNpZ25lZCBsb25nIHN0YXR1czsKKwlpbnQgYml0 OwogCiAJY2xrX2VuYWJsZShubWtfY2hpcC0+Y2xrKTsKKwogCXN0YXR1cyA9IHJlYWRsKG5ta19j aGlwLT5hZGRyICsgTk1LX0dQSU9fSVMpOwotCWNsa19kaXNhYmxlKG5ta19jaGlwLT5jbGspOwog Ci0Jd2hpbGUgKHN0YXR1cykgewotCQlpbnQgYml0ID0gX19mZnMoc3RhdHVzKTsKKwkvKiBFbnN1 cmUgd2UgY2Fubm90IGxlYXZlIHBlbmRpbmcgYml0czsgdGhpcyBzaG91bGQgbmV2ZXIgb2NjdXIu ICovCisJaWYgKHVubGlrZWx5KHN0YXR1cyAmIH5tYXNrKSkKKwkJd3JpdGVsKHN0YXR1cyAmIH5t YXNrLCBubWtfY2hpcC0+YWRkciArIE5NS19HUElPX0lDKTsKIAotCQlnZW5lcmljX2hhbmRsZV9k b21haW5faXJxKGNoaXAtPmlycS5kb21haW4sIGJpdCk7Ci0JCXN0YXR1cyAmPSB+QklUKGJpdCk7 Ci0JfQorCWNsa19kaXNhYmxlKG5ta19jaGlwLT5jbGspOwogCi0JY2hhaW5lZF9pcnFfZXhpdCho b3N0X2NoaXAsIGRlc2MpOworCWZvcl9lYWNoX3NldF9iaXQoYml0LCAmc3RhdHVzLCBjaGlwLT5u Z3BpbykKKwkJZ2VuZXJpY19oYW5kbGVfZG9tYWluX2lycV9zYWZlKGNoaXAtPmlycS5kb21haW4s IGJpdCk7CisKKwlyZXR1cm4gSVJRX1JFVFZBTCgoc3RhdHVzICYgbWFzaykgIT0gMCk7CiB9CiAK IC8qIEkvTyBGdW5jdGlvbnMgKi8KQEAgLTU2OCwxOSArNTY5LDIwIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaXJxX2NoaXAgbm1rX2lycV9jaGlwID0gewogCUdQSU9DSElQX0lSUV9SRVNPVVJDRV9I RUxQRVJTLAogfTsKIAotc3RhdGljIGludCBubWtfZ3Bpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IG5ta19ncGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiB7Ci0Jc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+ZGV2Lm9mX25v ZGU7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wID0gZGV2LT5vZl9ub2RlOwogCXN0cnVjdCBubWtfZ3Bpb19jaGlwICpubWtfY2hpcDsK LQlzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwOwogCXN0cnVjdCBncGlvX2lycV9jaGlwICpnaXJxOwog CWJvb2wgc3VwcG9ydHNfc2xlZXBtb2RlOworCXN0cnVjdCBncGlvX2NoaXAgKmNoaXA7CiAJaW50 IGlycTsKIAlpbnQgcmV0OwogCi0Jbm1rX2NoaXAgPSBubWtfZ3Bpb19wb3B1bGF0ZV9jaGlwKG5w LCBkZXYpOworCW5ta19jaGlwID0gbm1rX2dwaW9fcG9wdWxhdGVfY2hpcChucCwgcGRldik7CiAJ aWYgKElTX0VSUihubWtfY2hpcCkpIHsKLQkJZGV2X2VycigmZGV2LT5kZXYsICJjb3VsZCBub3Qg cG9wdWxhdGUgbm1rIGNoaXAgc3RydWN0XG4iKTsKKwkJZGV2X2VycihkZXYsICJjb3VsZCBub3Qg cG9wdWxhdGUgbm1rIGNoaXAgc3RydWN0XG4iKTsKIAkJcmV0dXJuIFBUUl9FUlIobm1rX2NoaXAp OwogCX0KIApAQCAtNTg4LDkgKzU5MCw5IEBAIHN0YXRpYyBpbnQgbm1rX2dwaW9fcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogCQlkZXZpY2VfcHJvcGVydHlfcmVhZF9ib29sKGRl diwgInN0LHN1cHBvcnRzLXNsZWVwbW9kZSIpOwogCiAJLyogQ29ycmVjdCBwbGF0Zm9ybSBkZXZp Y2UgSUQgKi8KLQlkZXYtPmlkID0gbm1rX2NoaXAtPmJhbms7CisJcGRldi0+aWQgPSBubWtfY2hp cC0+YmFuazsKIAotCWlycSA9IHBsYXRmb3JtX2dldF9pcnEoZGV2LCAwKTsKKwlpcnEgPSBwbGF0 Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwogCWlmIChpcnEgPCAwKQogCQlyZXR1cm4gaXJxOwogCkBA IC02MDIsNyArNjA0LDcgQEAgc3RhdGljIGludCBubWtfZ3Bpb19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpkZXYpCiAJc3Bpbl9sb2NrX2luaXQoJm5ta19jaGlwLT5sb2NrKTsKIAogCWNo aXAgPSAmbm1rX2NoaXAtPmNoaXA7Ci0JY2hpcC0+cGFyZW50ID0gJmRldi0+ZGV2OworCWNoaXAt PnBhcmVudCA9IGRldjsKIAljaGlwLT5yZXF1ZXN0ID0gZ3Bpb2NoaXBfZ2VuZXJpY19yZXF1ZXN0 OwogCWNoaXAtPmZyZWUgPSBncGlvY2hpcF9nZW5lcmljX2ZyZWU7CiAJY2hpcC0+Z2V0X2RpcmVj dGlvbiA9IG5ta19ncGlvX2dldF9kaXI7CkBAIC02MTYsMTcgKzYxOCwxOSBAQCBzdGF0aWMgaW50 IG5ta19ncGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIAogCWdpcnEgPSAm Y2hpcC0+aXJxOwogCWdwaW9faXJxX2NoaXBfc2V0X2NoaXAoZ2lycSwgJm5ta19pcnFfY2hpcCk7 Ci0JZ2lycS0+cGFyZW50X2hhbmRsZXIgPSBubWtfZ3Bpb19pcnFfaGFuZGxlcjsKLQlnaXJxLT5u dW1fcGFyZW50cyA9IDE7Ci0JZ2lycS0+cGFyZW50cyA9IGRldm1fa2NhbGxvYygmZGV2LT5kZXYs IDEsCi0JCQkJICAgICBzaXplb2YoKmdpcnEtPnBhcmVudHMpLAotCQkJCSAgICAgR0ZQX0tFUk5F TCk7Ci0JaWYgKCFnaXJxLT5wYXJlbnRzKQotCQlyZXR1cm4gLUVOT01FTTsKLQlnaXJxLT5wYXJl bnRzWzBdID0gaXJxOworCWdpcnEtPnBhcmVudF9oYW5kbGVyID0gTlVMTDsKKwlnaXJxLT5udW1f cGFyZW50cyA9IDA7CisJZ2lycS0+cGFyZW50cyA9IE5VTEw7CiAJZ2lycS0+ZGVmYXVsdF90eXBl ID0gSVJRX1RZUEVfTk9ORTsKIAlnaXJxLT5oYW5kbGVyID0gaGFuZGxlX2VkZ2VfaXJxOwogCisJ cmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgbm1rX2dwaW9faXJxX2hhbmRsZXIsIElS UUZfU0hBUkVELAorCQkJICAgICAgIGRldl9uYW1lKGRldiksIG5ta19jaGlwKTsKKwlpZiAocmV0 KSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHJlcXVlc3RpbmcgSVJRXG4iKTsKKwkJcmV0dXJu IHJldDsKKwl9CisKIAljbGtfZW5hYmxlKG5ta19jaGlwLT5jbGspOwogCW5ta19jaGlwLT5sb3dl bWkgPSByZWFkbF9yZWxheGVkKG5ta19jaGlwLT5hZGRyICsgTk1LX0dQSU9fTE9XRU1JKTsKIAlj bGtfZGlzYWJsZShubWtfY2hpcC0+Y2xrKTsKQEAgLTYzNSw5ICs2MzksOSBAQCBzdGF0aWMgaW50 IG5ta19ncGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEoZGV2LCBubWtfY2hpcCk7CisJ cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgbm1rX2NoaXApOwogCi0JZGV2X2luZm8oJmRldi0+ ZGV2LCAiY2hpcCByZWdpc3RlcmVkXG4iKTsKKwlkZXZfaW5mbyhkZXYsICJjaGlwIHJlZ2lzdGVy ZWRcbiIpOwogCiAJcmV0dXJuIDA7CiB9CgotLSAKMi40NC4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=