Re: [PATCH] ASoC: Intel: sst: Remove unused function sst_restore_shim64()

Matthias Kaehlcke
2017-06-07T21:53:32Z

Hi Takashi,

El Wed, Jun 07, 2017 at 11:40:19PM +0200 Takashi Iwai ha dit:

> On Tue, 23 May 2017 02:12:58 +0200,
> Matthias Kaehlcke wrote:
> >
> > Looks like the function has never been used since it was added by commit
> > b0d94acd634a ("ASoC: Intel: mrfld - add shim save restore"). Removing it
> > fixes the following warning when building with clang:
> >
> > sound/soc/intel/atom/sst/sst.c:360:20: error: unused function
> > 'sst_restore_shim64' [-Werror,-Wunused-function]
> >
> > Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
>
> Hmm, although this patch was already merged, I now think this is
> rather a bug. If the restore is never executed, why the counterpart,
> sst_save_shim64() is required at all at runtime suspend?

Doug Anderson also noticed this and removed the function and struct
sst_shim_regs64:

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?h=for-next&id=98cf2c03b467fa67df58cb52adeb85b425cabcb2

> > ---
> > sound/soc/intel/atom/sst/sst.c | 16 ----------------
> > 1 file changed, 16 deletions(-)
> >
> > diff --git a/sound/soc/intel/atom/sst/sst.c b/sound/soc/intel/atom/sst/sst.c
> > index f9ba71315e33..fb608d3a90c8 100644
> > --- a/sound/soc/intel/atom/sst/sst.c
> > +++ b/sound/soc/intel/atom/sst/sst.c
> > @@ -397,22 +397,6 @@ static inline void sst_save_shim64(struct intel_sst_drv *ctx,
> > spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
> > }
> >
> > -static inline void sst_restore_shim64(struct intel_sst_drv *ctx,
> > - void __iomem *shim,
> > - struct sst_shim_regs64 *shim_regs)
> > -{
> > - unsigned long irq_flags;
> > -
> > - /*
> > - * we only need to restore IMRX for this case, rest will be
> > - * initialize by FW or driver when firmware is loaded
> > - */
> > - spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
> > - sst_shim_write64(shim, SST_IMRX, shim_regs->imrx);
> > - sst_shim_write64(shim, SST_CSR, shim_regs->csr);
> > - spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
> > -}
> > -
> > void sst_configure_runtime_pm(struct intel_sst_drv *ctx)
> > {
> > pm_runtime_set_autosuspend_delay(ctx->dev, SST_SUSPEND_DELAY);