@@ -219,15 +219,21 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream,
219219 SP_PB_FIFO_ADDR_OFFSET ;
220220 reg_fifo_addr = ACP_I2S_TX_FIFOADDR (chip );
221221 reg_fifo_size = ACP_I2S_TX_FIFOSIZE (chip );
222- phy_addr = I2S_SP_TX_MEM_WINDOW_START + stream -> reg_offset ;
222+ if (chip -> acp_rev >= ACP70_PCI_ID )
223+ phy_addr = ACP7x_I2S_SP_TX_MEM_WINDOW_START ;
224+ else
225+ phy_addr = I2S_SP_TX_MEM_WINDOW_START + stream -> reg_offset ;
223226 writel (phy_addr , chip -> base + ACP_I2S_TX_RINGBUFADDR (chip ));
224227 } else {
225228 reg_dma_size = ACP_I2S_RX_DMA_SIZE (chip );
226229 acp_fifo_addr = rsrc -> sram_pte_offset +
227230 SP_CAPT_FIFO_ADDR_OFFSET ;
228231 reg_fifo_addr = ACP_I2S_RX_FIFOADDR (chip );
229232 reg_fifo_size = ACP_I2S_RX_FIFOSIZE (chip );
230- phy_addr = I2S_SP_RX_MEM_WINDOW_START + stream -> reg_offset ;
233+ if (chip -> acp_rev >= ACP70_PCI_ID )
234+ phy_addr = ACP7x_I2S_SP_RX_MEM_WINDOW_START ;
235+ else
236+ phy_addr = I2S_SP_RX_MEM_WINDOW_START + stream -> reg_offset ;
231237 writel (phy_addr , chip -> base + ACP_I2S_RX_RINGBUFADDR (chip ));
232238 }
233239 break ;
@@ -238,15 +244,21 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream,
238244 BT_PB_FIFO_ADDR_OFFSET ;
239245 reg_fifo_addr = ACP_BT_TX_FIFOADDR (chip );
240246 reg_fifo_size = ACP_BT_TX_FIFOSIZE (chip );
241- phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream -> reg_offset ;
247+ if (chip -> acp_rev >= ACP70_PCI_ID )
248+ phy_addr = ACP7x_I2S_BT_TX_MEM_WINDOW_START ;
249+ else
250+ phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream -> reg_offset ;
242251 writel (phy_addr , chip -> base + ACP_BT_TX_RINGBUFADDR (chip ));
243252 } else {
244253 reg_dma_size = ACP_BT_RX_DMA_SIZE (chip );
245254 acp_fifo_addr = rsrc -> sram_pte_offset +
246255 BT_CAPT_FIFO_ADDR_OFFSET ;
247256 reg_fifo_addr = ACP_BT_RX_FIFOADDR (chip );
248257 reg_fifo_size = ACP_BT_RX_FIFOSIZE (chip );
249- phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream -> reg_offset ;
258+ if (chip -> acp_rev >= ACP70_PCI_ID )
259+ phy_addr = ACP7x_I2S_BT_RX_MEM_WINDOW_START ;
260+ else
261+ phy_addr = I2S_BT_RX_MEM_WINDOW_START + stream -> reg_offset ;
250262 writel (phy_addr , chip -> base + ACP_BT_RX_RINGBUFADDR (chip ));
251263 }
252264 break ;
@@ -257,15 +269,21 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream,
257269 HS_PB_FIFO_ADDR_OFFSET ;
258270 reg_fifo_addr = ACP_HS_TX_FIFOADDR ;
259271 reg_fifo_size = ACP_HS_TX_FIFOSIZE ;
260- phy_addr = I2S_HS_TX_MEM_WINDOW_START + stream -> reg_offset ;
272+ if (chip -> acp_rev >= ACP70_PCI_ID )
273+ phy_addr = ACP7x_I2S_HS_TX_MEM_WINDOW_START ;
274+ else
275+ phy_addr = I2S_HS_TX_MEM_WINDOW_START + stream -> reg_offset ;
261276 writel (phy_addr , chip -> base + ACP_HS_TX_RINGBUFADDR );
262277 } else {
263278 reg_dma_size = ACP_HS_RX_DMA_SIZE ;
264279 acp_fifo_addr = rsrc -> sram_pte_offset +
265280 HS_CAPT_FIFO_ADDR_OFFSET ;
266281 reg_fifo_addr = ACP_HS_RX_FIFOADDR ;
267282 reg_fifo_size = ACP_HS_RX_FIFOSIZE ;
268- phy_addr = I2S_HS_RX_MEM_WINDOW_START + stream -> reg_offset ;
283+ if (chip -> acp_rev >= ACP70_PCI_ID )
284+ phy_addr = ACP7x_I2S_HS_RX_MEM_WINDOW_START ;
285+ else
286+ phy_addr = I2S_HS_RX_MEM_WINDOW_START + stream -> reg_offset ;
269287 writel (phy_addr , chip -> base + ACP_HS_RX_RINGBUFADDR );
270288 }
271289 break ;
0 commit comments