From: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com>

Move code from pre_bank_switch to dedicated helper, will be used in
follow-up patches as recommended by programming flows.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.l...@linux.intel.com>
---
 drivers/soundwire/intel.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index 4792613e8e5a..6a745602c9cc 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -497,6 +497,21 @@ static int __maybe_unused intel_link_power_down(struct 
sdw_intel *sdw)
        return 0;
 }
 
+static void intel_shim_sync_arm(struct sdw_intel *sdw)
+{
+       void __iomem *shim = sdw->link_res->shim;
+       u32 sync_reg;
+
+       mutex_lock(sdw->link_res->shim_lock);
+
+       /* update SYNC register */
+       sync_reg = intel_readl(shim, SDW_SHIM_SYNC);
+       sync_reg |= (SDW_SHIM_SYNC_CMDSYNC << sdw->instance);
+       intel_writel(shim, SDW_SHIM_SYNC, sync_reg);
+
+       mutex_unlock(sdw->link_res->shim_lock);
+}
+
 /*
  * PDI routines
  */
@@ -710,21 +725,12 @@ static int intel_pre_bank_switch(struct sdw_bus *bus)
 {
        struct sdw_cdns *cdns = bus_to_cdns(bus);
        struct sdw_intel *sdw = cdns_to_intel(cdns);
-       void __iomem *shim = sdw->link_res->shim;
-       int sync_reg;
 
        /* Write to register only for multi-link */
        if (!bus->multi_link)
                return 0;
 
-       mutex_lock(sdw->link_res->shim_lock);
-
-       /* Read SYNC register */
-       sync_reg = intel_readl(shim, SDW_SHIM_SYNC);
-       sync_reg |= SDW_SHIM_SYNC_CMDSYNC << sdw->instance;
-       intel_writel(shim, SDW_SHIM_SYNC, sync_reg);
-
-       mutex_unlock(sdw->link_res->shim_lock);
+       intel_shim_sync_arm(sdw);
 
        return 0;
 }
-- 
2.17.1

Reply via email to