You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2021/11/22 09:38:23 UTC

[incubator-nuttx] 03/07: drivers: audio: Only start amp for HS in cxd56

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 3828dd2b1190b2a2d60bf9071915160c7e4c2648
Author: Tobias Johansson <to...@sony.com>
AuthorDate: Wed Nov 17 13:38:28 2021 +0100

    drivers: audio: Only start amp for HS in cxd56
    
    Only enable the amplifier during playback to avoid clicks.
    
    Signed-off-by: Tobias Johansson <to...@sony.com>
---
 drivers/audio/cxd56.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/audio/cxd56.c b/drivers/audio/cxd56.c
index 753ff3c..7cb9bb3 100644
--- a/drivers/audio/cxd56.c
+++ b/drivers/audio/cxd56.c
@@ -3267,11 +3267,14 @@ static int cxd56_start_dma(FAR struct cxd56_dev_s *dev)
 
           if (dev->state != CXD56_DEV_STATE_STARTED)
             {
-              /* Turn on amplifier */
+              if (dev->dma_handle == CXD56_AUDIO_DMA_I2S0_DOWN)
+                {
+                  /* Turn on amplifier */
 
-              spin_unlock_irqrestore(&dev->lock, flags);
-              board_external_amp_mute_control(false);
-              flags = spin_lock_irqsave(&dev->lock);
+                  spin_unlock_irqrestore(&dev->lock, flags);
+                  board_external_amp_mute_control(false);
+                  flags = spin_lock_irqsave(&dev->lock);
+                }
 
               /* Mask interrupts */