Message ID | 20170523001258.81618-1-mka@chromium.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 9a075265c6dc040e2946d21f4f9d082495bd5460 |
Headers | show |
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? Vinod? thanks, Takashi > --- > 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); > -- > 2.13.0.303.g4ebf302169-goog > >
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);
On Wed, 07 Jun 2017 23:53:29 +0200, Matthias Kaehlcke wrote: > > 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 Yes, I know. But I wonder it were a failure to remove before confirming that. thanks, Takashi > > > > --- > > > 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); >
On Wed, Jun 07, 2017 at 11:40:19PM +0200, Takashi Iwai wrote: > 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? > > Vinod? It was supposed to be required in early BYT boards. I do not seem to recall why the call to sst_restore_shim64 was removed from resume routine, it was there when we added it and due to file move git log is useless. Any idea how to get changes to file before the file was moved? > thanks, > > Takashi > > > --- > > 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); > > -- > > 2.13.0.303.g4ebf302169-goog > > > >
On Fri, 09 Jun 2017 05:40:04 +0200, Vinod Koul wrote: > > On Wed, Jun 07, 2017 at 11:40:19PM +0200, Takashi Iwai wrote: > > 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? > > > > Vinod? > > It was supposed to be required in early BYT boards. I do not seem to recall > why the call to sst_restore_shim64 was removed from resume routine, it was > there when we added it and due to file move git log is useless. > > Any idea how to get changes to file before the file was moved? Try to pass --follow option to git log. sst_save_shim64() and sst_restore_shim64() were introduced at b0d94acd634a5cff7fe5fc46131a23997e8d0f60 but not actually used. The call of sst_save_shim64() was added in 336cfbb05edf7b122ea927dad6c746608723eb25 but already without the counter-part for restore. thanks, Takashi
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);
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> --- sound/soc/intel/atom/sst/sst.c | 16 ---------------- 1 file changed, 16 deletions(-)