public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
From: Vincent Cloutier <vincent.cloutier@icloud.com>
To: heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	sven@kernel.org, Vincent Cloutier <vincent@cloutier.co>,
	stable@vger.kernel.org
Subject: [PATCH v1 1/1] usb: typec: tipd: Restore generic TPS6598x contract interrupts
Date: Wed,  1 Apr 2026 20:09:50 -0400	[thread overview]
Message-ID: <20260402000950.715470-1-vincent.cloutier@icloud.com> (raw)

From: Vincent Cloutier <vincent@cloutier.co>

The generic TPS6598x interrupt handler still relies on
PP_SWITCH_CHANGED, NEW_CONTRACT_AS_CONSUMER, HARD_RESET, and
STATUS_UPDATE, but the irq_mask1 refactor only kept
POWER_STATUS_UPDATE, DATA_STATUS_UPDATE, and PLUG_EVENT in
tps6598x_data.

On the librem5 that leaves PD partners stuck at the 500 mA fallback
because the active contract is never refreshed after attach.

Restore the missing interrupt bits so the existing handler paths are
reachable again. This fixes USB-C charging negotiation on the librem5:
after a replug the TPS6598x source power supply reports 3 A instead of
500 mA and the BQ25890 input limit follows suit.

Fixes: b3dddff502c5 ("usb: typec: tipd: Move initial irq mask to tipd_data")
Cc: stable@vger.kernel.org
Signed-off-by: Vincent Cloutier <vincent@cloutier.co>
---
 drivers/usb/typec/tipd/core.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c
index 84ee5687bb27..83f2fec6e34e 100644
--- a/drivers/usb/typec/tipd/core.c
+++ b/drivers/usb/typec/tipd/core.c
@@ -2395,7 +2395,11 @@ static const struct tipd_data tps6598x_data = {
 	.irq_handler = tps6598x_interrupt,
 	.irq_mask1 = TPS_REG_INT_POWER_STATUS_UPDATE |
 		     TPS_REG_INT_DATA_STATUS_UPDATE |
-		     TPS_REG_INT_PLUG_EVENT,
+		     TPS_REG_INT_PLUG_EVENT |
+		     TPS_REG_INT_PP_SWITCH_CHANGED |
+		     TPS_REG_INT_NEW_CONTRACT_AS_CONSUMER |
+		     TPS_REG_INT_HARD_RESET |
+		     TPS_REG_INT_STATUS_UPDATE,
 	.tps_struct_size = sizeof(struct tps6598x),
 	.register_port = tps6598x_register_port,
 	.unregister_port = tps6598x_unregister_port,
-- 
2.53.0


             reply	other threads:[~2026-04-02  0:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-02  0:09 Vincent Cloutier [this message]
2026-04-02 14:06 ` [PATCH v1 1/1] usb: typec: tipd: Restore generic TPS6598x contract interrupts Heikki Krogerus
2026-04-03 10:24 ` Sebastian Krzyszkowiak
2026-04-03 14:09   ` Vincent Cloutier

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=20260402000950.715470-1-vincent.cloutier@icloud.com \
    --to=vincent.cloutier@icloud.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=sven@kernel.org \
    --cc=vincent@cloutier.co \
    /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