On Mon, Jun 15, 2026 at 04:38:24PM +0700, [email protected] wrote:
> From: bui duc phuc <[email protected]>
>
> Clean up the code using guard() for mutex locks.
> Merely code refactoring, and no behavior change.
>
> Signed-off-by: bui duc phuc <[email protected]>
> ---

Reviewed-by: Frank Li <[email protected]>

>
> Changes in v2:
>  - psc_ac97_cold_reset(): Fix scoped_guard() usage by replacing
>    scoped_guard(mutex_lock, ...) with scoped_guard(mutex, ...).
>
>  sound/soc/fsl/mpc5200_psc_ac97.c | 34 +++++++++++---------------------
>  1 file changed, 12 insertions(+), 22 deletions(-)
>
> diff --git a/sound/soc/fsl/mpc5200_psc_ac97.c 
> b/sound/soc/fsl/mpc5200_psc_ac97.c
> index 8554fb690772..d4d9f5b6bc07 100644
> --- a/sound/soc/fsl/mpc5200_psc_ac97.c
> +++ b/sound/soc/fsl/mpc5200_psc_ac97.c
> @@ -31,14 +31,13 @@ static unsigned short psc_ac97_read(struct snd_ac97 
> *ac97, unsigned short reg)
>       int status;
>       unsigned int val;
>
> -     mutex_lock(&psc_dma->mutex);
> +     guard(mutex)(&psc_dma->mutex);
>
>       /* Wait for command send status zero = ready */
>       status = 
> spin_event_timeout(!(in_be16(&psc_dma->psc_regs->sr_csr.status) &
>                               MPC52xx_PSC_SR_CMDSEND), 100, 0);
>       if (status == 0) {
>               pr_err("timeout on ac97 bus (rdy)\n");
> -             mutex_unlock(&psc_dma->mutex);
>               return -ENODEV;
>       }
>
> @@ -54,19 +53,16 @@ static unsigned short psc_ac97_read(struct snd_ac97 
> *ac97, unsigned short reg)
>       if (status == 0) {
>               pr_err("timeout on ac97 read (val) %x\n",
>                               in_be16(&psc_dma->psc_regs->sr_csr.status));
> -             mutex_unlock(&psc_dma->mutex);
>               return -ENODEV;
>       }
>       /* Get the data */
>       val = in_be32(&psc_dma->psc_regs->ac97_data);
>       if (((val >> 24) & 0x7f) != reg) {
>               pr_err("reg echo error on ac97 read\n");
> -             mutex_unlock(&psc_dma->mutex);
>               return -ENODEV;
>       }
>       val = (val >> 8) & 0xffff;
>
> -     mutex_unlock(&psc_dma->mutex);
>       return (unsigned short) val;
>  }
>
> @@ -75,52 +71,46 @@ static void psc_ac97_write(struct snd_ac97 *ac97,
>  {
>       int status;
>
> -     mutex_lock(&psc_dma->mutex);
> +     guard(mutex)(&psc_dma->mutex);
>
>       /* Wait for command status zero = ready */
>       status = 
> spin_event_timeout(!(in_be16(&psc_dma->psc_regs->sr_csr.status) &
>                               MPC52xx_PSC_SR_CMDSEND), 100, 0);
>       if (status == 0) {
>               pr_err("timeout on ac97 bus (write)\n");
> -             goto out;
> +             return;
>       }
>       /* Write data */
>       out_be32(&psc_dma->psc_regs->ac97_cmd,
>                       ((reg & 0x7f) << 24) | (val << 8));
> -
> - out:
> -     mutex_unlock(&psc_dma->mutex);
>  }
>
>  static void psc_ac97_warm_reset(struct snd_ac97 *ac97)
>  {
>       struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs;
>
> -     mutex_lock(&psc_dma->mutex);
> +     guard(mutex)(&psc_dma->mutex);
>
>       out_be32(&regs->sicr, psc_dma->sicr | MPC52xx_PSC_SICR_AWR);
>       udelay(3);
>       out_be32(&regs->sicr, psc_dma->sicr);
> -
> -     mutex_unlock(&psc_dma->mutex);
>  }
>
>  static void psc_ac97_cold_reset(struct snd_ac97 *ac97)
>  {
>       struct mpc52xx_psc __iomem *regs = psc_dma->psc_regs;
>
> -     mutex_lock(&psc_dma->mutex);
> -     dev_dbg(psc_dma->dev, "cold reset\n");
> +     scoped_guard(mutex, &psc_dma->mutex) {
> +             dev_dbg(psc_dma->dev, "cold reset\n");
>
> -     mpc5200_psc_ac97_gpio_reset(psc_dma->id);
> +             mpc5200_psc_ac97_gpio_reset(psc_dma->id);
>
> -     /* Notify the PSC that a reset has occurred */
> -     out_be32(&regs->sicr, psc_dma->sicr | MPC52xx_PSC_SICR_ACRB);
> +             /* Notify the PSC that a reset has occurred */
> +             out_be32(&regs->sicr, psc_dma->sicr | MPC52xx_PSC_SICR_ACRB);
>
> -     /* Re-enable RX and TX */
> -     out_8(&regs->command, MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE);
> -
> -     mutex_unlock(&psc_dma->mutex);
> +             /* Re-enable RX and TX */
> +             out_8(&regs->command, MPC52xx_PSC_TX_ENABLE | 
> MPC52xx_PSC_RX_ENABLE);
> +     }
>
>       usleep_range(1000, 2000);
>       psc_ac97_warm_reset(ac97);
> --
> 2.43.0
>
>

Reply via email to