Commit de763fa8 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Vinod Koul

soundwire: intel: pass link_mask information to each master

While the hardware exposes independent bits to power-up each master,
the recommended sequence is to power all links or none. Idle links can
still use the clock stop mode while the master is powered.
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200901150556.19432-10-yung-chuan.liao@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent f748f34e
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
* @shim_lock: mutex to handle access to shared SHIM registers * @shim_lock: mutex to handle access to shared SHIM registers
* @shim_mask: global pointer to check SHIM register initialization * @shim_mask: global pointer to check SHIM register initialization
* @clock_stop_quirks: mask defining requested behavior on pm_suspend * @clock_stop_quirks: mask defining requested behavior on pm_suspend
* @link_mask: global mask needed for power-up/down sequences
* @cdns: Cadence master descriptor * @cdns: Cadence master descriptor
* @list: used to walk-through all masters exposed by the same controller * @list: used to walk-through all masters exposed by the same controller
*/ */
...@@ -33,6 +34,7 @@ struct sdw_intel_link_res { ...@@ -33,6 +34,7 @@ struct sdw_intel_link_res {
struct mutex *shim_lock; /* protect shared registers */ struct mutex *shim_lock; /* protect shared registers */
u32 *shim_mask; u32 *shim_mask;
u32 clock_stop_quirks; u32 clock_stop_quirks;
u32 link_mask;
struct sdw_cdns *cdns; struct sdw_cdns *cdns;
struct list_head list; struct list_head list;
}; };
......
...@@ -255,6 +255,7 @@ static struct sdw_intel_ctx ...@@ -255,6 +255,7 @@ static struct sdw_intel_ctx
link->clock_stop_quirks = res->clock_stop_quirks; link->clock_stop_quirks = res->clock_stop_quirks;
link->shim_lock = &ctx->shim_lock; link->shim_lock = &ctx->shim_lock;
link->shim_mask = &ctx->shim_mask; link->shim_mask = &ctx->shim_mask;
link->link_mask = link_mask;
memset(&pdevinfo, 0, sizeof(pdevinfo)); memset(&pdevinfo, 0, sizeof(pdevinfo));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment