asoc: lpass-cdc: add lpass-cdc v2p5 register updates

Update lpass-cdc version 2p5 registers update and remove old
version tables.

Change-Id: I14e0efe09e3ff5ded49b91e2e226558ae444bc0f
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Esse commit está contido em:
Laxminath Kasam
2020-09-10 23:45:11 +05:30
commit de Gerrit - the friendly Code Review server
commit eca32d433e
11 arquivos alterados com 1748 adições e 3091 exclusões

Ver arquivo

@@ -108,30 +108,9 @@ static int __lpass_cdc_reg_read(struct lpass_cdc_priv *priv,
goto ssr_err;
}
if (priv->version < LPASS_CDC_VERSION_2_0) {
/* Request Clk before register access */
ret = lpass_cdc_clk_rsc_request_clock(priv->macro_params[macro_id].dev,
priv->macro_params[macro_id].default_clk_id,
priv->macro_params[macro_id].clk_id_req,
true);
if (ret < 0) {
dev_err_ratelimited(priv->dev,
"%s: Failed to enable clock, ret:%d\n",
__func__, ret);
goto err;
}
}
lpass_cdc_ahb_read_device(
priv->macro_params[macro_id].io_base, reg, val);
if (priv->version < LPASS_CDC_VERSION_2_0)
lpass_cdc_clk_rsc_request_clock(priv->macro_params[macro_id].dev,
priv->macro_params[macro_id].default_clk_id,
priv->macro_params[macro_id].clk_id_req,
false);
err:
if (priv->macro_params[VA_MACRO].dev) {
pm_runtime_mark_last_busy(priv->macro_params[VA_MACRO].dev);
pm_runtime_put_autosuspend(priv->macro_params[VA_MACRO].dev);
@@ -159,30 +138,9 @@ static int __lpass_cdc_reg_write(struct lpass_cdc_priv *priv,
goto ssr_err;
}
if (priv->version < LPASS_CDC_VERSION_2_0) {
/* Request Clk before register access */
ret = lpass_cdc_clk_rsc_request_clock(priv->macro_params[macro_id].dev,
priv->macro_params[macro_id].default_clk_id,
priv->macro_params[macro_id].clk_id_req,
true);
if (ret < 0) {
dev_err_ratelimited(priv->dev,
"%s: Failed to enable clock, ret:%d\n",
__func__, ret);
goto err;
}
}
lpass_cdc_ahb_write_device(
priv->macro_params[macro_id].io_base, reg, val);
if (priv->version < LPASS_CDC_VERSION_2_0)
lpass_cdc_clk_rsc_request_clock(priv->macro_params[macro_id].dev,
priv->macro_params[macro_id].default_clk_id,
priv->macro_params[macro_id].clk_id_req,
false);
err:
if (priv->macro_params[VA_MACRO].dev) {
pm_runtime_mark_last_busy(priv->macro_params[VA_MACRO].dev);
pm_runtime_put_autosuspend(priv->macro_params[VA_MACRO].dev);
@@ -694,11 +652,9 @@ int lpass_cdc_register_macro(struct device *dev, u16 macro_id,
if (macro_id == TX_MACRO || macro_id == VA_MACRO)
priv->macro_params[macro_id].clk_div_get = ops->clk_div_get;
if (priv->version == LPASS_CDC_VERSION_2_1) {
if (macro_id == VA_MACRO)
priv->macro_params[macro_id].reg_wake_irq =
if (macro_id == VA_MACRO)
priv->macro_params[macro_id].reg_wake_irq =
ops->reg_wake_irq;
}
priv->num_dais += ops->num_dais;
priv->num_macros_registered++;
priv->macros_supported[macro_id] = true;
@@ -1047,15 +1003,9 @@ int lpass_cdc_register_wake_irq(struct snd_soc_component *component,
return -EINVAL;
}
if (priv->version == LPASS_CDC_VERSION_2_1) {
if (priv->macro_params[VA_MACRO].reg_wake_irq)
priv->macro_params[VA_MACRO].reg_wake_irq(
component, ipc_wakeup);
} else {
if (priv->macro_params[TX_MACRO].reg_wake_irq)
priv->macro_params[TX_MACRO].reg_wake_irq(
component, ipc_wakeup);
}
if (priv->macro_params[VA_MACRO].reg_wake_irq)
priv->macro_params[VA_MACRO].reg_wake_irq(
component, ipc_wakeup);
return 0;
}
@@ -1314,10 +1264,6 @@ static int lpass_cdc_probe(struct platform_device *pdev)
__func__, priv->num_macros, MAX_MACRO);
return -EINVAL;
}
priv->va_without_decimation = of_property_read_bool(pdev->dev.of_node,
"qcom,va-without-decimation");
if (priv->va_without_decimation)
lpass_cdc_reg_access[VA_MACRO] = lpass_cdc_va_top_reg_access;
ret = of_property_read_u32(pdev->dev.of_node,
"qcom,lpass-cdc-version", &priv->version);
@@ -1326,12 +1272,6 @@ static int lpass_cdc_probe(struct platform_device *pdev)
__func__);
ret = 0;
}
if (priv->version == LPASS_CDC_VERSION_2_1) {
lpass_cdc_reg_access[TX_MACRO] = lpass_cdc_tx_reg_access_v2;
lpass_cdc_reg_access[VA_MACRO] = lpass_cdc_va_reg_access_v2;
} else if (priv->version == LPASS_CDC_VERSION_2_0) {
lpass_cdc_reg_access[VA_MACRO] = lpass_cdc_va_reg_access_v3;
}
priv->dev = &pdev->dev;
priv->dev_up = true;