From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E65BC433F5 for ; Fri, 30 Sep 2022 00:51:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230040AbiI3AvD (ORCPT ); Thu, 29 Sep 2022 20:51:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229783AbiI3Au3 (ORCPT ); Thu, 29 Sep 2022 20:50:29 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED77B5B05D for ; Thu, 29 Sep 2022 17:50:23 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 0479ECE23EF for ; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16DC4C433D7; Fri, 30 Sep 2022 00:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499020; bh=xeoSzNuqPluHkoak2Kt2ZcLQHxT/FauXizeyldfJSO8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=StZehtKYnEQuryaZA9/cyN6tSYSlHkb77b2RNpIF2Uf8mSJhFb7uhi1QrCfLXuD/L 60r9qcxcIBWdiKI20bC6pUFtd7lXIDSxDAC3pn7gsnx9LyZgmKneNQa/cLB1pZhMVu 4cvClIfxTKSTqXbm80nKyUiELgixA7VLI8h9X+TT5lBEaKY9thyMDfczGa9nYHtK5H Fh3bSnG+P9KFvN9y5E/C5e1wG/dpcmG6yWe2DNTi/mnO9jOgsnR0ecyeFNxfblVe93 uB0GO8ijxeIksbeQN+hgiFhvv+3zyu0dbMAc5QsF6vd9X6zdqr/flI2cADPA59R9b2 Aum3wenBsNa+w== From: Stephen Boyd To: Greg Kroah-Hartman Cc: keliu , linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [PATCH 1/9] drivers: spmi: Directly use ida_alloc()/free() Date: Thu, 29 Sep 2022 17:50:10 -0700 Message-Id: <20220930005019.2663064-2-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: keliu Use ida_alloc()/ida_free() instead of deprecated ida_simple_get()/ida_simple_remove() . Signed-off-by: keliu Link: https://lore.kernel.org/r/20220527071338.2359733-1-liuke94@huawei.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c index a456ce5141e1..55381592bb5a 100644 --- a/drivers/spmi/spmi.c +++ b/drivers/spmi/spmi.c @@ -35,7 +35,7 @@ static void spmi_ctrl_release(struct device *dev) { struct spmi_controller *ctrl =3D to_spmi_controller(dev); =20 - ida_simple_remove(&ctrl_ida, ctrl->nr); + ida_free(&ctrl_ida, ctrl->nr); kfree(ctrl); } =20 @@ -457,7 +457,7 @@ struct spmi_controller *spmi_controller_alloc(struct de= vice *parent, ctrl->dev.of_node =3D parent->of_node; spmi_controller_set_drvdata(ctrl, &ctrl[1]); =20 - id =3D ida_simple_get(&ctrl_ida, 0, 0, GFP_KERNEL); + id =3D ida_alloc(&ctrl_ida, GFP_KERNEL); if (id < 0) { dev_err(parent, "unable to allocate SPMI controller identifier.\n"); --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17710C433FE for ; Fri, 30 Sep 2022 00:50:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229819AbiI3Aul (ORCPT ); Thu, 29 Sep 2022 20:50:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229906AbiI3Au1 (ORCPT ); Thu, 29 Sep 2022 20:50:27 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6DAB5AA0D for ; Thu, 29 Sep 2022 17:50:23 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id D2E31B826C9 for ; Fri, 30 Sep 2022 00:50:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57F24C433C1; Fri, 30 Sep 2022 00:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499020; bh=1iKgq57jI+UOl7K/jTlEvdXh17z6ctGT+qZUxoeVpCo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vKf3xd2w/P/LVo7L9VmrzjR/2bRsBRK7UnDSKPe0DFKelXF48aoVFfbtakbChcB2F iOyxwhUd38n+DYMBUucONFy3PO0tGLEzcdyaCjIhtcPBPy4MvL+3QiEWUdKR+4CCQA nZMftVHc5+QXyEBY0ctX7sggU9qzkvyqdYQ6cezjS/E0KUFqbJ7c+PZs6XbnZIgucR 89lcLJ42cTplQFCwldpxhWMXBdZwAIGs83PspsiPgIktEHVC+Ek9L08czn+LlkHE+P +BBmbviUJtyWw9yJ18YMJBJ77GeEFjUZUrTOSvKuTPnW+b8DCh8hm8TzgDGJBZrS3Y 8m7TUwmveqNeQ== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Abhijeet Dharmapurikar , linux-kernel@vger.kernel.org, patches@lists.linux.dev, David Collins , Fenglin Wu Subject: [PATCH 2/9] spmi: pmic-arb: add a print in cleanup_irq Date: Thu, 29 Sep 2022 17:50:11 -0700 Message-Id: <20220930005019.2663064-3-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Abhijeet Dharmapurikar The cleanup_irq() was meant to clear and mask interrupts that were left enabled in the hardware but there was no interrupt handler registered for it. Add an error print when it gets invoked. Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-2-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 2113be40b5a9..5a99723b3f32 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -590,6 +590,8 @@ static void cleanup_irq(struct spmi_pmic_arb *pmic_arb,= u16 apid, int id) u8 per =3D ppid & 0xFF; u8 irq_mask =3D BIT(id); =20 + dev_err_ratelimited(&pmic_arb->spmic->dev, "%s apid=3D%d sid=3D0x%x per= =3D0x%x irq=3D%d\n", + __func__, apid, sid, per, id); writel_relaxed(irq_mask, pmic_arb->ver_ops->irq_clear(pmic_arb, apid)); =20 if (pmic_arb_write_cmd(pmic_arb->spmic, SPMI_CMD_EXT_WRITEL, sid, --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FF2BC433FE for ; Fri, 30 Sep 2022 00:50:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229920AbiI3Au2 (ORCPT ); Thu, 29 Sep 2022 20:50:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229795AbiI3AuW (ORCPT ); Thu, 29 Sep 2022 20:50:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D094491D4 for ; Thu, 29 Sep 2022 17:50:21 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 64BA9621F7 for ; Fri, 30 Sep 2022 00:50:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5C86C433B5; Fri, 30 Sep 2022 00:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499020; bh=NwDUjrU4LjI2WMT3IqrYZyXMmFV1TWVsRQF3T99VRtU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hdaj/SQvQN18WwRjZJizOlwuhVjsmSAOdzAIyeXyBSOaWet4IJaM2d1DwdJp1Ym4S I9T2YOCTXtKAwwG0CmrS21hgIoBS6k0OC6ZY8e/pv6UdbJ8CcbbF68B6zqjIQE0yHX D5IxVPdjQ0fvPYgkoBubfmRQ5mvuf/XsRFrfvvG4ZtJuMNijb36NSJwdSen45FXdh2 oFGqGlwmKK+Hq4obvhhNUJ/+W5ONG76Q7Q/ZLDD/fG31LZ8fVKfy7TKSTtePAqhOIl dkvkOlB++OC/W1Y6RAJjhteV25ci0kquwdbx3u99j3+Vy0sZ4OVVgZZDesC9bWUOIC Xj1m4hlmH3sZA== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Fenglin Wu , linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [PATCH 3/9] spmi: pmic-arb: handle spurious interrupt Date: Thu, 29 Sep 2022 17:50:12 -0700 Message-Id: <20220930005019.2663064-4-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Fenglin Wu Call handle_bad_irq() when the summary interrupt is fired spuriously. Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-3-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 5a99723b3f32..719bd73e5153 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -605,10 +605,11 @@ static void cleanup_irq(struct spmi_pmic_arb *pmic_ar= b, u16 apid, int id) irq_mask, ppid); } =20 -static void periph_interrupt(struct spmi_pmic_arb *pmic_arb, u16 apid) +static int periph_interrupt(struct spmi_pmic_arb *pmic_arb, u16 apid) { unsigned int irq; u32 status, id; + int handled =3D 0; u8 sid =3D (pmic_arb->apid_data[apid].ppid >> 8) & 0xF; u8 per =3D pmic_arb->apid_data[apid].ppid & 0xFF; =20 @@ -623,7 +624,10 @@ static void periph_interrupt(struct spmi_pmic_arb *pmi= c_arb, u16 apid) continue; } generic_handle_irq(irq); + handled++; } + + return handled; } =20 static void pmic_arb_chained_irq(struct irq_desc *desc) @@ -634,7 +638,7 @@ static void pmic_arb_chained_irq(struct irq_desc *desc) int first =3D pmic_arb->min_apid >> 5; int last =3D pmic_arb->max_apid >> 5; u8 ee =3D pmic_arb->ee; - u32 status, enable; + u32 status, enable, handled =3D 0; int i, id, apid; =20 chained_irq_enter(chip, desc); @@ -649,10 +653,14 @@ static void pmic_arb_chained_irq(struct irq_desc *des= c) enable =3D readl_relaxed( ver_ops->acc_enable(pmic_arb, apid)); if (enable & SPMI_PIC_ACC_ENABLE_BIT) - periph_interrupt(pmic_arb, apid); + if (periph_interrupt(pmic_arb, apid) !=3D 0) + handled++; } } =20 + if (handled =3D=3D 0) + handle_bad_irq(desc); + chained_irq_exit(chip, desc); } =20 --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A962C433FE for ; Fri, 30 Sep 2022 00:51:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229991AbiI3AvI (ORCPT ); Thu, 29 Sep 2022 20:51:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229893AbiI3Aua (ORCPT ); Thu, 29 Sep 2022 20:50:30 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E68545A89F for ; Thu, 29 Sep 2022 17:50:24 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id DD531CE23ED for ; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7B77C4347C; Fri, 30 Sep 2022 00:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499021; bh=SlLfoKpwmBknNdU6MSA/2Phbf8VfqnBANRq++WOOwOo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XiSHSMKxEbfQIbiuTiB3p19VwghuGzAcIYIb5zA1ZMZkVrv70nY4+9Q74CnarO7mm wNeWEJUw2Shs6W6VSE2NI4HyeCWE/Ce9xCaaGJYf5kfNX97H5WKnPHdiJI/uwXTsbt IzX0LCsgV+WkgtElTaw0rI/8Z3xEpqPGNCPUx3IG8VdWu696P51CiPT5V4S7tiNowo aO0tZBJllbw33hJQHM/qB8NZnGxhzhCxNEtv8OCwi5d/Dg4ClvYM2KEMSK9g9Us/xu CBBdu0oov1WoYgfaJzsfpG2t9opNT+2itNF2CU2Nhukt/EdoIPEbMZ4SdyDOJbAWtP TwDNbi2/pzBdg== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Subbaraman Narayanamurthy , linux-kernel@vger.kernel.org, patches@lists.linux.dev, David Collins , Fenglin Wu Subject: [PATCH 4/9] spmi: pmic-arb: do not ack and clear peripheral interrupts in cleanup_irq Date: Thu, 29 Sep 2022 17:50:13 -0700 Message-Id: <20220930005019.2663064-5-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Subbaraman Narayanamurthy Currently, cleanup_irq() is invoked when a peripheral's interrupt fires and there is no mapping present in the interrupt domain of spmi interrupt controller. The cleanup_irq clears the arbiter bit, clears the pmic interrupt and disables it at the pmic in that order. The last disable in cleanup_irq races with request_irq() in that it stomps over the enable issued by request_irq. Fix this by not writing to the pmic in cleanup_irq. The latched bit will be left set in the pmic, which will not send us more interrupts even if the enable bit stays enabled. When a client wants to request an interrupt, use the activate callback on the irq_domain to clear latched bit. This ensures that the latched, if set due to the above changes in cleanup_irq or when the bootloader leaves it set, gets cleaned up, paving way for upcoming interrupts to trigger. With this, there is a possibility of unwanted triggering of interrupt right after the latched bit is cleared - the interrupt may be left enabled too. To avoid that, clear the enable first followed by clearing the latched bit in the activate callback. Fixes: 6bc546e71e50 ("spmi: pmic-arb: cleanup unrequested irqs") Fixes: 02abec3616c1 ("spmi: pmic-arb: rename pa_xx to pmic_arb_xx and other= cleanup") Signed-off-by: Subbaraman Narayanamurthy [collinsd@codeaurora.org: fix merge conflict] Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-4-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 719bd73e5153..2bc3b88f35c9 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -593,16 +593,6 @@ static void cleanup_irq(struct spmi_pmic_arb *pmic_arb= , u16 apid, int id) dev_err_ratelimited(&pmic_arb->spmic->dev, "%s apid=3D%d sid=3D0x%x per= =3D0x%x irq=3D%d\n", __func__, apid, sid, per, id); writel_relaxed(irq_mask, pmic_arb->ver_ops->irq_clear(pmic_arb, apid)); - - if (pmic_arb_write_cmd(pmic_arb->spmic, SPMI_CMD_EXT_WRITEL, sid, - (per << 8) + QPNPINT_REG_LATCHED_CLR, &irq_mask, 1)) - dev_err_ratelimited(&pmic_arb->spmic->dev, "failed to ack irq_mask =3D 0= x%x for ppid =3D %x\n", - irq_mask, ppid); - - if (pmic_arb_write_cmd(pmic_arb->spmic, SPMI_CMD_EXT_WRITEL, sid, - (per << 8) + QPNPINT_REG_EN_CLR, &irq_mask, 1)) - dev_err_ratelimited(&pmic_arb->spmic->dev, "failed to ack irq_mask =3D 0= x%x for ppid =3D %x\n", - irq_mask, ppid); } =20 static int periph_interrupt(struct spmi_pmic_arb *pmic_arb, u16 apid) @@ -780,6 +770,7 @@ static int qpnpint_irq_domain_activate(struct irq_domai= n *domain, u16 apid =3D hwirq_to_apid(d->hwirq); u16 sid =3D hwirq_to_sid(d->hwirq); u16 irq =3D hwirq_to_irq(d->hwirq); + u8 buf; =20 if (pmic_arb->apid_data[apid].irq_ee !=3D pmic_arb->ee) { dev_err(&pmic_arb->spmic->dev, "failed to xlate sid =3D %#x, periph =3D = %#x, irq =3D %u: ee=3D%u but owner=3D%u\n", @@ -788,6 +779,10 @@ static int qpnpint_irq_domain_activate(struct irq_doma= in *domain, return -ENODEV; } =20 + buf =3D BIT(irq); + qpnpint_spmi_write(d, QPNPINT_REG_EN_CLR, &buf, 1); + qpnpint_spmi_write(d, QPNPINT_REG_LATCHED_CLR, &buf, 1); + return 0; } =20 --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 208EFC433F5 for ; Fri, 30 Sep 2022 00:50:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229941AbiI3Aud (ORCPT ); Thu, 29 Sep 2022 20:50:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229792AbiI3AuZ (ORCPT ); Thu, 29 Sep 2022 20:50:25 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F18F1564C3 for ; Thu, 29 Sep 2022 17:50:22 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 02C2C621F5 for ; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48575C43470; Fri, 30 Sep 2022 00:50:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499021; bh=zB8G1Z7pEhfGomLi8IipgwDv6tydTM4idiFu0sDQK/Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RfDM6tRDl9nDSLXTYnWKvRI8R5FbmaW+PCjml/5KwCOvwhkyiQPOIyRVQ3GPFgTDq zA4N8cH7SUHToIId7ZoWcStOqluA4g8BbeONFtEdC0ImgxY9YMS8XWg1cgOiRGVU97 SoZdLPGTZjfR32/pgM2f28KdI6uK0B+rkNJsYlqtIBiWzHzgyCYyGTAtcAcrunJop4 m2XLqfmhQ/jI+smB8XolxljyUGviVXifVgSwXJhovCJwuQt3ByY5US6j0v8g3gPIsg mHTwPO7K5ftXeZcEo0Qoty+mZPqBjhuGw/L9RQFMrwCvoixAQZ4Byp0VeJue5A7MCe dSizEtBsLpgPg== From: Stephen Boyd To: Greg Kroah-Hartman Cc: David Collins , linux-kernel@vger.kernel.org, patches@lists.linux.dev, Fenglin Wu Subject: [PATCH 5/9] spmi: pmic-arb: check apid against limits before calling irq handler Date: Thu, 29 Sep 2022 17:50:14 -0700 Message-Id: <20220930005019.2663064-6-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: David Collins Check that the apid for an SPMI interrupt falls between the min_apid and max_apid that can be handled by the APPS processor before invoking the per-apid interrupt handler: periph_interrupt(). This avoids an access violation in rare cases where the status bit is set for an interrupt that is not owned by the APPS processor. Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-5-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 2bc3b88f35c9..e19eaec30aa5 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -625,21 +625,26 @@ static void pmic_arb_chained_irq(struct irq_desc *des= c) struct spmi_pmic_arb *pmic_arb =3D irq_desc_get_handler_data(desc); const struct pmic_arb_ver_ops *ver_ops =3D pmic_arb->ver_ops; struct irq_chip *chip =3D irq_desc_get_chip(desc); - int first =3D pmic_arb->min_apid >> 5; - int last =3D pmic_arb->max_apid >> 5; + int first =3D pmic_arb->min_apid; + int last =3D pmic_arb->max_apid; u8 ee =3D pmic_arb->ee; u32 status, enable, handled =3D 0; int i, id, apid; =20 chained_irq_enter(chip, desc); =20 - for (i =3D first; i <=3D last; ++i) { + for (i =3D first >> 5; i <=3D last >> 5; ++i) { status =3D readl_relaxed( ver_ops->owner_acc_status(pmic_arb, ee, i)); while (status) { id =3D ffs(status) - 1; status &=3D ~BIT(id); apid =3D id + i * 32; + if (apid < first || apid > last) { + WARN_ONCE(true, "spurious spmi irq received for apid=3D%d\n", + apid); + continue; + } enable =3D readl_relaxed( ver_ops->acc_enable(pmic_arb, apid)); if (enable & SPMI_PIC_ACC_ENABLE_BIT) --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 410BDC433F5 for ; Fri, 30 Sep 2022 00:50:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229658AbiI3Auw (ORCPT ); Thu, 29 Sep 2022 20:50:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229922AbiI3Au2 (ORCPT ); Thu, 29 Sep 2022 20:50:28 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6ACC5A8B5 for ; Thu, 29 Sep 2022 17:50:24 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 15E0EB824C2 for ; Fri, 30 Sep 2022 00:50:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F822C43141; Fri, 30 Sep 2022 00:50:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499021; bh=h409O7MuFLd1R61Cty/K7nU8QRAFuS/SVZNLRXmCENc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JAk6c6zc1p79t1K11l/7dq2q4WAISTuoGI6iVo6I/QPLVZjJ6qQNXsclw2B7oac5D gnyKhhL2rANgr15f1hGG31cR2o2/Lzt0HRP1/UKeVq7sPpNC4Fr03d2y/mMYljlqpj VSFOq0yOOVsOado9BtDJTss34j3/25KqDbSn10fnEEUtFf+R2Icw6wOnbCQA7930e+ kzO3bUEi5UU1W4nOyxVACFzLVfycLPQUAYV48CLsmi+XMUdDpN4ni9CU66yh3a89Vn jdjLqwsPFHlMWJk5plJvzeJzKlP2s81+S/rlK3O+MnvZVTSJuGmcsmAKQD7WebQmkq wuTMxWsZMYFPw== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Ashay Jaiswal , linux-kernel@vger.kernel.org, patches@lists.linux.dev, David Collins , Fenglin Wu Subject: [PATCH 6/9] spmi: pmic-arb: add support to dispatch interrupt based on IRQ status Date: Thu, 29 Sep 2022 17:50:15 -0700 Message-Id: <20220930005019.2663064-7-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ashay Jaiswal Current implementation of SPMI arbiter dispatches interrupt based on the Arbiter's accumulator status, in some cases the accumulator status may remain zero and the interrupt remains un-handled. Add logic to dispatch interrupts based Arbiter's IRQ status if the accumulator status is zero. Signed-off-by: Ashay Jaiswal Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-6-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index e19eaec30aa5..56f22941d570 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -630,12 +630,18 @@ static void pmic_arb_chained_irq(struct irq_desc *des= c) u8 ee =3D pmic_arb->ee; u32 status, enable, handled =3D 0; int i, id, apid; + /* status based dispatch */ + bool acc_valid =3D false; + u32 irq_status =3D 0; =20 chained_irq_enter(chip, desc); =20 for (i =3D first >> 5; i <=3D last >> 5; ++i) { status =3D readl_relaxed( ver_ops->owner_acc_status(pmic_arb, ee, i)); + if (status) + acc_valid =3D true; + while (status) { id =3D ffs(status) - 1; status &=3D ~BIT(id); @@ -653,6 +659,29 @@ static void pmic_arb_chained_irq(struct irq_desc *desc) } } =20 + /* ACC_STATUS is empty but IRQ fired check IRQ_STATUS */ + if (!acc_valid) { + for (i =3D first; i <=3D last; i++) { + /* skip if APPS is not irq owner */ + if (pmic_arb->apid_data[i].irq_ee !=3D pmic_arb->ee) + continue; + + irq_status =3D readl_relaxed( + ver_ops->irq_status(pmic_arb, i)); + if (irq_status) { + enable =3D readl_relaxed( + ver_ops->acc_enable(pmic_arb, i)); + if (enable & SPMI_PIC_ACC_ENABLE_BIT) { + dev_dbg(&pmic_arb->spmic->dev, + "Dispatching IRQ for apid=3D%d status=3D%x\n", + i, irq_status); + if (periph_interrupt(pmic_arb, i) !=3D 0) + handled++; + } + } + } + } + if (handled =3D=3D 0) handle_bad_irq(desc); =20 --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8813C433F5 for ; Fri, 30 Sep 2022 00:50:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229887AbiI3Aui (ORCPT ); Thu, 29 Sep 2022 20:50:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229877AbiI3Au1 (ORCPT ); Thu, 29 Sep 2022 20:50:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADDA44B0CC for ; Thu, 29 Sep 2022 17:50:22 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3CE71621F8 for ; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFBADC433D6; Fri, 30 Sep 2022 00:50:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499022; bh=taB5laCLRmijvLj1M4Rx6x1cEHHxTJYPbp+d1oTUFsc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fQuJneWXXqsrGdnZzU9Sz5uRMKKesEz872/LTokdzkeYNBFFvqGUELZl0PY8jorU9 rn2hGrh01qtpMRIB6kulEOJnLVQsZ26z47yZBxKsZ1EHveuq7VfUGR2eALSfxwFrfg keze0XATVrr8aXRA9Rx4Z3HRSp04axEHlQ+IxRGwAEA6virz4XMPHDvCSe/laAN7Bj tq5hclN8mmv+HHvf7h1CR7NTZy9iVCdaY8QO/iS/+dwZ8p2L4b5bE7e1LkGoNE87IS uVezkvXmLd+J098V/pH0rn1ABzGOWQ62R3oYek1JWJ4iNX6NUkVFyGItuZEF7L4yh1 //p+PkI7omsXQ== From: Stephen Boyd To: Greg Kroah-Hartman Cc: David Collins , linux-kernel@vger.kernel.org, patches@lists.linux.dev, Fenglin Wu Subject: [PATCH 7/9] spmi: pmic-arb: correct duplicate APID to PPID mapping logic Date: Thu, 29 Sep 2022 17:50:16 -0700 Message-Id: <20220930005019.2663064-8-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: David Collins Correct the way that duplicate PPID mappings are handled for PMIC arbiter v5. The final APID mapped to a given PPID should be the one which has write owner =3D APPS EE, if it exists, or if not that, then the first APID mapped to the PPID, if it exists. Fixes: 40f318f0ed67 ("spmi: pmic-arb: add support for HW version 5") Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-7-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 56f22941d570..cf92abc51689 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -1031,7 +1031,8 @@ static int pmic_arb_read_apid_map_v5(struct spmi_pmic= _arb *pmic_arb) * version 5, there is more than one APID mapped to each PPID. * The owner field for each of these mappings specifies the EE which is * allowed to write to the APID. The owner of the last (highest) APID - * for a given PPID will receive interrupts from the PPID. + * which has the IRQ owner bit set for a given PPID will receive + * interrupts from the PPID. */ for (i =3D 0; ; i++, apidd++) { offset =3D pmic_arb->ver_ops->apid_map_offset(i); @@ -1054,16 +1055,16 @@ static int pmic_arb_read_apid_map_v5(struct spmi_pm= ic_arb *pmic_arb) apid =3D pmic_arb->ppid_to_apid[ppid] & ~PMIC_ARB_APID_VALID; prev_apidd =3D &pmic_arb->apid_data[apid]; =20 - if (valid && is_irq_ee && - prev_apidd->write_ee =3D=3D pmic_arb->ee) { + if (!valid || apidd->write_ee =3D=3D pmic_arb->ee) { + /* First PPID mapping or one for this EE */ + pmic_arb->ppid_to_apid[ppid] =3D i | PMIC_ARB_APID_VALID; + } else if (valid && is_irq_ee && + prev_apidd->write_ee =3D=3D pmic_arb->ee) { /* * Duplicate PPID mapping after the one for this EE; * override the irq owner */ prev_apidd->irq_ee =3D apidd->irq_ee; - } else if (!valid || is_irq_ee) { - /* First PPID mapping or duplicate for another EE */ - pmic_arb->ppid_to_apid[ppid] =3D i | PMIC_ARB_APID_VALID; } =20 apidd->ppid =3D ppid; --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D629BC433F5 for ; Fri, 30 Sep 2022 00:51:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230058AbiI3AvL (ORCPT ); Thu, 29 Sep 2022 20:51:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229834AbiI3Au3 (ORCPT ); Thu, 29 Sep 2022 20:50:29 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6EE25AA29 for ; Thu, 29 Sep 2022 17:50:22 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 863F7621FD for ; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34A5BC43140; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499022; bh=oDmFdti2cyUR9jedMqIwc5dR+zlMJeHAAAri4fHdknQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E0uxHNa6VksjexCPd+S/8v/xU2CGnp2MW4FLz1zKR9D6fxbQ1CR7m6qd8zroWGm66 2CCCoKB3ZkuKmfmMQdjBlR2R2NhZvFJo0ApVuVp8fE4vWh0MKIkLnFxmQM/bYI7Mbg DxGVZbremckemw8j/DuV1szvsrl1KyOkvGMTEDHOQ+/vjmsX13ThrpDrV+4xCzGkgH GVrl9rhQnMdAr8NEwsuQKX5hwVZFer4/2beNKmpBRpCmI0hEai6bUwaJWaICXO4Xmq DfBsuRCdzsR1DN/PEkhl57BA4HnnrZW5LQXaNiyMqRe5Oi8qtFo8Q2KLTAX7spXcrC Kq5zEL7nx28jw== From: Stephen Boyd To: Greg Kroah-Hartman Cc: David Collins , linux-kernel@vger.kernel.org, patches@lists.linux.dev, Fenglin Wu Subject: [PATCH 8/9] spmi: pmic-arb: block access for invalid PMIC arbiter v5 SPMI writes Date: Thu, 29 Sep 2022 17:50:17 -0700 Message-Id: <20220930005019.2663064-9-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: David Collins The system crashes due to an access permission violation when writing to a PMIC peripheral which is not owned by the current ee. Add a check for PMIC arbiter version 5 for such invalid write requests and return an error instead of crashing the system. Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-8-git-send-email-quic_feng= linw@quicinc.com Signed-off-by: Stephen Boyd --- 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 cf92abc51689..39f25bc26233 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -1133,6 +1133,11 @@ static int pmic_arb_offset_v5(struct spmi_pmic_arb *= pmic_arb, u8 sid, u16 addr, offset =3D 0x10000 * pmic_arb->ee + 0x80 * apid; break; case PMIC_ARB_CHANNEL_RW: + if (pmic_arb->apid_data[apid].write_ee !=3D pmic_arb->ee) { + dev_err(&pmic_arb->spmic->dev, "disallowed SPMI write to sid=3D%u, addr= =3D0x%04X\n", + sid, addr); + return -EPERM; + } offset =3D 0x10000 * apid; break; } --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Mon Apr 6 11:53:11 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 512DEC433FE for ; Fri, 30 Sep 2022 00:50:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230012AbiI3Aus (ORCPT ); Thu, 29 Sep 2022 20:50:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229902AbiI3Au1 (ORCPT ); Thu, 29 Sep 2022 20:50:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6BB75AA01 for ; Thu, 29 Sep 2022 17:50:23 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id CCD37621FF for ; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C6E6C43143; Fri, 30 Sep 2022 00:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664499022; bh=7LJ64O6A/mqm94cjoD/YSd5blsm2WGPuYoFyyVXjGI8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nVd9bxe2KYaIQ8Su0PrvjvxcblGhVZdVtrW6uRhZSzMGHSm/ONj8iu/v7v1bLyhvO KD9t+QeGSr+ifVzrljYqbED8rKyGL4YjOaybbQXXCPrqrc6iCYfJGRqfSTT4+NhNu7 9ovFsqFddrwE3HXCtQxRzBfPgM9pIScdyOgTeSTJCXivk+PJkFZ/ioKV/tpfaoAph4 N8ljv0S4oMu1X+0xbFesuZUi/+W//W7MaRzr1kazQQoiAL2zu76a7LTiwYia0HCkyE J3o+oI5uO9D8TzFWXI0Feb2DVrsCILXxJC4QOz3KzWgDeF9YTQRy6IFzZAev24b4lb p2TrFMVl4AcHw== From: Stephen Boyd To: Greg Kroah-Hartman Cc: David Collins , linux-kernel@vger.kernel.org, patches@lists.linux.dev, Fenglin Wu Subject: [PATCH 9/9] spmi: pmic-arb: increase SPMI transaction timeout delay Date: Thu, 29 Sep 2022 17:50:18 -0700 Message-Id: <20220930005019.2663064-10-sboyd@kernel.org> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog In-Reply-To: <20220930005019.2663064-1-sboyd@kernel.org> References: <20220930005019.2663064-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: David Collins Increase the SPMI transaction timeout delay from 100 us to 1000 us in order to account for the slower execution time found on some simulator targets. Signed-off-by: David Collins Signed-off-by: Fenglin Wu Link: https://lore.kernel.org/r/1655004286-11493-11-git-send-email-quic_fen= glinw@quicinc.com Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 39f25bc26233..2cf3203b2397 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -91,7 +91,7 @@ enum pmic_arb_channel { =20 /* Maximum number of support PMIC peripherals */ #define PMIC_ARB_MAX_PERIPHS 512 -#define PMIC_ARB_TIMEOUT_US 100 +#define PMIC_ARB_TIMEOUT_US 1000 #define PMIC_ARB_MAX_TRANS_BYTES (8) =20 #define PMIC_ARB_APID_MASK 0xFF --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git