From patchwork Mon Dec 10 10:23:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 10721041 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 80E8918E8 for ; Mon, 10 Dec 2018 10:23:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6CDFB29A8A for ; Mon, 10 Dec 2018 10:23:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5F7C829A9C; Mon, 10 Dec 2018 10:23:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 08DDF29A8A for ; Mon, 10 Dec 2018 10:23:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727154AbeLJKXT (ORCPT ); Mon, 10 Dec 2018 05:23:19 -0500 Received: from mail-wr1-f68.google.com ([209.85.221.68]:41953 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727129AbeLJKXS (ORCPT ); Mon, 10 Dec 2018 05:23:18 -0500 Received: by mail-wr1-f68.google.com with SMTP id x10so9840750wrs.8 for ; Mon, 10 Dec 2018 02:23:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XZ8fgTNKEzlulFo0jglvRy93ay062mbv4LQ6PKEe/gQ=; b=ZbBb58wWhDv0MvwPZN9fA1XNugmo28nJATFNZ3SQPrwq7s88m8LANQ3JEoSlOuOpyw X3FR9ehnuEsgiJVknsxMyzK4p60EKVzrlbh+tXYTlGEqDKkvWs4eSih+mr8E2Jv+emdk dAUg2vdmhMtyEX2jigxj5+o8sYttCsDJOau7k= 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:mime-version:content-transfer-encoding; bh=XZ8fgTNKEzlulFo0jglvRy93ay062mbv4LQ6PKEe/gQ=; b=L3N3MqdzVg20i/SnkfBfFF0TjQ/W1J9+D4mxv1No+WMRuA74APINMttyQb2GfxuKFK mn+zlWNKiFGgS1T4E4fUcTAp16u5ZNosq/emdat6PXuOMAsXvXuTRBZlAggms0gbpkSC uHWQhMVQ9IG+ei+Q1qjdC8iZF+onXEJtlh9XqOvip5FfE9bGu6ArWJKsz2tirTjp+5Wm bPEPBQj6E1WXMnUTuf4G6E3TDEB2klfCKiiCOi/tAHmp0M5+xoKr8G5B8G5FZx35EMLr HUZeqFJgBWd0T49bPt1ysZdLhgW7Han7UVY7dCKEGjJnj6D52v5tpWwa4CfW8RSRAg1C dk3A== X-Gm-Message-State: AA+aEWZZwtFYmQlK6n7N/D4i9jFzjasCN/9dicE1xlqsdYXYqCDwgkzL AHyEa/iFSvo1TBJK8qKt8UNRLw== X-Google-Smtp-Source: AFSGD/WUV60mKobL5BLE2bRhvSje/Gp7j0dRjZwA2MwbNnR/qvcGjJ5yuFEboaP5naRxrXnIVtm6sw== X-Received: by 2002:adf:ef50:: with SMTP id c16mr9299102wrp.198.1544437396064; Mon, 10 Dec 2018 02:23:16 -0800 (PST) Received: from srini-hackbox.lan (cpc89974-aztw32-2-0-cust43.18-1.cable.virginm.net. [86.30.250.44]) by smtp.gmail.com with ESMTPSA id r64sm12266664wmg.5.2018.12.10.02.23.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 10 Dec 2018 02:23:15 -0800 (PST) From: Srinivas Kandagatla To: marc.zyngier@arm.com Cc: sudeep.holla@arm.com, tglx@linutronix.de, jason@lakedaemon.net, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, sboyd@kernel.org, bjorn.andersson@linaro.org, nicolas.dechesne@linaro.org, ctatlor97@gmail.com, vkoul@kernel.org, robh+dt@kernel.org, devicetree@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v4 1/4] dt-bindings/gic-v3: Add msm8996 compatible string Date: Mon, 10 Dec 2018 10:23:06 +0000 Message-Id: <20181210102309.8207-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> References: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Access to GICR_WAKER is restricted on msm8996 SoC in Hypervisor. There are many devices out there with this restriction in place and there has been no update to this firmware since last few years, making those devices totally unusable for upstream development. IIDR register value conflicts with other SoCs, using compatible seems to be the only way to apply quirks required for msm8996 based SoCs. Without this quirk many qcom SoCs (atleast 3 that I know) are unable to boot mainline. Signed-off-by: Srinivas Kandagatla --- .../devicetree/bindings/interrupt-controller/arm,gic-v3.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt index 3ea78c4ef887..b83bb8249074 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt @@ -7,7 +7,9 @@ Interrupts (LPI). Main node required properties: -- compatible : should at least contain "arm,gic-v3". +- compatible : should at least contain "arm,gic-v3" or either + "qcom,msm8996-gic-v3", "arm,gic-v3" for msm8996 SoCs + to address SoC specific bugs/quirks - interrupt-controller : Identifies the node as an interrupt controller - #interrupt-cells : Specifies the number of cells needed to encode an interrupt source. Must be a single cell with a value of at least 3. From patchwork Mon Dec 10 10:23:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 10721049 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E53EC18E8 for ; Mon, 10 Dec 2018 10:23:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D2C1D28508 for ; Mon, 10 Dec 2018 10:23:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C1C18284FC; Mon, 10 Dec 2018 10:23:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 63CB5284FC for ; Mon, 10 Dec 2018 10:23:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727095AbeLJKXd (ORCPT ); Mon, 10 Dec 2018 05:23:33 -0500 Received: from mail-wr1-f68.google.com ([209.85.221.68]:41955 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727149AbeLJKXT (ORCPT ); Mon, 10 Dec 2018 05:23:19 -0500 Received: by mail-wr1-f68.google.com with SMTP id x10so9840836wrs.8 for ; Mon, 10 Dec 2018 02:23:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1U/Akwho1DZJNINiBcRb/GlKX5Bkx4IZu/rr43WS9yo=; b=XFnvTzf3n6/EloQ2lQISSe9HFxQTNcsFS8nR+0lBOtx/RTIvrIKN/unT409luQoHDg PEy2eMc39+pmCZhfm8BS/N3Tv1xt9pDDMmLcd62wfSCJgHS770F9fAyXdwTOEpzV198H OBjCwdcW5USPSQtG664gQ51gjqE/QObph4O08= 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:mime-version:content-transfer-encoding; bh=1U/Akwho1DZJNINiBcRb/GlKX5Bkx4IZu/rr43WS9yo=; b=MgHq8K/wIqCxNp5DNU0Fewnz1crrimhjozC3XKAFIjUBTlEYdGWk0gRT7gp3xpLANA cv0Uh25rBaiSSUM7KgXTjLm3To+fjaVoLRHs+fs5sijQ4gqrXT7mA9vZnG0u4XNI2YqN djvWAY2mq5HNLhX1sSYihJTbzASlSL8ydgKZ1lHp3QtdEz5iYzepjCfj6McCtBB9/rMB Oh0S/q/QQwOLO/l4F6ZR25X4SQ3Zg+YqpjLOQtNRvhAcIDy0ON6IEvTRJ5pzL/110Y92 j9GuPkruARmxfzylfonpfrrHspxSbxE3w+uMgvwmVWLEgQUFcPHDVg9aHSUdVDroELOM mCaA== X-Gm-Message-State: AA+aEWYzRvgdUVF7FxL+u6ev4BtPfNK7LNvi7nZ+nuGN9Vf0iY6pHSm3 szWoUpsv+wqaY+RzeSA2JQkHkA== X-Google-Smtp-Source: AFSGD/X8IWYWRMlU12DSvutyhT+XNYsm3MmeD62/RY0g5HnSaAkyVKEmFZe1n5yC8L7qYWe2P84J0w== X-Received: by 2002:adf:8c09:: with SMTP id z9mr9378346wra.301.1544437397282; Mon, 10 Dec 2018 02:23:17 -0800 (PST) Received: from srini-hackbox.lan (cpc89974-aztw32-2-0-cust43.18-1.cable.virginm.net. [86.30.250.44]) by smtp.gmail.com with ESMTPSA id r64sm12266664wmg.5.2018.12.10.02.23.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 10 Dec 2018 02:23:16 -0800 (PST) From: Srinivas Kandagatla To: marc.zyngier@arm.com Cc: sudeep.holla@arm.com, tglx@linutronix.de, jason@lakedaemon.net, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, sboyd@kernel.org, bjorn.andersson@linaro.org, nicolas.dechesne@linaro.org, ctatlor97@gmail.com, vkoul@kernel.org, robh+dt@kernel.org, devicetree@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v4 2/4] irqchip/gic: common: add support to device tree based quirks Date: Mon, 10 Dec 2018 10:23:07 +0000 Message-Id: <20181210102309.8207-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> References: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds support to device tree based quirks based on device tree compatible string. Signed-off-by: Srinivas Kandagatla --- drivers/irqchip/irq-gic-common.c | 12 ++++++++++++ drivers/irqchip/irq-gic-common.h | 3 +++ drivers/irqchip/irq-gic-v3.c | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/drivers/irqchip/irq-gic-common.c b/drivers/irqchip/irq-gic-common.c index 01e673c680cd..3c93c6f4d1f1 100644 --- a/drivers/irqchip/irq-gic-common.c +++ b/drivers/irqchip/irq-gic-common.c @@ -36,6 +36,18 @@ void gic_set_kvm_info(const struct gic_kvm_info *info) gic_kvm_info = info; } +void gic_enable_of_quirks(const struct device_node *np, + const struct gic_quirk *quirks, void *data) +{ + for (; quirks->desc; quirks++) { + if (!of_device_is_compatible(np, quirks->compatible)) + continue; + if (quirks->init(data)) + pr_info("GIC: enabling workaround for %s\n", + quirks->desc); + } +} + void gic_enable_quirks(u32 iidr, const struct gic_quirk *quirks, void *data) { diff --git a/drivers/irqchip/irq-gic-common.h b/drivers/irqchip/irq-gic-common.h index 3919cd7c5285..97e58fb6c232 100644 --- a/drivers/irqchip/irq-gic-common.h +++ b/drivers/irqchip/irq-gic-common.h @@ -23,6 +23,7 @@ struct gic_quirk { const char *desc; + const char *compatible; bool (*init)(void *data); u32 iidr; u32 mask; @@ -35,6 +36,8 @@ void gic_dist_config(void __iomem *base, int gic_irqs, void gic_cpu_config(void __iomem *base, void (*sync_access)(void)); void gic_enable_quirks(u32 iidr, const struct gic_quirk *quirks, void *data); +void gic_enable_of_quirks(const struct device_node *np, + const struct gic_quirk *quirks, void *data); void gic_set_kvm_info(const struct gic_kvm_info *info); diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index 29e9d47be97d..c95796fa4de6 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -1271,6 +1271,9 @@ static void __init gic_of_setup_kvm_info(struct device_node *node) gic_set_kvm_info(&gic_v3_kvm_info); } +static const struct gic_quirk gic_quirks[] = { +}; + static int __init gic_of_init(struct device_node *node, struct device_node *parent) { void __iomem *dist_base; @@ -1318,6 +1321,8 @@ static int __init gic_of_init(struct device_node *node, struct device_node *pare if (of_property_read_u64(node, "redistributor-stride", &redist_stride)) redist_stride = 0; + gic_enable_of_quirks(node, gic_quirks, &gic_data); + err = gic_init_bases(dist_base, rdist_regs, nr_redist_regions, redist_stride, &node->fwnode); if (err) From patchwork Mon Dec 10 10:23:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 10721043 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 148B7159A for ; Mon, 10 Dec 2018 10:23:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0391429A8A for ; Mon, 10 Dec 2018 10:23:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E047529A9C; Mon, 10 Dec 2018 10:23:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8197229A8A for ; Mon, 10 Dec 2018 10:23:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727159AbeLJKXW (ORCPT ); Mon, 10 Dec 2018 05:23:22 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:45067 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727129AbeLJKXV (ORCPT ); Mon, 10 Dec 2018 05:23:21 -0500 Received: by mail-wr1-f66.google.com with SMTP id b14so9830378wru.12 for ; Mon, 10 Dec 2018 02:23:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wJ2Cn4k6E7T0u8595f7z3MaJbxaC6NuPtJSaZjeLi0E=; b=dSn5vvXEXYOsHlKdEyF5XjlnYlMqVpFj/xfnKbODR8yt0ol1TPKP1Gag+cM/GaExEU YV23Bf9307NEYI9EA89w3gGCY+kYPBArXFeiOXPRjWW8f1utg/b3bgER/3X1LwLEmzIS 2BQqUkJCA892pSR2RIqYFR1ajXcfunAt8oiu8= 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:mime-version:content-transfer-encoding; bh=wJ2Cn4k6E7T0u8595f7z3MaJbxaC6NuPtJSaZjeLi0E=; b=LWQHmsGeKN+H2hZ53lRjF2NIZ3M0Hczz1a/sEoSgg9uxnA30JOdUyfkFeXWMImpn4S XRxiNn4+bx+nW+75+UVkOifEBc+75PtVgGbImhr6sGZG/0TtHSCd48uSe1a/mlIMBH0R 9XIkYKudizRbzn8oBHAjPY09Pc/Qp4WqVtgxqvA5RqWUHv/l8U0qul++B2U+uCZBMoBY LiAMx/MBhm0lrlosZjM/rcZLK/UFhrUOpS6hSyCcJDTgdB1f6HkTEx2SMx+k+/ncvv7M hszU4ey99B4lnR8IiJNCliXlFrYAQ5wApxKYDdcVO/MEzxLVoZaUZegKzxoa/yuE9eK/ hiWw== X-Gm-Message-State: AA+aEWbaXWmrXTjWLzLS2KkWsXUXZ9D8qnzv9C8WzsYTAkOr40VLP/0Y B09pF0scIpFtzf8stUSsRd/N+Q== X-Google-Smtp-Source: AFSGD/UuAcaooG0Hy8e5nPy+3b85gkaxIClzF+LJwBkcrXDc8/RPuf9Ld5/mZZonAbs/fRnnrXBk3Q== X-Received: by 2002:adf:d4c9:: with SMTP id w9mr9258048wrk.119.1544437398603; Mon, 10 Dec 2018 02:23:18 -0800 (PST) Received: from srini-hackbox.lan (cpc89974-aztw32-2-0-cust43.18-1.cable.virginm.net. [86.30.250.44]) by smtp.gmail.com with ESMTPSA id r64sm12266664wmg.5.2018.12.10.02.23.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 10 Dec 2018 02:23:17 -0800 (PST) From: Srinivas Kandagatla To: marc.zyngier@arm.com Cc: sudeep.holla@arm.com, tglx@linutronix.de, jason@lakedaemon.net, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, sboyd@kernel.org, bjorn.andersson@linaro.org, nicolas.dechesne@linaro.org, ctatlor97@gmail.com, vkoul@kernel.org, robh+dt@kernel.org, devicetree@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v4 3/4] irqchip: gic-v3: Add quirk for msm8996 secured registers Date: Mon, 10 Dec 2018 10:23:08 +0000 Message-Id: <20181210102309.8207-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> References: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Access to GICR_WAKER is restricted on msm8996 SoC in Hypervisor. Its been more than 2+ years of wait for this to be fixed, which has no hopes to be fixed. This change was introduced for the "lead device" on msm8996 platform. It looks like all publicly available msm8996 and other Qualcomm SoCs have this implementation. So add a quirk to not access this register on msm8996. With this quirk MSM8996 can at least boot out of mainline, which can help community to work with boards based on MSM8996 and other SoCs with have this restrictions. This Quirk is based on device tree compatible string. Without this patch Qualcomm DB820c board reboots when GICR_WAKER is accessed. Signed-off-by: Srinivas Kandagatla --- drivers/irqchip/irq-gic-v3.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index c95796fa4de6..1a2fa62a52f0 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -41,6 +41,8 @@ #include "irq-gic-common.h" +#define FLAGS_WORKAROUND_GICR_WAKER_MSM8996 (1ULL << 0) + struct redist_region { void __iomem *redist_base; phys_addr_t phys_base; @@ -55,6 +57,7 @@ struct gic_chip_data { struct irq_domain *domain; u64 redist_stride; u32 nr_redist_regions; + u64 flags; bool has_rss; unsigned int irq_nr; struct partition_desc *ppi_descs[16]; @@ -139,6 +142,9 @@ static void gic_enable_redist(bool enable) u32 count = 1000000; /* 1s! */ u32 val; + if (gic_data.flags & FLAGS_WORKAROUND_GICR_WAKER_MSM8996) + return; + rbase = gic_data_rdist_rd_base(); val = readl_relaxed(rbase + GICR_WAKER); @@ -1067,6 +1073,15 @@ static const struct irq_domain_ops partition_domain_ops = { .select = gic_irq_domain_select, }; +static bool gic_enable_quirk_msm8996(void *data) +{ + struct gic_chip_data *d = data; + + d->flags |= FLAGS_WORKAROUND_GICR_WAKER_MSM8996; + + return true; +} + static int __init gic_init_bases(void __iomem *dist_base, struct redist_region *rdist_regs, u32 nr_redist_regions, @@ -1272,6 +1287,11 @@ static void __init gic_of_setup_kvm_info(struct device_node *node) } static const struct gic_quirk gic_quirks[] = { + { + .desc = "GICv3: Qualcomm MSM8996 broken firmware", + .compatible = "qcom,msm8996-gic-v3", + .init = gic_enable_quirk_msm8996, + } }; static int __init gic_of_init(struct device_node *node, struct device_node *parent) From patchwork Mon Dec 10 10:23:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 10721045 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 226A7159A for ; Mon, 10 Dec 2018 10:23:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 10DD929A9C for ; Mon, 10 Dec 2018 10:23:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 048A729AE7; Mon, 10 Dec 2018 10:23:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ADA6029A9C for ; Mon, 10 Dec 2018 10:23:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727066AbeLJKXb (ORCPT ); Mon, 10 Dec 2018 05:23:31 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:37998 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727157AbeLJKXW (ORCPT ); Mon, 10 Dec 2018 05:23:22 -0500 Received: by mail-wr1-f67.google.com with SMTP id v13so9869721wrw.5 for ; Mon, 10 Dec 2018 02:23:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G2KRU/g/GisxnlaqWW4HcsfIO+AdwGpDB+M+SNsZ+gc=; b=SI/4PwcMDJaCE/vholFjokX+8AzcbogsxRh952zVJ4LMzH6YMFfIZ4aWzP9IzWQqFs 6rKKkZk1uTNu28fnTWkWiVJZINhnyPBm1MOpsIl3zsr4AtGdBcOO7r4c0K+FRxE32efl wtPK8di7fJRgb/mLPNIXK+mhgXjn/06fDK+X8= 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:mime-version:content-transfer-encoding; bh=G2KRU/g/GisxnlaqWW4HcsfIO+AdwGpDB+M+SNsZ+gc=; b=en1sTXFvImefCZi3pKuVmRq88A2jC2LZD/tVCv/LXvsx8ve1PZD+KfsTdBELa2D8AD 9zennTypWwaTooRWTOPhmm4yvl5HB9fuq5exGKBY/ASyUmq4a8TFR0hC9Nu9rcGp5z1v QuAD6gaop9oiZkKrVdBhUSMpKkiHn1eyF24b4OBSn2IYzSVP7dHgyaFvuc7na9d2diAw D1thCmi1EniRjynxWDYaG5XBJdiXeQNoKp+1cle/M9VJRrA0uIbjxbKL8HKylvJV8mJT GSEpbXSyoQSU8gvDCDAmRBF32WllIE3ymOGY7PlhdY5L+V9yn+niI6LYBg6gMiWG2Xif dbfg== X-Gm-Message-State: AA+aEWbXlmcsFQxdlRzCN+MQPC8g4dST658JnBAXCnODJdnJiWGMzAhS xe/mL2SMN0KVBeQjfCmwr4Q/VQ== X-Google-Smtp-Source: AFSGD/XBPyKVqVOtGr3PV4sGg7Qyi6ZYrnZUfaW+VvkUHg0CVz8JTWpaBhn1vOYKzcAkWlrfDUXgIw== X-Received: by 2002:a5d:4586:: with SMTP id p6mr8990360wrq.69.1544437399815; Mon, 10 Dec 2018 02:23:19 -0800 (PST) Received: from srini-hackbox.lan (cpc89974-aztw32-2-0-cust43.18-1.cable.virginm.net. [86.30.250.44]) by smtp.gmail.com with ESMTPSA id r64sm12266664wmg.5.2018.12.10.02.23.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 10 Dec 2018 02:23:19 -0800 (PST) From: Srinivas Kandagatla To: marc.zyngier@arm.com Cc: sudeep.holla@arm.com, tglx@linutronix.de, jason@lakedaemon.net, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, sboyd@kernel.org, bjorn.andersson@linaro.org, nicolas.dechesne@linaro.org, ctatlor97@gmail.com, vkoul@kernel.org, robh+dt@kernel.org, devicetree@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v4 4/4] arm64: dts: add msm8996 compatible to gicv3 Date: Mon, 10 Dec 2018 10:23:09 +0000 Message-Id: <20181210102309.8207-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> References: <20181210102309.8207-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add compatible to gicv3 node to enable quirk required to restrict writing to GICR_WAKER register which is restricted on msm8996 SoC in Hypervisor. With this quirk MSM8996 can at least boot out of mainline, which can help community to work with boards based on MSM8996. Without this patch Qualcomm DB820c board reboots on mainline. Signed-off-by: Srinivas Kandagatla --- arch/arm64/boot/dts/qcom/msm8996.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi index 8585c61e32ef..cd9650cea05d 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -404,7 +404,7 @@ }; intc: interrupt-controller@9bc0000 { - compatible = "arm,gic-v3"; + compatible = "qcom,msm8996-gic-v3", "arm,gic-v3"; #interrupt-cells = <3>; interrupt-controller; #redistributor-regions = <1>;