Commit 98cf2c03 authored by Douglas Anderson's avatar Douglas Anderson Committed by Mark Brown

ASoC: Intel: sst: Delete sst_shim_regs64; saved regs are never used

In commit 9a075265 ("ASoC: Intel: sst: Remove unused function
sst_restore_shim64()"), we deleted the sst_restore_shim64() since it
was never used.  ...but a quick look at the code shows that we should
also be able to remove the sst_save_shim64() function and the
structure members we were storing data in.

Once we delete sst_save_shim64() there are no longer any users of the
'sst_shim_regs64' structure.  That means we can delete it completely
and also avoid allocating memory for it.  This saves a whopping 136
bytes of devm allocated memory.  We also get the nice benefit of
avoiding an error path in the init code.

Note that the saving code that we're removing (and the comments
talking about how important it is to do the save) has been around
since commit 336cfbb0 ("ASoC: Intel: mrfld- add ACPI module").
Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 0809d987
...@@ -382,21 +382,6 @@ void sst_context_cleanup(struct intel_sst_drv *ctx) ...@@ -382,21 +382,6 @@ void sst_context_cleanup(struct intel_sst_drv *ctx)
} }
EXPORT_SYMBOL_GPL(sst_context_cleanup); EXPORT_SYMBOL_GPL(sst_context_cleanup);
static inline void sst_save_shim64(struct intel_sst_drv *ctx,
void __iomem *shim,
struct sst_shim_regs64 *shim_regs)
{
unsigned long irq_flags;
spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
shim_regs->imrx = sst_shim_read64(shim, SST_IMRX);
shim_regs->csr = sst_shim_read64(shim, SST_CSR);
spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
}
void sst_configure_runtime_pm(struct intel_sst_drv *ctx) void sst_configure_runtime_pm(struct intel_sst_drv *ctx)
{ {
pm_runtime_set_autosuspend_delay(ctx->dev, SST_SUSPEND_DELAY); pm_runtime_set_autosuspend_delay(ctx->dev, SST_SUSPEND_DELAY);
...@@ -416,8 +401,6 @@ void sst_configure_runtime_pm(struct intel_sst_drv *ctx) ...@@ -416,8 +401,6 @@ void sst_configure_runtime_pm(struct intel_sst_drv *ctx)
pm_runtime_set_active(ctx->dev); pm_runtime_set_active(ctx->dev);
else else
pm_runtime_put_noidle(ctx->dev); pm_runtime_put_noidle(ctx->dev);
sst_save_shim64(ctx, ctx->shim, ctx->shim_regs64);
} }
EXPORT_SYMBOL_GPL(sst_configure_runtime_pm); EXPORT_SYMBOL_GPL(sst_configure_runtime_pm);
...@@ -441,8 +424,6 @@ static int intel_sst_runtime_suspend(struct device *dev) ...@@ -441,8 +424,6 @@ static int intel_sst_runtime_suspend(struct device *dev)
flush_workqueue(ctx->post_msg_wq); flush_workqueue(ctx->post_msg_wq);
ctx->ops->reset(ctx); ctx->ops->reset(ctx);
/* save the shim registers because PMC doesn't save state */
sst_save_shim64(ctx, ctx->shim, ctx->shim_regs64);
return ret; return ret;
} }
......
...@@ -317,26 +317,6 @@ struct sst_ipc_reg { ...@@ -317,26 +317,6 @@ struct sst_ipc_reg {
int ipcd; int ipcd;
}; };
struct sst_shim_regs64 {
u64 csr;
u64 pisr;
u64 pimr;
u64 isrx;
u64 isrd;
u64 imrx;
u64 imrd;
u64 ipcx;
u64 ipcd;
u64 isrsc;
u64 isrlpesc;
u64 imrsc;
u64 imrlpesc;
u64 ipcsc;
u64 ipclpesc;
u64 clkctl;
u64 csr2;
};
struct sst_fw_save { struct sst_fw_save {
void *iram; void *iram;
void *dram; void *dram;
...@@ -356,7 +336,6 @@ struct sst_fw_save { ...@@ -356,7 +336,6 @@ struct sst_fw_save {
* @dram : SST DRAM pointer * @dram : SST DRAM pointer
* @pdata : SST info passed as a part of pci platform data * @pdata : SST info passed as a part of pci platform data
* @shim_phy_add : SST shim phy addr * @shim_phy_add : SST shim phy addr
* @shim_regs64: Struct to save shim registers
* @ipc_dispatch_list : ipc messages dispatched * @ipc_dispatch_list : ipc messages dispatched
* @rx_list : to copy the process_reply/process_msg from DSP * @rx_list : to copy the process_reply/process_msg from DSP
* @ipc_post_msg_wq : wq to post IPC messages context * @ipc_post_msg_wq : wq to post IPC messages context
...@@ -398,7 +377,6 @@ struct intel_sst_drv { ...@@ -398,7 +377,6 @@ struct intel_sst_drv {
unsigned int ddr_end; unsigned int ddr_end;
unsigned int ddr_base; unsigned int ddr_base;
unsigned int mailbox_recv_offset; unsigned int mailbox_recv_offset;
struct sst_shim_regs64 *shim_regs64;
struct list_head block_list; struct list_head block_list;
struct list_head ipc_dispatch_list; struct list_head ipc_dispatch_list;
struct sst_platform_info *pdata; struct sst_platform_info *pdata;
......
...@@ -358,23 +358,9 @@ static int sst_acpi_probe(struct platform_device *pdev) ...@@ -358,23 +358,9 @@ static int sst_acpi_probe(struct platform_device *pdev)
if (ret < 0) if (ret < 0)
return ret; return ret;
/* need to save shim registers in BYT */
ctx->shim_regs64 = devm_kzalloc(ctx->dev, sizeof(*ctx->shim_regs64),
GFP_KERNEL);
if (!ctx->shim_regs64) {
ret = -ENOMEM;
goto do_sst_cleanup;
}
sst_configure_runtime_pm(ctx); sst_configure_runtime_pm(ctx);
platform_set_drvdata(pdev, ctx); platform_set_drvdata(pdev, ctx);
return ret; return ret;
do_sst_cleanup:
sst_context_cleanup(ctx);
platform_set_drvdata(pdev, NULL);
dev_err(ctx->dev, "failed with %d\n", ret);
return ret;
} }
/** /**
......
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