linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Brian Masney <masneyb@onstation.org>
To: linus.walleij@linaro.org, sboyd@kernel.org,
	bjorn.andersson@linaro.org, andy.gross@linaro.org,
	marc.zyngier@arm.com
Cc: shawnguo@kernel.org, dianders@chromium.org,
	linux-gpio@vger.kernel.org, nicolas.dechesne@linaro.org,
	niklas.cassel@linaro.org, david.brown@linaro.org,
	robh+dt@kernel.org, mark.rutland@arm.com,
	thierry.reding@gmail.com, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: [PATCH v6 06/15] spmi: pmic-arb: disassociate old virq if hwirq mapping already exists
Date: Sat, 19 Jan 2019 15:42:43 -0500	[thread overview]
Message-ID: <20190119204252.18370-7-masneyb@onstation.org> (raw)
In-Reply-To: <20190119204252.18370-1-masneyb@onstation.org>

Check to see if the hwirq is already associated with another virq on
this IRQ domain. If so, then disassociate it before associating the
hwirq with the new virq.

This is a temporary hack that is needed in order to not break git
bisect for existing boards. The next patch in this series converts
spmi-gpio to be a hierarchical IRQ chip, then there are several patches
to update all of the device tree files, and finally this patch will be
reverted within the same patch series.

IRQs for spmi-gpio are all initially setup without an IRQ hierarchy
on pmic-arb when mfd/qcom-spmi-pmic.c is probed (via the
devm_of_platform_populate call) due to the interrupts property in
device tree. Once spmi-gpio is converted to be a hierarchical IRQ chip
in the next patch, existing users of gpio[d]_to_irq() will call
pmic_gpio_to_irq(), and that will use the new IRQ chip code in
spmi-gpio that sets up the IRQ in an IRQ hierarchy. The hwirq is now
associated with two Linux virqs and interrupts will not work as
expected. This patch corrects that issue.

Driver was tested using gpio-keys and iadc/vadc on the LG Nexus 5
(hammerhead) phone.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---
Changes since v5:
- None

Changes since v4:
- None

Patch introduced in v4.

 drivers/spmi/spmi-pmic-arb.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c
index 928759242e42..bc7dc1d6e4b2 100644
--- a/drivers/spmi/spmi-pmic-arb.c
+++ b/drivers/spmi/spmi-pmic-arb.c
@@ -745,10 +745,15 @@ static void qpnpint_irq_domain_map(struct spmi_pmic_arb *pmic_arb,
 				   irq_hw_number_t hwirq, unsigned int type)
 {
 	irq_flow_handler_t handler;
+	unsigned int old_virq;
 
 	dev_dbg(&pmic_arb->spmic->dev, "virq = %u, hwirq = %lu, type = %u\n",
 		virq, hwirq, type);
 
+	old_virq = irq_find_mapping(domain, hwirq);
+	if (old_virq)
+		irq_domain_disassociate(domain, old_virq);
+
 	if (type & IRQ_TYPE_EDGE_BOTH)
 		handler = handle_edge_irq;
 	else
-- 
2.17.2


  parent reply	other threads:[~2019-01-19 20:44 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-19 20:42 [PATCH v6 00/15] qcom: spmi: add support for hierarchical IRQ chip Brian Masney
2019-01-19 20:42 ` [PATCH v6 01/15] dt-bindings: pinctrl: qcom-pmic-gpio: add qcom,pmi8998-gpio binding Brian Masney
2019-01-19 20:42 ` [PATCH v6 02/15] pinctrl: qcom: spmi-gpio: add support for three new variants Brian Masney
2019-01-19 20:42 ` [PATCH v6 03/15] pinctrl: qcom: spmi-gpio: hardcode IRQ counts Brian Masney
2019-01-19 20:42 ` [PATCH v6 04/15] spmi: pmic-arb: convert to v2 irq interfaces to support hierarchical IRQ chips Brian Masney
2019-01-20 11:30   ` Marc Zyngier
2019-01-19 20:42 ` [PATCH v6 05/15] gpio: add irq domain activate/deactivate functions Brian Masney
2019-01-19 20:42 ` Brian Masney [this message]
2019-01-19 20:42 ` [PATCH v6 07/15] qcom: spmi-gpio: add support for hierarchical IRQ chip Brian Masney
2019-01-20 11:32   ` Marc Zyngier
2019-01-19 20:42 ` [PATCH v6 08/15] ARM: dts: qcom: pm8941: add interrupt controller properties Brian Masney
2019-01-19 20:42 ` [PATCH v6 09/15] ARM: dts: qcom: pma8084: " Brian Masney
2019-01-19 20:42 ` [PATCH v6 10/15] arm64: dts: qcom: pm8005: " Brian Masney
2019-01-19 20:42 ` [PATCH v6 11/15] arm64: dts: qcom: pm8998: " Brian Masney
2019-01-19 20:42 ` [PATCH v6 12/15] arm64: dts: qcom: pmi8994: " Brian Masney
2019-01-19 20:42 ` [PATCH v6 13/15] arm64: dts: qcom: pmi8998: " Brian Masney
2019-01-19 20:42 ` [PATCH v6 14/15] spmi: pmic-arb: validate type when mapping IRQ Brian Masney
2019-01-19 20:42 ` [PATCH v6 15/15] spmi: pmic-arb: revert "disassociate old virq if hwirq mapping already exists" Brian Masney
2019-01-19 23:13 ` [PATCH v6 00/15] qcom: spmi: add support for hierarchical IRQ chip Linus Walleij
2019-01-20 11:36   ` Marc Zyngier
2019-01-22 15:31 ` Linus Walleij
2019-01-22 21:13   ` Andy Gross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190119204252.18370-7-masneyb@onstation.org \
    --to=masneyb@onstation.org \
    --cc=andy.gross@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=david.brown@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=nicolas.dechesne@linaro.org \
    --cc=niklas.cassel@linaro.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).