CC: [email protected] TO: [email protected] TO: Guenter Roeck <[email protected]>
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.15 head: b4852fbf90916fdc2f1e0e282e100f7e0e889d77 commit: b86615571e3d8bd49bcc434a42d9070e2806e35d [1440/2818] CHROMIUM: ASoC: amd: enable renoir audio driver build :::::: branch date: 21 hours ago :::::: commit date: 3 weeks ago config: i386-randconfig-c001-20211210 (https://download.01.org/0day-ci/archive/20211212/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel git fetch --no-tags chrome-os chromeos-5.15 git checkout b86615571e3d8bd49bcc434a42d9070e2806e35d # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. Suppressed 10 warnings (10 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. sound/soc/codecs/tas2764.c:54:23: warning: Value stored to 'tas2764' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct tas2764_priv *tas2764 = snd_soc_component_get_drvdata(component); ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/tas2764.c:54:23: note: Value stored to 'tas2764' during its initialization is never read struct tas2764_priv *tas2764 = snd_soc_component_get_drvdata(component); ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. drivers/gpu/drm/i915/i915_gpu_error.c:1018:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(dst->name, name); ^~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1018:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(dst->name, name); ^~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1282:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(e->comm, task->comm); ^~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1282:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(e->comm, task->comm); ^~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1326:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(c->name, name); ^~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1326:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(c->name, name); ^~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1715:3: warning: Value stored to 'len' is never read [clang-analyzer-deadcode.DeadStores] len += scnprintf(error->error_msg + len, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_gpu_error.c:1715:3: note: Value stored to 'len' is never read len += scnprintf(error->error_msg + len, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. >> sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:55:2: warning: Value stored to >> 'pdm_ctrl' is never read [clang-analyzer-deadcode.DeadStores] pdm_ctrl = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:55:2: note: Value stored to 'pdm_ctrl' is never read pdm_ctrl = 0x00; ^ ~~~~ >> sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:107:2: warning: Value stored to >> 'pdm_dma_enable' is never read [clang-analyzer-deadcode.DeadStores] pdm_dma_enable = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:107:2: note: Value stored to 'pdm_dma_enable' is never read pdm_dma_enable = 0x00; ^ ~~~~ >> sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:123:2: warning: Value stored to >> 'pdm_enable' is never read [clang-analyzer-deadcode.DeadStores] pdm_enable = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:123:2: note: Value stored to 'pdm_enable' is never read pdm_enable = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:124:2: warning: Value stored to 'pdm_dma_enable' is never read [clang-analyzer-deadcode.DeadStores] pdm_dma_enable = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:124:2: note: Value stored to 'pdm_dma_enable' is never read pdm_dma_enable = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:131:3: warning: Value stored to 'pdm_dma_enable' is never read [clang-analyzer-deadcode.DeadStores] pdm_dma_enable = 0x00; ^ ~~~~ sound/soc/amd/renoir/acp3x-rn-pdm-dma.c:131:3: note: Value stored to 'pdm_dma_enable' is never read pdm_dma_enable = 0x00; ^ ~~~~ Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. drivers/gpu/drm/i915/display/i9xx_plane.c:1009:3: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores] offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/i9xx_plane.c:1009:3: note: Value stored to 'offset' is never read offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/i9xx_plane.c:1013:4: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores] offset = intel_de_read(dev_priv, ^ ~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/i9xx_plane.c:1013:4: note: Value stored to 'offset' is never read offset = intel_de_read(dev_priv, ^ ~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/i9xx_plane.c:1016:4: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores] offset = intel_de_read(dev_priv, ^ ~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/i9xx_plane.c:1016:4: note: Value stored to 'offset' is never read offset = intel_de_read(dev_priv, ^ ~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/gpu/drm/i915/display/skl_universal_plane.c:2308:2: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores] offset = intel_de_read(dev_priv, PLANE_OFFSET(pipe, plane_id)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/skl_universal_plane.c:2308:2: note: Value stored to 'offset' is never read offset = intel_de_read(dev_priv, PLANE_OFFSET(pipe, plane_id)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. vim +/pdm_ctrl +55 sound/soc/amd/renoir/acp3x-rn-pdm-dma.c 2dce795e59f452 Vijendar Mukunda 2021-04-15 49 2dce795e59f452 Vijendar Mukunda 2021-04-15 50 static void enable_pdm_clock(void __iomem *acp_base) 2dce795e59f452 Vijendar Mukunda 2021-04-15 51 { 2dce795e59f452 Vijendar Mukunda 2021-04-15 52 u32 pdm_clk_enable, pdm_ctrl; 2dce795e59f452 Vijendar Mukunda 2021-04-15 53 2dce795e59f452 Vijendar Mukunda 2021-04-15 54 pdm_clk_enable = ACP_PDM_CLK_FREQ_MASK; 2dce795e59f452 Vijendar Mukunda 2021-04-15 @55 pdm_ctrl = 0x00; 2dce795e59f452 Vijendar Mukunda 2021-04-15 56 2dce795e59f452 Vijendar Mukunda 2021-04-15 57 rn_writel(pdm_clk_enable, acp_base + ACP_WOV_CLK_CTRL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 58 pdm_ctrl = rn_readl(acp_base + ACP_WOV_MISC_CTRL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 59 pdm_ctrl |= ACP_WOV_MISC_CTRL_MASK; 2dce795e59f452 Vijendar Mukunda 2021-04-15 60 rn_writel(pdm_ctrl, acp_base + ACP_WOV_MISC_CTRL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 61 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 62 2dce795e59f452 Vijendar Mukunda 2021-04-15 63 static void enable_pdm_interrupts(void __iomem *acp_base) 2dce795e59f452 Vijendar Mukunda 2021-04-15 64 { 2dce795e59f452 Vijendar Mukunda 2021-04-15 65 u32 ext_int_ctrl; 2dce795e59f452 Vijendar Mukunda 2021-04-15 66 2dce795e59f452 Vijendar Mukunda 2021-04-15 67 ext_int_ctrl = rn_readl(acp_base + ACP_EXTERNAL_INTR_CNTL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 68 ext_int_ctrl |= PDM_DMA_INTR_MASK; 2dce795e59f452 Vijendar Mukunda 2021-04-15 69 rn_writel(ext_int_ctrl, acp_base + ACP_EXTERNAL_INTR_CNTL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 70 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 71 2dce795e59f452 Vijendar Mukunda 2021-04-15 72 static void disable_pdm_interrupts(void __iomem *acp_base) 2dce795e59f452 Vijendar Mukunda 2021-04-15 73 { 2dce795e59f452 Vijendar Mukunda 2021-04-15 74 u32 ext_int_ctrl; 2dce795e59f452 Vijendar Mukunda 2021-04-15 75 2dce795e59f452 Vijendar Mukunda 2021-04-15 76 ext_int_ctrl = rn_readl(acp_base + ACP_EXTERNAL_INTR_CNTL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 77 ext_int_ctrl &= ~PDM_DMA_INTR_MASK; 2dce795e59f452 Vijendar Mukunda 2021-04-15 78 rn_writel(ext_int_ctrl, acp_base + ACP_EXTERNAL_INTR_CNTL); 2dce795e59f452 Vijendar Mukunda 2021-04-15 79 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 80 2dce795e59f452 Vijendar Mukunda 2021-04-15 81 static bool check_pdm_dma_status(void __iomem *acp_base) 2dce795e59f452 Vijendar Mukunda 2021-04-15 82 { 2dce795e59f452 Vijendar Mukunda 2021-04-15 83 bool pdm_dma_status; 2dce795e59f452 Vijendar Mukunda 2021-04-15 84 u32 pdm_enable, pdm_dma_enable; 2dce795e59f452 Vijendar Mukunda 2021-04-15 85 2dce795e59f452 Vijendar Mukunda 2021-04-15 86 pdm_dma_status = false; 2dce795e59f452 Vijendar Mukunda 2021-04-15 87 pdm_enable = rn_readl(acp_base + ACP_WOV_PDM_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 88 pdm_dma_enable = rn_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 89 if ((pdm_enable & ACP_PDM_ENABLE) && (pdm_dma_enable & 2dce795e59f452 Vijendar Mukunda 2021-04-15 90 ACP_PDM_DMA_EN_STATUS)) 2dce795e59f452 Vijendar Mukunda 2021-04-15 91 pdm_dma_status = true; 2dce795e59f452 Vijendar Mukunda 2021-04-15 92 return pdm_dma_status; 2dce795e59f452 Vijendar Mukunda 2021-04-15 93 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 94 2dce795e59f452 Vijendar Mukunda 2021-04-15 95 static int start_pdm_dma(void __iomem *acp_base) 2dce795e59f452 Vijendar Mukunda 2021-04-15 96 { 2dce795e59f452 Vijendar Mukunda 2021-04-15 97 u32 pdm_enable; 2dce795e59f452 Vijendar Mukunda 2021-04-15 98 u32 pdm_dma_enable; 2dce795e59f452 Vijendar Mukunda 2021-04-15 99 int timeout; 2dce795e59f452 Vijendar Mukunda 2021-04-15 100 2dce795e59f452 Vijendar Mukunda 2021-04-15 101 pdm_enable = 0x01; 2dce795e59f452 Vijendar Mukunda 2021-04-15 102 pdm_dma_enable = 0x01; 2dce795e59f452 Vijendar Mukunda 2021-04-15 103 2dce795e59f452 Vijendar Mukunda 2021-04-15 104 enable_pdm_clock(acp_base); 2dce795e59f452 Vijendar Mukunda 2021-04-15 105 rn_writel(pdm_enable, acp_base + ACP_WOV_PDM_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 106 rn_writel(pdm_dma_enable, acp_base + ACP_WOV_PDM_DMA_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 @107 pdm_dma_enable = 0x00; 2dce795e59f452 Vijendar Mukunda 2021-04-15 108 timeout = 0; 2dce795e59f452 Vijendar Mukunda 2021-04-15 109 while (++timeout < ACP_COUNTER) { 2dce795e59f452 Vijendar Mukunda 2021-04-15 110 pdm_dma_enable = rn_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 111 if ((pdm_dma_enable & 0x02) == ACP_PDM_DMA_EN_STATUS) 2dce795e59f452 Vijendar Mukunda 2021-04-15 112 return 0; 2dce795e59f452 Vijendar Mukunda 2021-04-15 113 udelay(DELAY_US); 2dce795e59f452 Vijendar Mukunda 2021-04-15 114 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 115 return -ETIMEDOUT; 2dce795e59f452 Vijendar Mukunda 2021-04-15 116 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 117 2dce795e59f452 Vijendar Mukunda 2021-04-15 118 static int stop_pdm_dma(void __iomem *acp_base) 2dce795e59f452 Vijendar Mukunda 2021-04-15 119 { 2dce795e59f452 Vijendar Mukunda 2021-04-15 120 u32 pdm_enable, pdm_dma_enable; 2dce795e59f452 Vijendar Mukunda 2021-04-15 121 int timeout; 2dce795e59f452 Vijendar Mukunda 2021-04-15 122 2dce795e59f452 Vijendar Mukunda 2021-04-15 @123 pdm_enable = 0x00; 2dce795e59f452 Vijendar Mukunda 2021-04-15 124 pdm_dma_enable = 0x00; 2dce795e59f452 Vijendar Mukunda 2021-04-15 125 2dce795e59f452 Vijendar Mukunda 2021-04-15 126 pdm_enable = rn_readl(acp_base + ACP_WOV_PDM_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 127 pdm_dma_enable = rn_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 128 if (pdm_dma_enable & 0x01) { 2dce795e59f452 Vijendar Mukunda 2021-04-15 129 pdm_dma_enable = 0x02; 2dce795e59f452 Vijendar Mukunda 2021-04-15 130 rn_writel(pdm_dma_enable, acp_base + ACP_WOV_PDM_DMA_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 131 pdm_dma_enable = 0x00; 2dce795e59f452 Vijendar Mukunda 2021-04-15 132 timeout = 0; 2dce795e59f452 Vijendar Mukunda 2021-04-15 133 while (++timeout < ACP_COUNTER) { 2dce795e59f452 Vijendar Mukunda 2021-04-15 134 pdm_dma_enable = rn_readl(acp_base + 2dce795e59f452 Vijendar Mukunda 2021-04-15 135 ACP_WOV_PDM_DMA_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 136 if ((pdm_dma_enable & 0x02) == 0x00) 2dce795e59f452 Vijendar Mukunda 2021-04-15 137 break; 2dce795e59f452 Vijendar Mukunda 2021-04-15 138 udelay(DELAY_US); 2dce795e59f452 Vijendar Mukunda 2021-04-15 139 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 140 if (timeout == ACP_COUNTER) 2dce795e59f452 Vijendar Mukunda 2021-04-15 141 return -ETIMEDOUT; 2dce795e59f452 Vijendar Mukunda 2021-04-15 142 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 143 if (pdm_enable == ACP_PDM_ENABLE) { 2dce795e59f452 Vijendar Mukunda 2021-04-15 144 pdm_enable = ACP_PDM_DISABLE; 2dce795e59f452 Vijendar Mukunda 2021-04-15 145 rn_writel(pdm_enable, acp_base + ACP_WOV_PDM_ENABLE); 2dce795e59f452 Vijendar Mukunda 2021-04-15 146 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 147 rn_writel(0x01, acp_base + ACP_WOV_PDM_FIFO_FLUSH); 2dce795e59f452 Vijendar Mukunda 2021-04-15 148 return 0; 2dce795e59f452 Vijendar Mukunda 2021-04-15 149 } 2dce795e59f452 Vijendar Mukunda 2021-04-15 150 :::::: The code at line 55 was first introduced by commit :::::: 2dce795e59f452c6e526029669aa2c269bb99dfc CHROMIUM: ASoC: amd: acp driver changes to support I2S and dmic :::::: TO: Vijendar Mukunda <[email protected]> :::::: CC: Guenter Roeck <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
