Received: by 10.223.176.5 with SMTP id f5csp3104954wra; Mon, 29 Jan 2018 08:50:47 -0800 (PST) X-Google-Smtp-Source: AH8x2270nxEi16MuQfkyg3kSc6hG1reiyHwv6bm2RFG0xWLBJ/+jPHQISeQsunuBcw9q3CWhkKRZ X-Received: by 10.99.36.68 with SMTP id k65mr22326198pgk.345.1517244647590; Mon, 29 Jan 2018 08:50:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517244647; cv=none; d=google.com; s=arc-20160816; b=HPcZZ1Iq3KO1xkGpzZf9LKKb26j0jC3nULvzlzXq6hCMoA5g35ua3yqohFMM2W1dVc A0eb2QNLNACaNeYYw7jHf6HnSwpOOYe90mQHmHNWOUdIM3mFtWXFN8M1oxEx9Z8sC/cK vrZW3+d+hZG8nzesNsP0JMLg/G836I1fGGHRcpU2r/CnhTX+ZSlx1c7gqAqDPFXcu50i a4usPFdDLqgq06y1fshkKlmylrjS6zDAgPmmoy/JT/yVzZT1Ekh/PJ+SGy2VBFrjEb5H giGsp0WHpdGIGaSdaf6D9afCFbwNwMPJjm/KzFP1i1d6pADLjgm5zrHCpaInlWZaKAbX kowg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=fzmVfKC8sVxPXMk9neT8c0ShRY1H9ewsXCLaow7+LX8=; b=J54rlRbFxkTJGo3O/uiCkXUQSyO2DzY0LFJK9ep8qvSM4N1X5I0CzE250Vaj+ZS8h0 WIMq1CFdh/PR4wwT+hnCgH8WS+U/8k0m9euY/GW9FGBP2ikCznjxm1hIBajbe4f3lU0M mTaCVEP8nmg5+v9Sl4JOTtMY4pUwzzV631iQhdQWTpVUYs4OhvqEuRALqu0vJn82jLtH JXn+rnmH8HKaSSOU6dEggEveWUPUlH11ZK4+TnH4BeoT54HDKTy73rQcKSyiHpLInAii ylSXbH7uhJ3aLODr646xmpRatNIosqliuwndjGYPAkEOGc2A580nQqZmrjwfQr1I42gE qtXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=bO2qyzBo; dkim=pass header.i=@codeaurora.org header.s=default header.b=hn111d67; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l7si89799pgs.316.2018.01.29.08.50.32; Mon, 29 Jan 2018 08:50:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=bO2qyzBo; dkim=pass header.i=@codeaurora.org header.s=default header.b=hn111d67; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751547AbeA2Qti (ORCPT + 99 others); Mon, 29 Jan 2018 11:49:38 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:34620 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751251AbeA2Qtg (ORCPT ); Mon, 29 Jan 2018 11:49:36 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 12C336085F; Mon, 29 Jan 2018 16:49:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1517244576; bh=P8vTxoxRT3iGek8uJYX6PCVwv5QZZQgpdU+fjlG87AY=; h=From:To:Cc:Subject:Date:From; b=bO2qyzBoSWL+Blm8bQfklUKp7vkaNxSGB+EWU3vU8btFRhYMjiUEzdCvx0QmwppPK lnWguj0yPMq0SLHDkTpuTYAwvudCEf4zfJMYHJJ+9WksuEmImlgBT5Ng/+Z6VoVKvO eN6tHEZBZAL0rjR8Fx9KwyMq3rKrCL9Yq9ZVLicw= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from sboyd-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sboyd@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 02104609F3; Mon, 29 Jan 2018 16:49:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1517244575; bh=P8vTxoxRT3iGek8uJYX6PCVwv5QZZQgpdU+fjlG87AY=; h=From:To:Cc:Subject:Date:From; b=hn111d67Hmc6m23CQtgxgy3soQF4yjKpad1U+cPkoTWYcgU9G/cx+st4b5pdT4wYp bFw6NHVv3UEi+M+AYS2mYh5cHqUr1OjPhJQiGjCegRkEnKfojwv+7x8t9+NqNZ+x0r AaI82zlb6GTMEomCZG1jLt/a4MClQzge5ZwQuZZQ= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 02104609F3 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=sboyd@codeaurora.org From: Stephen Boyd To: Thomas Gleixner , Jason Cooper , Marc Zyngier Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Rajendra Nayak Subject: [PATCH] irqchip/gic-v3: Ignore disabled ITS nodes Date: Mon, 29 Jan 2018 08:49:33 -0800 Message-Id: <20180129164933.25479-1-sboyd@codeaurora.org> X-Mailer: git-send-email 2.15.0.374.g5f9953d2c365 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On some platforms there's an ITS available but it's not enabled because reading or writing the registers is denied by the firmware. In fact, reading or writing them will cause the system to reset. We could remove the node from DT in such a case, but it's better to skip nodes that are marked as "disabled" in DT so that we can describe the hardware that exists and use the status property to indicate how the firmware has configured things. Cc: Marc Zyngier Cc: Rajendra Nayak Signed-off-by: Stephen Boyd --- drivers/irqchip/irq-gic-v3-its-pci-msi.c | 2 ++ drivers/irqchip/irq-gic-v3-its-platform-msi.c | 2 ++ drivers/irqchip/irq-gic-v3-its.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/drivers/irqchip/irq-gic-v3-its-pci-msi.c b/drivers/irqchip/irq-gic-v3-its-pci-msi.c index 77931214d954..6b5f50e1fc72 100644 --- a/drivers/irqchip/irq-gic-v3-its-pci-msi.c +++ b/drivers/irqchip/irq-gic-v3-its-pci-msi.c @@ -132,6 +132,8 @@ static int __init its_pci_of_msi_init(void) for (np = of_find_matching_node(NULL, its_device_id); np; np = of_find_matching_node(np, its_device_id)) { + if (!of_device_is_available(np)) + continue; if (!of_property_read_bool(np, "msi-controller")) continue; diff --git a/drivers/irqchip/irq-gic-v3-its-platform-msi.c b/drivers/irqchip/irq-gic-v3-its-platform-msi.c index 833a90fe33ae..8881a053c173 100644 --- a/drivers/irqchip/irq-gic-v3-its-platform-msi.c +++ b/drivers/irqchip/irq-gic-v3-its-platform-msi.c @@ -154,6 +154,8 @@ static void __init its_pmsi_of_init(void) for (np = of_find_matching_node(NULL, its_device_id); np; np = of_find_matching_node(np, its_device_id)) { + if (!of_device_is_available(np)) + continue; if (!of_property_read_bool(np, "msi-controller")) continue; diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 284738add89b..a84ee6ce244d 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -1815,6 +1815,8 @@ static int __init its_of_probe(struct device_node *node) for (np = of_find_matching_node(node, its_device_id); np; np = of_find_matching_node(np, its_device_id)) { + if (!of_device_is_available(np)) + continue; if (!of_property_read_bool(np, "msi-controller")) { pr_warn("%s: no msi-controller property, ITS ignored\n", np->full_name); -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project