mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 02:09:42 +00:00
ASoC: Intel: Skylake: Fix dma buffer size calculation
DMA buffer size for gateway copier will be calculated based on: For host DMA copier: Input buffer size (ibs) for output direction (playback) Output buffer size (obs) for input direction (capture) For link DMA copier: IBS for input direction (capture) OBS for output direction (playback) Update the driver to use the above. Signed-off-by: Ramesh Babu <ramesh.babu@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Acked-By: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
939df3ada7
commit
f6e6ab1d16
1 changed files with 25 additions and 4 deletions
|
@ -507,6 +507,8 @@ static void skl_setup_cpr_gateway_cfg(struct skl_sst *ctx,
|
|||
struct skl_module_cfg *mconfig,
|
||||
struct skl_cpr_cfg *cpr_mconfig)
|
||||
{
|
||||
u32 dma_io_buf;
|
||||
|
||||
cpr_mconfig->gtw_cfg.node_id = skl_get_node_id(ctx, mconfig);
|
||||
|
||||
if (cpr_mconfig->gtw_cfg.node_id == SKL_NON_GATEWAY_CPR_NODE_ID) {
|
||||
|
@ -514,10 +516,29 @@ static void skl_setup_cpr_gateway_cfg(struct skl_sst *ctx,
|
|||
return;
|
||||
}
|
||||
|
||||
if (SKL_CONN_SOURCE == mconfig->hw_conn_type)
|
||||
cpr_mconfig->gtw_cfg.dma_buffer_size = 2 * mconfig->obs;
|
||||
else
|
||||
cpr_mconfig->gtw_cfg.dma_buffer_size = 2 * mconfig->ibs;
|
||||
switch (mconfig->hw_conn_type) {
|
||||
case SKL_CONN_SOURCE:
|
||||
if (mconfig->dev_type == SKL_DEVICE_HDAHOST)
|
||||
dma_io_buf = mconfig->ibs;
|
||||
else
|
||||
dma_io_buf = mconfig->obs;
|
||||
break;
|
||||
|
||||
case SKL_CONN_SINK:
|
||||
if (mconfig->dev_type == SKL_DEVICE_HDAHOST)
|
||||
dma_io_buf = mconfig->obs;
|
||||
else
|
||||
dma_io_buf = mconfig->ibs;
|
||||
break;
|
||||
|
||||
default:
|
||||
dev_warn(ctx->dev, "wrong connection type: %d\n",
|
||||
mconfig->hw_conn_type);
|
||||
return;
|
||||
}
|
||||
|
||||
cpr_mconfig->gtw_cfg.dma_buffer_size =
|
||||
mconfig->dma_buffer_size * dma_io_buf;
|
||||
|
||||
cpr_mconfig->cpr_feature_mask = 0;
|
||||
cpr_mconfig->gtw_cfg.config_length = 0;
|
||||
|
|
Loading…
Reference in a new issue