mirror of https://github.com/thesofproject/sof.git
drivers: amd: enable acp SRAM
Configure ACP sram access. Signed-off-by: Kalva, DineshKumar <dineshkumar.kalva@amd.com>
This commit is contained in:
parent
c91326bda2
commit
a992de9a05
|
@ -109,7 +109,7 @@ static void dma_reconfig(struct dma_chan_data *channel, uint32_t bytes)
|
|||
psrc_dscr[strt_idx].src_addr = src;
|
||||
dest = (dest & ACP_DRAM_ADDRESS_MASK);
|
||||
/* Known Data hack */
|
||||
psrc_dscr[strt_idx].dest_addr = (dest | 0x01000000);
|
||||
psrc_dscr[strt_idx].dest_addr = (dest | ACP_SRAM);
|
||||
psrc_dscr[strt_idx].trns_cnt.bits.trns_cnt = bytes;
|
||||
/* Configure a single descrption */
|
||||
dma_config_descriptor(strt_idx, 1, psrc_dscr, pdest_dscr);
|
||||
|
@ -121,11 +121,11 @@ static void dma_reconfig(struct dma_chan_data *channel, uint32_t bytes)
|
|||
tail = dma_cfg->sys_buff_size - dma_cfg->rd_size;
|
||||
head = bytes - tail;
|
||||
psrc_dscr[strt_idx].trns_cnt.bits.trns_cnt = tail;
|
||||
psrc_dscr[strt_idx+1].src_addr = ACP_SYST_MEM_WINDOW + dma_cfg->phy_off;
|
||||
psrc_dscr[strt_idx + 1].src_addr = ACP_SYST_MEM_WINDOW + dma_cfg->phy_off;
|
||||
dest1 = dest+tail;
|
||||
dest1 = (dest1 & ACP_DRAM_ADDRESS_MASK);
|
||||
psrc_dscr[strt_idx+1].dest_addr = (dest1 | 0x01000000);
|
||||
psrc_dscr[strt_idx+1].trns_cnt.bits.trns_cnt = head;
|
||||
psrc_dscr[strt_idx + 1].dest_addr = (dest1 | ACP_SRAM);
|
||||
psrc_dscr[strt_idx + 1].trns_cnt.bits.trns_cnt = head;
|
||||
dma_config_descriptor(strt_idx, 2, psrc_dscr, pdest_dscr);
|
||||
dma_chan_reg_write(channel, ACP_DMA_DSCR_CNT_0, 2);
|
||||
dma_cfg->rd_size = 0;
|
||||
|
@ -141,7 +141,7 @@ static void dma_reconfig(struct dma_chan_data *channel, uint32_t bytes)
|
|||
src = dma_cfg->rd_ptr;
|
||||
dest = dma_cfg->wr_ptr;
|
||||
src = (src & ACP_DRAM_ADDRESS_MASK);
|
||||
psrc_dscr[strt_idx].src_addr = (src | 0x01000000);
|
||||
psrc_dscr[strt_idx].src_addr = (src | ACP_SRAM);
|
||||
psrc_dscr[strt_idx].dest_addr = dest;
|
||||
psrc_dscr[strt_idx].trns_cnt.bits.trns_cnt = bytes;
|
||||
/* Configure a single descrption */
|
||||
|
@ -159,7 +159,7 @@ static void dma_reconfig(struct dma_chan_data *channel, uint32_t bytes)
|
|||
psrc_dscr[strt_idx+1].dest_addr = ACP_SYST_MEM_WINDOW + dma_cfg->phy_off;
|
||||
psrc_dscr[strt_idx+1].trns_cnt.bits.trns_cnt = head;
|
||||
src1 = (src1 & ACP_DRAM_ADDRESS_MASK);
|
||||
psrc_dscr[strt_idx+1].src_addr = (src1 | 0x01000000);
|
||||
psrc_dscr[strt_idx+1].src_addr = (src1 | ACP_SRAM);
|
||||
dma_config_descriptor(strt_idx, 2, psrc_dscr, pdest_dscr);
|
||||
dma_chan_reg_write(channel, ACP_DMA_DSCR_CNT_0, 2);
|
||||
dma_cfg->wr_size = 0;
|
||||
|
@ -424,7 +424,7 @@ static int dma_setup(struct dma_chan_data *channel,
|
|||
sgelems->elems[dscr].src + ACP_SYST_MEM_WINDOW;
|
||||
dest = sgelems->elems[dscr].dest;
|
||||
dest = (dest & ACP_DRAM_ADDRESS_MASK);
|
||||
dma_config_dscr[dscr_strt_idx + dscr].dest_addr = (dest | 0x01000000);
|
||||
dma_config_dscr[dscr_strt_idx + dscr].dest_addr = (dest | ACP_SRAM);
|
||||
dma_config_dscr[dscr_strt_idx + dscr].trns_cnt.u32All = 0;
|
||||
dma_config_dscr[dscr_strt_idx + dscr].trns_cnt.bits.trns_cnt =
|
||||
sgelems->elems[dscr].size;
|
||||
|
@ -438,7 +438,7 @@ static int dma_setup(struct dma_chan_data *channel,
|
|||
src = sgelems->elems[dscr].src;
|
||||
src = (src & ACP_DRAM_ADDRESS_MASK);
|
||||
dma_config_dscr[dscr_strt_idx + dscr].src_addr =
|
||||
(src | 0x01000000);/*rembrandt-arch*/
|
||||
(src | ACP_SRAM);/*rembrandt-arch*/
|
||||
dma_config_dscr[dscr_strt_idx + dscr].trns_cnt.u32All = 0;
|
||||
dma_config_dscr[dscr_strt_idx + dscr].trns_cnt.bits.trns_cnt =
|
||||
sgelems->elems[dscr].size;
|
||||
|
@ -464,14 +464,14 @@ static int dma_setup(struct dma_chan_data *channel,
|
|||
/* Playback */
|
||||
dma_config_dscr[dscr_strt_idx].dest_addr =
|
||||
(dma_config_dscr[dscr_strt_idx].dest_addr & 0x0FFFFFFF);
|
||||
dma_cfg->base = dma_config_dscr[dscr_strt_idx].dest_addr | 0x01000000;
|
||||
dma_cfg->base = dma_config_dscr[dscr_strt_idx].dest_addr | ACP_SRAM;
|
||||
dma_cfg->wr_size = 0;
|
||||
dma_cfg->rd_size = dma_cfg->size;
|
||||
} else {
|
||||
/* Capture */
|
||||
dma_config_dscr[dscr_strt_idx].src_addr =
|
||||
(dma_config_dscr[dscr_strt_idx].src_addr & 0x0FFFFFFF);
|
||||
dma_cfg->base = dma_config_dscr[dscr_strt_idx].src_addr | 0x01000000;
|
||||
dma_cfg->base = dma_config_dscr[dscr_strt_idx].src_addr | ACP_SRAM;
|
||||
dma_cfg->wr_size = dma_cfg->size;
|
||||
dma_cfg->rd_size = 0;
|
||||
}
|
||||
|
|
|
@ -224,7 +224,7 @@ static int acp_dmic_dma_set_config(struct dma_chan_data *channel,
|
|||
case DMA_DIR_MEM_TO_DEV:
|
||||
config->elem_array.elems[0].dest =
|
||||
(config->elem_array.elems[0].dest & ACP_DRAM_ADDRESS_MASK);
|
||||
ring_buff_addr = (config->elem_array.elems[0].dest | 0x01000000);
|
||||
ring_buff_addr = (config->elem_array.elems[0].dest | ACP_SRAM);
|
||||
/* Load Ring buffer address */
|
||||
io_reg_write(PU_REGISTER_BASE +
|
||||
ACP_WOV_RX_RINGBUFADDR, ring_buff_addr);
|
||||
|
|
|
@ -224,7 +224,7 @@ static int acp_dai_hs_dma_set_config(struct dma_chan_data *channel,
|
|||
|
||||
/* Transmit RINGBUFFER Address and size*/
|
||||
config->elem_array.elems[0].src = (config->elem_array.elems[0].src & ACP_DRAM_ADDRESS_MASK);
|
||||
hs_buff_addr = (config->elem_array.elems[0].src | 0x01000000);
|
||||
hs_buff_addr = (config->elem_array.elems[0].src | ACP_SRAM);
|
||||
io_reg_write((PU_REGISTER_BASE + ACP_P1_HS_TX_RINGBUFADDR), hs_buff_addr);
|
||||
io_reg_write((PU_REGISTER_BASE + ACP_P1_HS_TX_RINGBUFSIZE), hs_buff_size_playback);
|
||||
|
||||
|
@ -248,7 +248,7 @@ static int acp_dai_hs_dma_set_config(struct dma_chan_data *channel,
|
|||
/* Receive RINGBUFFER Address and size*/
|
||||
config->elem_array.elems[0].dest =
|
||||
(config->elem_array.elems[0].dest & ACP_DRAM_ADDRESS_MASK);
|
||||
hs_buff_addr = (config->elem_array.elems[0].dest | 0x01000000);
|
||||
hs_buff_addr = (config->elem_array.elems[0].dest | ACP_SRAM);
|
||||
io_reg_write((PU_REGISTER_BASE + ACP_P1_HS_RX_RINGBUFADDR), hs_buff_addr);
|
||||
io_reg_write((PU_REGISTER_BASE + ACP_P1_HS_RX_RINGBUFSIZE), hs_buff_size_capture);
|
||||
|
||||
|
|
Loading…
Reference in New Issue