Commit fb13f19d authored by Andrew Ford's avatar Andrew Ford Committed by Mark Brown

ASoC: wm_adsp: Allow compressed buffers in any memory region

Currently, compressed buffers can only be specified in the XM memory
region. There is no reason to have such a restriction with the newer
meta-data based way of specifying the buffers, so remove it.
Signed-off-by: default avatarAndrew Ford <aford@opensource.cirrus.com>
Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 19febab6
...@@ -344,6 +344,7 @@ struct wm_adsp_compr_buf { ...@@ -344,6 +344,7 @@ struct wm_adsp_compr_buf {
u32 irq_count; u32 irq_count;
int read_index; int read_index;
int avail; int avail;
int host_buf_mem_type;
}; };
struct wm_adsp_compr { struct wm_adsp_compr {
...@@ -3219,14 +3220,14 @@ static int wm_adsp_write_data_word(struct wm_adsp *dsp, int mem_type, ...@@ -3219,14 +3220,14 @@ static int wm_adsp_write_data_word(struct wm_adsp *dsp, int mem_type,
static inline int wm_adsp_buffer_read(struct wm_adsp_compr_buf *buf, static inline int wm_adsp_buffer_read(struct wm_adsp_compr_buf *buf,
unsigned int field_offset, u32 *data) unsigned int field_offset, u32 *data)
{ {
return wm_adsp_read_data_word(buf->dsp, WMFW_ADSP2_XM, return wm_adsp_read_data_word(buf->dsp, buf->host_buf_mem_type,
buf->host_buf_ptr + field_offset, data); buf->host_buf_ptr + field_offset, data);
} }
static inline int wm_adsp_buffer_write(struct wm_adsp_compr_buf *buf, static inline int wm_adsp_buffer_write(struct wm_adsp_compr_buf *buf,
unsigned int field_offset, u32 data) unsigned int field_offset, u32 data)
{ {
return wm_adsp_write_data_word(buf->dsp, WMFW_ADSP2_XM, return wm_adsp_write_data_word(buf->dsp, buf->host_buf_mem_type,
buf->host_buf_ptr + field_offset, data); buf->host_buf_ptr + field_offset, data);
} }
...@@ -3264,6 +3265,8 @@ static int wm_adsp_legacy_host_buf_addr(struct wm_adsp_compr_buf *buf) ...@@ -3264,6 +3265,8 @@ static int wm_adsp_legacy_host_buf_addr(struct wm_adsp_compr_buf *buf)
if (!buf->host_buf_ptr) if (!buf->host_buf_ptr)
return -EIO; return -EIO;
buf->host_buf_mem_type = WMFW_ADSP2_XM;
adsp_dbg(dsp, "host_buf_ptr=%x\n", buf->host_buf_ptr); adsp_dbg(dsp, "host_buf_ptr=%x\n", buf->host_buf_ptr);
return 0; return 0;
...@@ -3282,6 +3285,7 @@ wm_adsp_find_host_buffer_ctrl(struct wm_adsp_compr_buf *buf) ...@@ -3282,6 +3285,7 @@ wm_adsp_find_host_buffer_ctrl(struct wm_adsp_compr_buf *buf)
if (!ctl->enabled) if (!ctl->enabled)
continue; continue;
buf->host_buf_mem_type = ctl->alg_region.type;
return ctl; return ctl;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment