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: Andrew Ford <aford@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
19febab6da
commit
fb13f19d10
1 changed files with 6 additions and 2 deletions
|
@ -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,
|
||||||
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)
|
||||||
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)
|
||||||
if (!ctl->enabled)
|
if (!ctl->enabled)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
buf->host_buf_mem_type = ctl->alg_region.type;
|
||||||
return ctl;
|
return ctl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue