From 8afa0dd83b608a344b967dc1ef1b4f282662416d Mon Sep 17 00:00:00 2001 From: Adrian Hunter Date: Tue, 13 Jan 2026 09:26:54 +0200 Subject: [PATCH] i3c: mipi-i3c-hci: Add PIO suspend and resume support Introduce helper functions to suspend and resume PIO operations. These are required to prepare for upcoming Runtime PM support, ensuring that PIO state is properly managed during power transitions. Signed-off-by: Adrian Hunter Reviewed-by: Frank Li Link: https://patch.msgid.link/20260113072702.16268-14-adrian.hunter@intel.com Signed-off-by: Alexandre Belloni --- drivers/i3c/master/mipi-i3c-hci/pio.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/i3c/master/mipi-i3c-hci/pio.c b/drivers/i3c/master/mipi-i3c-hci/pio.c index 52d9f01d9ca9c..8e868e81acdaf 100644 --- a/drivers/i3c/master/mipi-i3c-hci/pio.c +++ b/drivers/i3c/master/mipi-i3c-hci/pio.c @@ -190,6 +190,18 @@ static void __hci_pio_init(struct i3c_hci *hci, u32 *size_val_ptr) pio->enabled_irqs = STAT_ALL_ERRORS; } +static void hci_pio_suspend(struct i3c_hci *hci) +{ + pio_reg_write(INTR_SIGNAL_ENABLE, 0); + + i3c_hci_sync_irq_inactive(hci); +} + +static void hci_pio_resume(struct i3c_hci *hci) +{ + __hci_pio_init(hci, NULL); +} + static int hci_pio_init(struct i3c_hci *hci) { struct hci_pio_data *pio; @@ -1059,4 +1071,6 @@ const struct hci_io_ops mipi_i3c_hci_pio = { .request_ibi = hci_pio_request_ibi, .free_ibi = hci_pio_free_ibi, .recycle_ibi_slot = hci_pio_recycle_ibi_slot, + .suspend = hci_pio_suspend, + .resume = hci_pio_resume, }; -- 2.47.3