summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/sigmadsp.c
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2014-11-21 18:53:52 +0100
committerMark Brown <broonie@kernel.org>2014-11-21 18:17:50 +0000
commit1fc10044d76e86b71f724988c7cbd8205bb903a8 (patch)
treefc30631aebb95ea9f0f89c85dc1fdeb0315c66ea /sound/soc/codecs/sigmadsp.c
parentdee9cec42fc9cc4635ea2f45939e443210a638f8 (diff)
ASoC: sigmadsp: Fix endianness conversion
Make sure to always convert the firmware data to local endianness before using it. Reported-by: kbuild test robot <fengguang.wu@intel.com> Fixes: a35daac77a03 ("ASoC: sigmadsp: Add support for fw v2") Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/sigmadsp.c')
-rw-r--r--sound/soc/codecs/sigmadsp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/codecs/sigmadsp.c b/sound/soc/codecs/sigmadsp.c
index 55af596935d4..6abefd27b86c 100644
--- a/sound/soc/codecs/sigmadsp.c
+++ b/sound/soc/codecs/sigmadsp.c
@@ -235,7 +235,7 @@ static int sigma_fw_load_control(struct sigmadsp *sigmadsp,
ctrl->addr = le16_to_cpu(ctrl_chunk->addr);
ctrl->num_bytes = num_bytes;
- ctrl->samplerates = chunk->samplerates;
+ ctrl->samplerates = le32_to_cpu(chunk->samplerates);
list_add_tail(&ctrl->head, &sigmadsp->ctrl_list);
@@ -266,7 +266,7 @@ static int sigma_fw_load_data(struct sigmadsp *sigmadsp,
data->addr = le16_to_cpu(data_chunk->addr);
data->length = length;
- data->samplerates = chunk->samplerates;
+ data->samplerates = le32_to_cpu(chunk->samplerates);
memcpy(data->data, data_chunk->data, length);
list_add_tail(&data->head, &sigmadsp->data_list);
@@ -329,7 +329,7 @@ static int sigmadsp_fw_load_v2(struct sigmadsp *sigmadsp,
if (length > fw->size - pos || length < sizeof(*chunk))
return -EINVAL;
- switch (chunk->tag) {
+ switch (le32_to_cpu(chunk->tag)) {
case SIGMA_FW_CHUNK_TYPE_DATA:
ret = sigma_fw_load_data(sigmadsp, chunk, length);
break;