From patchwork Thu Oct 24 20:14:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 11210679 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 095D613B1 for ; Thu, 24 Oct 2019 20:15:55 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id CF81621655 for ; Thu, 24 Oct 2019 20:15:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="mTXkFubi"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ek5sPHSz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CF81621655 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=8+52kVQrIx6E3o4fP452PUyYBrIkYnslywr/AO+xmTY=; b=mTXkFubijqJbY+t6u1invZBZKZ PUUrImSVk+/hMB6Gmwhy90QdhOrBHuTRE6D5653SR+XTuovqHgHvPmeEsT4EJwz7N1P8vYQQJU6+U h1TTjIuvWUqdTeT1FqZkhC0m4Vkqw1/QfLUjYS7DPkjjX+WgzRyWL4h/IAILEHSnMloN3PyxM5i1I xXQjGacip3cr6P6DYfeR6nBwRP+pYYmMYY5DiR103J/1nelFB+sSc29DMo2SdYRX2+EIoI93rrH4E FycQOAaQwKLazKR4oBSXtU1uM3X5GrtJOKS/8MTzj/BiRuUeW0hgeQD4wYK4dqscvaRJ52dfVHCF3 5YkHl4AA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjWR-0001ww-TU; Thu, 24 Oct 2019 20:15:51 +0000 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjV6-00085A-JK for linux-arm-kernel@lists.infradead.org; Thu, 24 Oct 2019 20:14:30 +0000 Received: by mail-wr1-x443.google.com with SMTP id z11so4083299wro.11 for ; Thu, 24 Oct 2019 13:14:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=nflyxBy3Fu9U2+RG84t/ZVbeUppgbKt41+dBtuuebF0=; b=ek5sPHSzYaao6sAVHC55P2Hkq0ZVt8JMs5x3AUEUJCaVozknLx3ZZ0oC/vOPz8/C6P kiad7snMiLIC4Yo9plU/57CdeP+srPqaZEhoNTgD3Y+4IFq7fLFRFM8KuJEmYEnFDeow UKgJlcSQvpOsnN12/oCr4w8ejw/5e6UMGcfXO0byRq+4FzJJ9RyyruoBws+zPRiVNz2O D0tV/IgdC82+xqgr0Gv6Rxjm6cRyAYMPOThWEEfPt7Tjz2KFfWk9NmT64l8ohDkUyhL7 6AtCFh5U88eiY+B7pKQ/+/g8h+cbqBnw1Vrz9leVVl0xlHbyfGwgeGLhIrNNGDPxwRAR +S7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=nflyxBy3Fu9U2+RG84t/ZVbeUppgbKt41+dBtuuebF0=; b=RhElJvS6Yzp19WujJyHtvQAMA1l03yWoYJGZ+d94sWL6a6NlQ+m+RWF2kfJy2bCja4 1HlZE6LZIhyLZcBfX7EyB6kw6d90y/HjtCeOllTOm9+oL2wx3vJrYoz8IXrapJMK3gkD v8QCJsVXLbyj+3Zd6m0PATFTst/QV5LfhIw5iBP3es0Ukr0YJLYkHWNWG83VfpcIUdjE 5NMrN8pUUyB9N6A6Z8C7+UB7cytY/+uyyscWwlkuqxxYAEutdOkr14Mm2Zzrd4tic83d pFDLDyJ6jTXomnJ13W67f9YDI8zUEVmOsmGQsIy6ND7MlZGDn9AfLZTsgtu+oZtSUQU+ 8wqw== X-Gm-Message-State: APjAAAXYtpHCGKAKA96K2JsOL//fbNskH8t4/FxZflWvTs2hnqPoe3M3 47rb7v3PXLvFEJo9M+h33Zg= X-Google-Smtp-Source: APXvYqzSzhEeQHn7MNftoxjVTbM10FZaz1/fHauXJ2XapiiqDSTKI909t/xPFEX+gu30UzlJ7AVSzA== X-Received: by 2002:adf:f7d1:: with SMTP id a17mr4830177wrq.111.1571948066846; Thu, 24 Oct 2019 13:14:26 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id u21sm4788536wmu.27.2019.10.24.13.14.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 13:14:26 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH v3 1/5] irqchip/irq-bcm7038-l1: Add PM support Date: Thu, 24 Oct 2019 13:14:11 -0700 Message-Id: <20191024201415.23454-2-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191024201415.23454-1-f.fainelli@gmail.com> References: <20191024201415.23454-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191024_131428_653162_F46E15A0 X-CRM114-Status: GOOD ( 17.20 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:443 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (f.fainelli[at]gmail.com) -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Florian Fainelli , Jason Cooper , Marc Zyngier , Rob Herring , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , Justin Chen , Thomas Gleixner , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Justin Chen The current L1 controller does not mask any interrupts when dropping into suspend. This mean we can receive unexpected wake up sources. Modified the BCM7038 L1 controller to mask the all non-wake interrupts before dropping into suspend. Signed-off-by: Justin Chen Signed-off-by: Florian Fainelli --- drivers/irqchip/irq-bcm7038-l1.c | 89 ++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c index fc75c61233aa..689e487be80c 100644 --- a/drivers/irqchip/irq-bcm7038-l1.c +++ b/drivers/irqchip/irq-bcm7038-l1.c @@ -27,6 +27,7 @@ #include #include #include +#include #define IRQS_PER_WORD 32 #define REG_BYTES_PER_IRQ_WORD (sizeof(u32) * 4) @@ -39,6 +40,10 @@ struct bcm7038_l1_chip { unsigned int n_words; struct irq_domain *domain; struct bcm7038_l1_cpu *cpus[NR_CPUS]; +#ifdef CONFIG_PM_SLEEP + struct list_head list; + u32 wake_mask[MAX_WORDS]; +#endif u8 affinity[MAX_WORDS * IRQS_PER_WORD]; }; @@ -287,6 +292,77 @@ static int __init bcm7038_l1_init_one(struct device_node *dn, return 0; } +#ifdef CONFIG_PM_SLEEP +/* + * We keep a list of bcm7038_l1_chip used for suspend/resume. This hack is + * used because the struct chip_type suspend/resume hooks are not called + * unless chip_type is hooked onto a generic_chip. Since this driver does + * not use generic_chip, we need to manually hook our resume/suspend to + * syscore_ops. + */ +static LIST_HEAD(bcm7038_l1_intcs_list); +static DEFINE_RAW_SPINLOCK(bcm7038_l1_intcs_lock); + +static int bcm7038_l1_suspend(void) +{ + struct bcm7038_l1_chip *intc; + int boot_cpu, word; + + /* Wakeup interrupt should only come from the boot cpu */ + boot_cpu = cpu_logical_map(0); + + list_for_each_entry(intc, &bcm7038_l1_intcs_list, list) { + for (word = 0; word < intc->n_words; word++) { + l1_writel(~intc->wake_mask[word], + intc->cpus[boot_cpu]->map_base + reg_mask_set(intc, word)); + l1_writel(intc->wake_mask[word], + intc->cpus[boot_cpu]->map_base + reg_mask_clr(intc, word)); + } + } + + return 0; +} + +static void bcm7038_l1_resume(void) +{ + struct bcm7038_l1_chip *intc; + int boot_cpu, word; + + boot_cpu = cpu_logical_map(0); + + list_for_each_entry(intc, &bcm7038_l1_intcs_list, list) { + for (word = 0; word < intc->n_words; word++) { + l1_writel(intc->cpus[boot_cpu]->mask_cache[word], + intc->cpus[boot_cpu]->map_base + reg_mask_set(intc, word)); + l1_writel(~intc->cpus[boot_cpu]->mask_cache[word], + intc->cpus[boot_cpu]->map_base + reg_mask_clr(intc, word)); + } + } +} + +static struct syscore_ops bcm7038_l1_syscore_ops = { + .suspend = bcm7038_l1_suspend, + .resume = bcm7038_l1_resume, +}; + +static int bcm7038_l1_set_wake(struct irq_data *d, unsigned int on) +{ + struct bcm7038_l1_chip *intc = irq_data_get_irq_chip_data(d); + unsigned long flags; + u32 word = d->hwirq / IRQS_PER_WORD; + u32 mask = BIT(d->hwirq % IRQS_PER_WORD); + + raw_spin_lock_irqsave(&intc->lock, flags); + if (on) + intc->wake_mask[word] |= mask; + else + intc->wake_mask[word] &= ~mask; + raw_spin_unlock_irqrestore(&intc->lock, flags); + + return 0; +} +#endif + static struct irq_chip bcm7038_l1_irq_chip = { .name = "bcm7038-l1", .irq_mask = bcm7038_l1_mask, @@ -295,6 +371,9 @@ static struct irq_chip bcm7038_l1_irq_chip = { #ifdef CONFIG_SMP .irq_cpu_offline = bcm7038_l1_cpu_offline, #endif +#ifdef CONFIG_PM_SLEEP + .irq_set_wake = bcm7038_l1_set_wake, +#endif }; static int bcm7038_l1_map(struct irq_domain *d, unsigned int virq, @@ -340,6 +419,16 @@ int __init bcm7038_l1_of_init(struct device_node *dn, goto out_unmap; } +#ifdef CONFIG_PM_SLEEP + /* Add bcm7038_l1_chip into a list */ + raw_spin_lock(&bcm7038_l1_intcs_lock); + list_add_tail(&intc->list, &bcm7038_l1_intcs_list); + raw_spin_unlock(&bcm7038_l1_intcs_lock); + + if (list_is_singular(&bcm7038_l1_intcs_list)) + register_syscore_ops(&bcm7038_l1_syscore_ops); +#endif + pr_info("registered BCM7038 L1 intc (%pOF, IRQs: %d)\n", dn, IRQS_PER_WORD * intc->n_words); From patchwork Thu Oct 24 20:14:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 11210681 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5847313B1 for ; Thu, 24 Oct 2019 20:16:10 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 270FA21655 for ; Thu, 24 Oct 2019 20:16:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YsA2NY3W"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QdI9CBo+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 270FA21655 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=1q28LtMyNdXvsL4BxkC/b8ngB9SgvTDTSxHYxNc4OLg=; b=YsA2NY3WRGeU6MF2mhb1olxrrd Bgu5FqrBMv1dzbYJpSOjE1Gv/Dqh6E2FFYEkQmXsRIMjtuuE92Kjvhi4/7VF6O9623C9v/Rdr9J1r dOqt6uI66n3vUN40lsk2/TZVEIKYLnk0lEKIpV8X3/HCgnp9ry/YhRetCcOyX8JQtc2t0OEmy5pd1 cDJziRSNuc/sSG0MZxNe+tC/wNCV+him57jESC86IN740H3yZx2tptDD00FelzL/YsU0I8rOVqLod PxthxXy1kwEoDiZRfiUV7Xsh6lJkDIiG2Lt7sZpHlhzK2bwJZfj0cJRQyM/IrGcuprE4cQUlc/Aij fk9ODVeA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjWi-0002DN-46; Thu, 24 Oct 2019 20:16:08 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjV9-00088Q-PV for linux-arm-kernel@lists.infradead.org; Thu, 24 Oct 2019 20:14:33 +0000 Received: by mail-wm1-x343.google.com with SMTP id 11so721460wmk.0 for ; Thu, 24 Oct 2019 13:14:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MxFvyutT3TeFv9tuYgjWUXMmMJVTn8dALM+g0eVelPM=; b=QdI9CBo+X3LUGiOOarfRIMRoq2d0UEbzIKkPRidHPHuATjOrDAp1Cc9P59zxqPyVk1 +uHrHz5C2konAMC6RmntdYQbCDGcmhyFNO9uNYMqb7BEIKujCGrH1wQ8JnzXHISjPa82 EBwczDq6hUEypGCchTG7LNMJcRJ1GCYqc8A3A2W5RqtY2nz4PU1tdwIKxZWP5JMQtm/K HpqR31IFn1yEozVoKLek4XlZ9MDUYqW+ji+VKDw7zK9uyChTHYixNMlag88At4Mr3GAE VRPiMPy5UBz4Vehksda8NyfBxIc+H4bANFvsoDVDSppATcfOOQPi19wvxgKHDzhx8ugr XEEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=MxFvyutT3TeFv9tuYgjWUXMmMJVTn8dALM+g0eVelPM=; b=W77n6QFsT8gAf4WRdeb3xmoYRdMmKCX05ChTfYRt2XXNddOEtZ2IuNt75FazLXE1Iw SVqHsa/z3QBnBJj+OjhF0dqIbjLN/Jn3hvD3Bgrj3x8isNvDxbFnIPYpfEmNEJMiuu2D v9+8O3jOPbUisa6G9IB4rHO3Kk0RigBWBOC3pTg5MjspciMmxbv9L1kuZ3FVTcJmZXkm qvSOCUzNjmjAFXyKS1lgtwVIHUty130speFbhyVzBjBmTVQenTD0/WLv+Nk5rRQ8jouU NF1n/4TdXfy92ksa9OIuYUqrfJV4yLIrYSxVUtulEuQEOk8ssKo9OKvV5ndCygsd3BBR zsRQ== X-Gm-Message-State: APjAAAXq4nhdrp+39Wb1tkZVwuFK3Y2Wr8rNfbS0wxSJZMCYqHvY2wrt 5a9Gv5wsxKlzF2YvF+16kX0= X-Google-Smtp-Source: APXvYqyhSCLxWJYmS/l2UlSbZ8O72LLkwjqVf7Bxc6RIqRSE5mZrgfoLL9O4u9579TOgwUabK+FJ+A== X-Received: by 2002:a7b:c186:: with SMTP id y6mr137363wmi.67.1571948069688; Thu, 24 Oct 2019 13:14:29 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id u21sm4788536wmu.27.2019.10.24.13.14.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 13:14:29 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH v3 2/5] dt-bindings: Document brcm, irq-can-wake for brcm, bcm7038-l1-intc.txt Date: Thu, 24 Oct 2019 13:14:12 -0700 Message-Id: <20191024201415.23454-3-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191024201415.23454-1-f.fainelli@gmail.com> References: <20191024201415.23454-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191024_131431_865016_DAA96522 X-CRM114-Status: GOOD ( 11.18 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:343 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (f.fainelli[at]gmail.com) -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Florian Fainelli , Jason Cooper , Marc Zyngier , Rob Herring , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , Thomas Gleixner , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org The BCM7038 L1 interrupt controller can be used as a wake-up interrupt controller on MIPS and ARM-based systems, document the brcm,irq-can-wake which has been "standardized" across Broadcom interrupt controllers. Acked-by: Rob Herring Signed-off-by: Florian Fainelli --- .../bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt index 2117d4ac1ae5..4eb043270f5b 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt @@ -31,6 +31,11 @@ Required properties: - interrupts: specifies the interrupt line(s) in the interrupt-parent controller node; valid values depend on the type of parent interrupt controller +Optional properties: + +- brcm,irq-can-wake: If present, this means the L1 controller can be used as a + wakeup source for system suspend/resume. + If multiple reg ranges and interrupt-parent entries are present on an SMP system, the driver will allow IRQ SMP affinity to be set up through the /proc/irq/ interface. In the simplest possible configuration, only one From patchwork Thu Oct 24 20:14:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 11210683 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D0B6D112C for ; Thu, 24 Oct 2019 20:16:24 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id AB9FE21655 for ; Thu, 24 Oct 2019 20:16:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jlTM3tVY"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="t/1pSz37" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AB9FE21655 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=i9IQ7iYKnGFj89jh/vQ/vyqUeMVMvuwT4NgU/RGgFMQ=; b=jlTM3tVY9Rem6rfK7AG8palWbv 1Nb28Luyp1AZTtLdkvF7CgVrm3BjPAIE77cyvlETVucHJO1iH9DuoY5BgWOAtSe5ZlJzevd4N2nTQ 1AuTVweX9Hz6tDxnFTOlN09SPjSZBGcLc8IzWh/EnrW5LvbVDk5FFZ61XSEfaUHyXGD6aLgleN4T1 pxpc1QcFiHGTpS71D2+5MnlXqDgzH4wdvNXYIwaHM2qI9jkb/vNRnNnmmtB2pD48w2Lv/2jeQwG1V y3QiMZOUvC4dROMwAW8CbE7gXWAVdIpAx615qDzS51VLqMCl2XWNAS0qfdDitenspBHS6eMLZwZg9 fDykPAXA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjWx-0002S3-J2; Thu, 24 Oct 2019 20:16:23 +0000 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjVC-0008BB-JV for linux-arm-kernel@lists.infradead.org; Thu, 24 Oct 2019 20:14:37 +0000 Received: by mail-wm1-x341.google.com with SMTP id v3so2736422wmh.1 for ; Thu, 24 Oct 2019 13:14:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=71EpT05RPGfdV2MRDW2h3g+re/Vo/U/4wOhVseH1/1o=; b=t/1pSz37TaDlYsdlTF+jQPUSyX9Hu+JvBp9tLXFbPZWlXf6IO3fwDWBqPOLS/SgrJC HnJ6JmIXE82CJmwzA1cQ+4JfTzNCebkwbcJMz6UgNqQr0nhLd7gb0+enDztDGjd4Op20 cc6j9VR8besuhXe/xghQ3CGvA2wZT9Bw7Nj+6G0geLLSdDrIdXp8jyWlwjfZDgmMeGwn h7gYmba3AL8JtCz89AJxEv2qaapQ17kOuInpMh6rn0kK2y+UR10GKkCdja5KaL4HbiBY fZ637k+f3sPbI29SwJ7dtFzyja2jiCkvOEbA+qXCaVJiF/jU7+qOgpm22xhmXCorpFBG vFkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=71EpT05RPGfdV2MRDW2h3g+re/Vo/U/4wOhVseH1/1o=; b=pBpZWgsr5oQ7tolYh/pAhLrdg9J/pYp8zKXVfyVaDCSkslVjF79tZkEFPuV3nBcnFq 3eZk/Pubkeu/HMxuAMkw8MluPFIUxEN0chFbteCN9PJ4LvScbyG4U07/pwATPc+YF5O7 ppbL5urMtuBbQFS0K+UO+fDckltO9rOT5x3K8EEUrJgkB6RZof74i8w8aoz7QrZHZyIJ 3pGHMS8N3Pn/39OnfcVVIGHYpmZVX3f++HkC97CuTaV9edyzdVFj8M6ufUQQslJS/7sZ BCMwkB2RwE0pbvQJ4kUcZxYa0jfmVAHxmz/5YDDASX8KnjH03tLijpHxUh2ea0abJKir PQ+w== X-Gm-Message-State: APjAAAUssp0KdpZRuR5g+3XuK9LB3WPx4Ud3WxBWBdaOB3duBF7XNUIU vYABq75E6EGqJRVnI48iAMc= X-Google-Smtp-Source: APXvYqxIGWOBea0c+/zjuLO8hKzNVktbp9/3uDIdKy+vVTY7pD8lVAM4eP/sywlQ4ma8JdPxyiqtUw== X-Received: by 2002:a1c:2d49:: with SMTP id t70mr119405wmt.131.1571948072447; Thu, 24 Oct 2019 13:14:32 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id u21sm4788536wmu.27.2019.10.24.13.14.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 13:14:31 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH v3 3/5] irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary Date: Thu, 24 Oct 2019 13:14:13 -0700 Message-Id: <20191024201415.23454-4-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191024201415.23454-1-f.fainelli@gmail.com> References: <20191024201415.23454-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191024_131434_669286_3A365BCB X-CRM114-Status: GOOD ( 10.89 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:341 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (f.fainelli[at]gmail.com) -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Florian Fainelli , Jason Cooper , Marc Zyngier , Rob Herring , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , Thomas Gleixner , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org If the 'brcm,irq-can-wake' property is specified, make sure we also enable the corresponding parent interrupt we are attached to. Signed-off-by: Florian Fainelli --- drivers/irqchip/irq-bcm7038-l1.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c index 689e487be80c..45879e59e58b 100644 --- a/drivers/irqchip/irq-bcm7038-l1.c +++ b/drivers/irqchip/irq-bcm7038-l1.c @@ -286,6 +286,10 @@ static int __init bcm7038_l1_init_one(struct device_node *dn, pr_err("failed to map parent interrupt %d\n", parent_irq); return -EINVAL; } + + if (of_property_read_bool(dn, "brcm,irq-can-wake")) + enable_irq_wake(parent_irq); + irq_set_chained_handler_and_data(parent_irq, bcm7038_l1_irq_handle, intc); From patchwork Thu Oct 24 20:14:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 11210685 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 89BB813B1 for ; Thu, 24 Oct 2019 20:16:35 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 38B3B21872 for ; Thu, 24 Oct 2019 20:16:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="mCyhcNsh"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Nxrmw1bg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 38B3B21872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=PN9h1ONgUF37JE9HcBg8Q9UAi+1w30Cc45o1zVp/OiU=; b=mCyhcNshPMTGagnDNZqyWUxFqc uE1RgCYZW0X8P9nQh3XeuHDYUuAckYpeQfFcBW+7veIZIJo69L8W+4ZUIA8eYDcZy1RQ0DkfVFlQ8 uTIB6JWMjs6sdjy9B/Qib6ucDE+lFTtF76/okfRZe+ju4KHdcubACVcwIdU64MFn84x5Cnq7gqFGK j1Car7H7EozC09FVuGx62+rzT4qf+gjV5P5tOvuzFf2oBc8ps5U7XVJTD7MQMjd6qQHsrENEWA4yb 7G/zqvS+JD30lDh5SZeXWMatYxMAPf7c3c4pqVlkwm+zLOSu5o1+6FCKV2xGW3vLnDh21OlDzmSSX 7gzOrjoA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjX7-0002fD-47; Thu, 24 Oct 2019 20:16:33 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjVF-0008D5-6G for linux-arm-kernel@lists.infradead.org; Thu, 24 Oct 2019 20:14:40 +0000 Received: by mail-wm1-x342.google.com with SMTP id r141so3809761wme.4 for ; Thu, 24 Oct 2019 13:14:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0EJBLcVaxO20ievCKQMdrfQYhGLJzUvVM7Sr/xv2sbI=; b=Nxrmw1bgQn4EKcMU5lgVjre/4937BYB1kLzxodwIDsbj/2QkEm4LnYABrlKBJQgFmF uCwcU3BSGTCF63Buf/+lJrdOgfO28tX+0OzQ9oJtfYkQTDjWcAUH22LnVA619AKeNk4j OgN9xE2jgyXvJUie2ioTS7/ZgFzWKaF8lvq8EANYZx2AZQ1gNKBCQkqwo1zHkK4s4J05 ONs3GQD9SUvv2HNKQpvdHtFzLFhBKIOuHvI6QwOdZ5kXIIioSYIrE2vWlWko2Pi6f7UT Q7jMLaDzV5jureGpMuYn3Vae4s2J5XqSdxlk7GGeWwAQMW/UaAPxRw32viEX0fZyBtNa NtWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0EJBLcVaxO20ievCKQMdrfQYhGLJzUvVM7Sr/xv2sbI=; b=B5IvcD1ZXO5JyvJRTnr7TBVnzWTYm7jjaja/42pNn4zmiVkkiDu82UkZVT17bQkeqr vLMfYnezn3QQKHdtf7o++mdDPTg6Is/WDQaeCqw+CxiMs8X1Kdb3WjM3W4cBH9P77p2B XJFfxvtvjHBySZrVUkeHZxevowAOrk9nshtUAPByMtpAH6kk87VIhzbyNLy10N00dVjX 0E1auPkW112sZ1ZJdl4WFknBCsNIgKySx4VJdIVgi0LnfoQ7s1jM5y8dRlS1ovi0UFHf OB3z2pzjV4MB7gmvISe6FxIITMb8oHcUlQKUGpioe5cu8L+QbinJirTPZoqwl0eWjRn0 bgaw== X-Gm-Message-State: APjAAAXjQKMLKWodqqbGAxlfDOCKPluJhPdTDLD6O7+19pSxXZJPWJXe oqfucuwlJGokubIKJsz0wh8= X-Google-Smtp-Source: APXvYqwKuM/JCZjbCC5QWOg82IPxIi96oCJABnrF8tRG1t76AYkoDs+kap8Ebyj7mSsvJ2erG9/tpA== X-Received: by 2002:a7b:cb03:: with SMTP id u3mr146972wmj.126.1571948075189; Thu, 24 Oct 2019 13:14:35 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id u21sm4788536wmu.27.2019.10.24.13.14.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 13:14:34 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH v3 4/5] dt-bindings: Document brcm, int-fwd-mask property for bcm7038-l1-intc Date: Thu, 24 Oct 2019 13:14:14 -0700 Message-Id: <20191024201415.23454-5-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191024201415.23454-1-f.fainelli@gmail.com> References: <20191024201415.23454-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191024_131437_269170_89EB796C X-CRM114-Status: GOOD ( 12.24 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:342 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (f.fainelli[at]gmail.com) -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Florian Fainelli , Jason Cooper , Marc Zyngier , Rob Herring , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , Thomas Gleixner , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Indicate that the brcm,int-fwd-mask property is optional and can be set on platforms which require to leave specific interrupts unmanaged by Linux and need to retain the firmware configuration. Acked-by: Rob Herring Signed-off-by: Florian Fainelli --- .../bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt index 4eb043270f5b..5ddef1dc0c1a 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt @@ -36,6 +36,12 @@ Optional properties: - brcm,irq-can-wake: If present, this means the L1 controller can be used as a wakeup source for system suspend/resume. +Optional properties: + +- brcm,int-fwd-mask: if present, a bit mask to indicate which interrupts + have already been configured by the firmware and should be left unmanaged. + This should have one 32-bit word per status/set/clear/mask group. + If multiple reg ranges and interrupt-parent entries are present on an SMP system, the driver will allow IRQ SMP affinity to be set up through the /proc/irq/ interface. In the simplest possible configuration, only one From patchwork Thu Oct 24 20:14:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 11210687 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 13129112C for ; Thu, 24 Oct 2019 20:16:59 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id E331321872 for ; Thu, 24 Oct 2019 20:16:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RcAWNYgQ"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ou4e8uZh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E331321872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=QmJ/z7UlF6DuMG30Dc7SAgtXyAFXQdG6MxMy4vmrDqM=; b=RcAWNYgQaJNIb3Wn9gI4Vd0R1e 2jggZ7mWzBslRQjw0bhTSM3JY+pJ4sW3DsSSfxSJBqYpRvfqR67qTudUFW/GkbSIKqVu6jrHCeAis DqBMzjlTc98eKI/zqvm9FAk3q2Wm8B+vi6rFS9MWZwDwJwDyGYcfs5dpMn4beN6tWL4JjVeqYHrp5 kjfAeNeqawLQYtoBTRyQCvIzm5xyZACaH+jOVFOnDknmlKRv961f35cWziQQQ3I+8087Ek0NSfG02 cUBnYjcaG2p3zQJAw2LkgYKOaWkxwwpYbazau5bEj3jcjFmuhaLB33GcSzYrENP3zNiDAMtu+Yb7k 5dSK/hiA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjXS-0002x2-VA; Thu, 24 Oct 2019 20:16:54 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iNjVH-0008FI-Eq for linux-arm-kernel@lists.infradead.org; Thu, 24 Oct 2019 20:14:42 +0000 Received: by mail-wr1-x442.google.com with SMTP id v9so16180159wrq.5 for ; Thu, 24 Oct 2019 13:14:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5CCYXEJ3KS4BOi54EgFM7QurD64PvAhJciYb1sSHmbI=; b=Ou4e8uZhb0MKkl+6TqSr10ochGdvvF9mOd+5R6wpXD/J+IuzS6KzgPFZkI8E8iSISi k4HaktQ0/4aAaUurM8dTovI2qUiOvHnRd+zqyp4TgrXysptd5Pif4Vq9YfNt9ldpm1qq dh5pBaKy/+jhExczjKSKL4A2PWQ5U748SQ8zBD/uIpa2sTALxfEYe5C80HCY+d5be39k Wq0/CHglZb8EnUHlTGcCwT+32ThQyF1054Hqt8Q+d4oqUUz5Irvs2kDCazgzC0OEwaKf hfTF90sR+OrFV/VFQacFdYYSU383mZcG02loD9yB28x8XQzeJDSCd2jHHdqfp3enKi/T GQ6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=5CCYXEJ3KS4BOi54EgFM7QurD64PvAhJciYb1sSHmbI=; b=p9sZFT9ZJhfeEd5PZ1INLiu6A1cv6lzDFU90PH1ptZXrdIemg6h6HEIJU7n6o96m+z uB2zDyTZta62t32KUtxMXD5PGTDqZRL7tJhn7qbpQJvsUt/wyWYjhOfv2YpIKmVZidag 3chmo4TtgnaqyYYC5Dit/Lojkj5oZAcNFmD9NrrpRluf8/hR4QzpCcqmGKhJBtwqdB0M 3NJh4UV1Way7gqPbPyWE+BbOVM5N0Cqedb39IlN5ELIREre0oODLlsMENf5059pm8ae3 /2N2/faAr4uG4qIKaL6K9AtfAyuCdiyjakOrrfTvHmixvr+8hhtLXJGviXmXDy736rqC 1xrw== X-Gm-Message-State: APjAAAW4o8ewQITBiduA9LbHwwDvQfoFiHxjsO8nNFHTQ9fOFJQZ/bvZ oMm8fZD/dNcvJdwQLkW9z3Q= X-Google-Smtp-Source: APXvYqx80JcncS9iN6IxEENWG5/0ZghTIF3B3mdMMNXvddSGhOqxHC4OV5T7e9Mqfe87OMivYBzU1A== X-Received: by 2002:adf:9185:: with SMTP id 5mr5725955wri.389.1571948077944; Thu, 24 Oct 2019 13:14:37 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id u21sm4788536wmu.27.2019.10.24.13.14.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 13:14:37 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH v3 5/5] irqchip/irq-bcm7038-l1: Support brcm,int-fwd-mask Date: Thu, 24 Oct 2019 13:14:15 -0700 Message-Id: <20191024201415.23454-6-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191024201415.23454-1-f.fainelli@gmail.com> References: <20191024201415.23454-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191024_131439_570642_5EECBFE7 X-CRM114-Status: GOOD ( 18.18 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:442 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (f.fainelli[at]gmail.com) -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Florian Fainelli , Jason Cooper , Marc Zyngier , Rob Herring , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , Thomas Gleixner , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org On some specific chips like 7211 we need to leave some interrupts untouched/forwarded to the VPU which is another agent in the system making use of that interrupt controller hardware (goes to both ARM GIC and VPU L1 interrupt controller). Make that possible by using the existing brcm,int-fwd-mask property and take necessary actions to avoid masking that interrupt as well as not allowing Linux to map them. Signed-off-by: Florian Fainelli --- drivers/irqchip/irq-bcm7038-l1.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c index 45879e59e58b..cbf01afcd2a6 100644 --- a/drivers/irqchip/irq-bcm7038-l1.c +++ b/drivers/irqchip/irq-bcm7038-l1.c @@ -44,6 +44,7 @@ struct bcm7038_l1_chip { struct list_head list; u32 wake_mask[MAX_WORDS]; #endif + u32 irq_fwd_mask[MAX_WORDS]; u8 affinity[MAX_WORDS * IRQS_PER_WORD]; }; @@ -254,6 +255,7 @@ static int __init bcm7038_l1_init_one(struct device_node *dn, resource_size_t sz; struct bcm7038_l1_cpu *cpu; unsigned int i, n_words, parent_irq; + int ret; if (of_address_to_resource(dn, idx, &res)) return -EINVAL; @@ -267,6 +269,14 @@ static int __init bcm7038_l1_init_one(struct device_node *dn, else if (intc->n_words != n_words) return -EINVAL; + ret = of_property_read_u32_array(dn , "brcm,int-fwd-mask", + intc->irq_fwd_mask, n_words); + if (ret != 0 && ret != -EINVAL) { + /* property exists but has the wrong number of words */ + pr_err("invalid brcm,int-fwd-mask property\n"); + return -EINVAL; + } + cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32), GFP_KERNEL); if (!cpu) @@ -277,8 +287,11 @@ static int __init bcm7038_l1_init_one(struct device_node *dn, return -ENOMEM; for (i = 0; i < n_words; i++) { - l1_writel(0xffffffff, cpu->map_base + reg_mask_set(intc, i)); - cpu->mask_cache[i] = 0xffffffff; + l1_writel(~intc->irq_fwd_mask[i], + cpu->map_base + reg_mask_set(intc, i)); + l1_writel(intc->irq_fwd_mask[i], + cpu->map_base + reg_mask_clr(intc, i)); + cpu->mask_cache[i] = ~intc->irq_fwd_mask[i]; } parent_irq = irq_of_parse_and_map(dn, idx); @@ -311,15 +324,17 @@ static int bcm7038_l1_suspend(void) { struct bcm7038_l1_chip *intc; int boot_cpu, word; + u32 val; /* Wakeup interrupt should only come from the boot cpu */ boot_cpu = cpu_logical_map(0); list_for_each_entry(intc, &bcm7038_l1_intcs_list, list) { for (word = 0; word < intc->n_words; word++) { - l1_writel(~intc->wake_mask[word], + val = intc->wake_mask[word] | intc->irq_fwd_mask[word]; + l1_writel(~val, intc->cpus[boot_cpu]->map_base + reg_mask_set(intc, word)); - l1_writel(intc->wake_mask[word], + l1_writel(val, intc->cpus[boot_cpu]->map_base + reg_mask_clr(intc, word)); } } @@ -383,6 +398,13 @@ static struct irq_chip bcm7038_l1_irq_chip = { static int bcm7038_l1_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw_irq) { + struct bcm7038_l1_chip *intc = d->host_data; + u32 mask = BIT(hw_irq % IRQS_PER_WORD); + u32 word = hw_irq / IRQS_PER_WORD; + + if (intc->irq_fwd_mask[word] & mask) + return -EPERM; + irq_set_chip_and_handler(virq, &bcm7038_l1_irq_chip, handle_level_irq); irq_set_chip_data(virq, d->host_data); irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(virq)));