Message ID | 20191016120149.5860-1-ben.dooks@codethink.co.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | 3ad00f6a5f76d4030a3c712fabe0cf69920925fc |
Headers | show |
Series | ASoC: wm8958: use <asm/unaligned.h> to simplify code | expand |
On Wed, Oct 16, 2019 at 01:01:49PM +0100, Ben Dooks (Codethink) wrote: > Simplify the memcpy/be32_to_cpu() code by simply using > get_unaligned_be32() throughout and makes the code nicer > to look at. > > This fixes the following warnings from sparse: > > sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 > sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 > sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 > > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > --- Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Thanks, Charles
diff --git a/sound/soc/codecs/wm8958-dsp2.c b/sound/soc/codecs/wm8958-dsp2.c index 18535b326680..ca42445b649d 100644 --- a/sound/soc/codecs/wm8958-dsp2.c +++ b/sound/soc/codecs/wm8958-dsp2.c @@ -25,6 +25,8 @@ #include <linux/mfd/wm8994/pdata.h> #include <linux/mfd/wm8994/gpio.h> +#include <asm/unaligned.h> + #include "wm8994.h" #define WM_FW_BLOCK_INFO 0xff @@ -58,18 +60,15 @@ static int wm8958_dsp2_fw(struct snd_soc_component *component, const char *name, } if (memcmp(fw->data, "WMFW", 4) != 0) { - memcpy(&data32, fw->data, sizeof(data32)); - data32 = be32_to_cpu(data32); + data32 = get_unaligned_be32(fw->data); dev_err(component->dev, "%s: firmware has bad file magic %08x\n", name, data32); goto err; } - memcpy(&data32, fw->data + 4, sizeof(data32)); - len = be32_to_cpu(data32); + len = get_unaligned_be32(fw->data + 4); + data32 = get_unaligned_be32(fw->data + 8); - memcpy(&data32, fw->data + 8, sizeof(data32)); - data32 = be32_to_cpu(data32); if ((data32 >> 24) & 0xff) { dev_err(component->dev, "%s: unsupported firmware version %d\n", name, (data32 >> 24) & 0xff); @@ -87,9 +86,8 @@ static int wm8958_dsp2_fw(struct snd_soc_component *component, const char *name, } if (check) { - memcpy(&data64, fw->data + 24, sizeof(u64)); - dev_info(component->dev, "%s timestamp %llx\n", - name, be64_to_cpu(data64)); + data64 = get_unaligned_be64(fw->data + 24); + dev_info(component->dev, "%s timestamp %llx\n", name, data64); } else { snd_soc_component_write(component, 0x102, 0x2); snd_soc_component_write(component, 0x900, 0x2); @@ -104,8 +102,7 @@ static int wm8958_dsp2_fw(struct snd_soc_component *component, const char *name, goto err; } - memcpy(&data32, data + 4, sizeof(data32)); - block_len = be32_to_cpu(data32); + block_len = get_unaligned_be32(data + 4); if (block_len + 8 > len) { dev_err(component->dev, "%zd byte block longer than file\n", block_len); @@ -116,8 +113,7 @@ static int wm8958_dsp2_fw(struct snd_soc_component *component, const char *name, goto err; } - memcpy(&data32, data, sizeof(data32)); - data32 = be32_to_cpu(data32); + data32 = get_unaligned_be32(data); switch ((data32 >> 24) & 0xff) { case WM_FW_BLOCK_INFO:
Simplify the memcpy/be32_to_cpu() code by simply using get_unaligned_be32() throughout and makes the code nicer to look at. This fixes the following warnings from sparse: sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:62:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:69:15: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:72:18: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:91:17: warning: cast to restricted __be64 sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:108:29: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 sound/soc/codecs/wm8958-dsp2.c:120:26: warning: cast to restricted __be32 Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Mark Brown <broonie@kernel.org> Cc: Jaroslav Kysela <perex@perex.cz> Cc: Takashi Iwai <tiwai@suse.com> Cc: patches@opensource.cirrus.com Cc: alsa-devel@alsa-project.org --- sound/soc/codecs/wm8958-dsp2.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-)