ASoC: rt5677: Allow arbitrary block read/write via SPI
Added rt5677_spi_read() and refactored rt5677_spi_write() so that an arbitrary block in the DSP address space can be read/written via SPI. For example, this allows us to load an ELF DSP firmware with sparse sections, and stream audio samples from DSP ring buffer. Signed-off-by: Ben Zhang <benzh@chromium.org> Acked-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
@@ -745,14 +745,14 @@ static int rt5677_set_dsp_vad(struct snd_soc_codec *codec, bool on)
|
||||
ret = request_firmware(&rt5677->fw1, RT5677_FIRMWARE1,
|
||||
codec->dev);
|
||||
if (ret == 0) {
|
||||
rt5677_spi_burst_write(0x50000000, rt5677->fw1);
|
||||
rt5677_spi_write_firmware(0x50000000, rt5677->fw1);
|
||||
release_firmware(rt5677->fw1);
|
||||
}
|
||||
|
||||
ret = request_firmware(&rt5677->fw2, RT5677_FIRMWARE2,
|
||||
codec->dev);
|
||||
if (ret == 0) {
|
||||
rt5677_spi_burst_write(0x60000000, rt5677->fw2);
|
||||
rt5677_spi_write_firmware(0x60000000, rt5677->fw2);
|
||||
release_firmware(rt5677->fw2);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user