diff options
| author | Adrian Hunter <adrian.hunter@intel.com> | 2025-11-28 08:40:33 +0200 |
|---|---|---|
| committer | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2025-11-29 00:06:40 +0100 |
| commit | 6f6efdd15c67bd262a6e9c795fd54d47e4cb6857 (patch) | |
| tree | 55d3f381f552a4f827dc8a4566a73fe0d2b1e6cd | |
| parent | 9dfa23c41510570a6d7f405ab6bacdb215bf9d8f (diff) | |
i3c: mipi-i3c-hci-pci: Factor out intel_reset()
For neatness, factor out intel_reset().
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20251128064038.55158-8-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
| -rw-r--r-- | drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c index 1e1f2c42bd74..b9794212b2fb 100644 --- a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c +++ b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c @@ -27,6 +27,18 @@ static DEFINE_IDA(mipi_i3c_hci_pci_ida); #define INTEL_RESETS_RESET_DONE BIT(1) #define INTEL_RESETS_TIMEOUT_US (10 * USEC_PER_MSEC) +static void intel_reset(void __iomem *priv) +{ + u32 reg; + + /* Assert reset, wait for completion and release reset */ + writel(0, priv + INTEL_RESETS); + readl_poll_timeout(priv + INTEL_RESETS, reg, + reg & INTEL_RESETS_RESET_DONE, 0, + INTEL_RESETS_TIMEOUT_US); + writel(INTEL_RESETS_RESET, priv + INTEL_RESETS); +} + static void __iomem *intel_priv(struct pci_dev *pci) { resource_size_t base = pci_resource_start(pci, 0); @@ -37,19 +49,13 @@ static void __iomem *intel_priv(struct pci_dev *pci) static int intel_i3c_init(struct pci_dev *pci) { void __iomem *priv = intel_priv(pci); - u32 reg; if (!priv) return -ENOMEM; dma_set_mask_and_coherent(&pci->dev, DMA_BIT_MASK(64)); - /* Assert reset, wait for completion and release reset */ - writel(0, priv + INTEL_RESETS); - readl_poll_timeout(priv + INTEL_RESETS, reg, - reg & INTEL_RESETS_RESET_DONE, 0, - INTEL_RESETS_TIMEOUT_US); - writel(INTEL_RESETS_RESET, priv + INTEL_RESETS); + intel_reset(priv); return 0; } |
