soundwire: cadence: enable NORMAL operation in cdns_init()
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 17 Mar 2020 16:33:24 +0000 (11:33 -0500)
committerVinod Koul <vkoul@kernel.org>
Thu, 19 Mar 2020 07:13:04 +0000 (12:43 +0530)
Follow recommended programming sequences, this needs to be enabled
before the reset sequence.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200317163329.25501-13-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/cadence_master.c

index 9afce1f..6adf41e 100644 (file)
@@ -842,11 +842,6 @@ int sdw_cdns_exit_reset(struct sdw_cdns *cdns)
                     CDNS_MCP_CONTROL_HW_RST,
                     CDNS_MCP_CONTROL_HW_RST);
 
-       /* enable bus operations with clock and data */
-       cdns_updatel(cdns, CDNS_MCP_CONFIG,
-                    CDNS_MCP_CONFIG_OP,
-                    CDNS_MCP_CONFIG_OP_NORMAL);
-
        /* commit changes */
        return cdns_config_update(cdns);
 }
@@ -1097,6 +1092,10 @@ int sdw_cdns_init(struct sdw_cdns *cdns)
        /* Configure mcp config */
        val = cdns_readl(cdns, CDNS_MCP_CONFIG);
 
+       /* enable bus operations with clock and data */
+       val &= ~CDNS_MCP_CONFIG_OP;
+       val |= CDNS_MCP_CONFIG_OP_NORMAL;
+
        /* Set cmd mode for Tx and Rx cmds */
        val &= ~CDNS_MCP_CONFIG_CMD;