brcm2708: update to latest patches from RPi foundation
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0404-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch b/target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch
new file mode 100644 (file)
index 0000000..e212a94
--- /dev/null
@@ -0,0 +1,105 @@
+From 23b89436030e64196a1bc317901d08edd54fb772 Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+Date: Wed, 17 Oct 2018 21:01:53 +0200
+Subject: [PATCH] staging: bcm2835-audio: use anonymous union in struct
+ vc_audio_msg
+
+commit 9c2eaf7da855d314a369d48b9cbf8ac80717a1d0 upstream.
+
+In this case explicitly naming the union doesn't help overall code
+comprehension and clutters it.
+
+Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ .../bcm2835-audio/bcm2835-vchiq.c             | 30 +++++++++----------
+ .../bcm2835-audio/vc_vchi_audioserv_defs.h    |  2 +-
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+@@ -104,15 +104,15 @@ static void audio_vchi_callback(void *pa
+       status = vchi_msg_dequeue(instance->vchi_handle,
+                                 &m, sizeof(m), &msg_len, VCHI_FLAGS_NONE);
+       if (m.type == VC_AUDIO_MSG_TYPE_RESULT) {
+-              instance->result = m.u.result.success;
++              instance->result = m.result.success;
+               complete(&instance->msg_avail_comp);
+       } else if (m.type == VC_AUDIO_MSG_TYPE_COMPLETE) {
+-              if (m.u.complete.cookie1 != VC_AUDIO_WRITE_COOKIE1 ||
+-                  m.u.complete.cookie2 != VC_AUDIO_WRITE_COOKIE2)
++              if (m.complete.cookie1 != VC_AUDIO_WRITE_COOKIE1 ||
++                  m.complete.cookie2 != VC_AUDIO_WRITE_COOKIE2)
+                       dev_err(instance->dev, "invalid cookie\n");
+               else
+                       bcm2835_playback_fifo(instance->alsa_stream,
+-                                            m.u.complete.count);
++                                            m.complete.count);
+       } else {
+               dev_err(instance->dev, "unexpected callback type=%d\n", m.type);
+       }
+@@ -257,11 +257,11 @@ int bcm2835_audio_set_ctls(struct bcm283
+       struct vc_audio_msg m = {};
+       m.type = VC_AUDIO_MSG_TYPE_CONTROL;
+-      m.u.control.dest = chip->dest;
++      m.control.dest = chip->dest;
+       if (!chip->mute)
+-              m.u.control.volume = CHIP_MIN_VOLUME;
++              m.control.volume = CHIP_MIN_VOLUME;
+       else
+-              m.u.control.volume = alsa2chip(chip->volume);
++              m.control.volume = alsa2chip(chip->volume);
+       return bcm2835_audio_send_msg(alsa_stream->instance, &m, true);
+ }
+@@ -272,9 +272,9 @@ int bcm2835_audio_set_params(struct bcm2
+ {
+       struct vc_audio_msg m = {
+                .type = VC_AUDIO_MSG_TYPE_CONFIG,
+-               .u.config.channels = channels,
+-               .u.config.samplerate = samplerate,
+-               .u.config.bps = bps,
++               .config.channels = channels,
++               .config.samplerate = samplerate,
++               .config.bps = bps,
+       };
+       int err;
+@@ -302,7 +302,7 @@ int bcm2835_audio_drain(struct bcm2835_a
+ {
+       struct vc_audio_msg m = {
+               .type = VC_AUDIO_MSG_TYPE_STOP,
+-              .u.stop.draining = 1,
++              .stop.draining = 1,
+       };
+       return bcm2835_audio_send_msg(alsa_stream->instance, &m, false);
+@@ -330,10 +330,10 @@ int bcm2835_audio_write(struct bcm2835_a
+       struct bcm2835_audio_instance *instance = alsa_stream->instance;
+       struct vc_audio_msg m = {
+               .type = VC_AUDIO_MSG_TYPE_WRITE,
+-              .u.write.count = size,
+-              .u.write.max_packet = instance->max_packet,
+-              .u.write.cookie1 = VC_AUDIO_WRITE_COOKIE1,
+-              .u.write.cookie2 = VC_AUDIO_WRITE_COOKIE2,
++              .write.count = size,
++              .write.max_packet = instance->max_packet,
++              .write.cookie1 = VC_AUDIO_WRITE_COOKIE1,
++              .write.cookie2 = VC_AUDIO_WRITE_COOKIE2,
+       };
+       unsigned int count;
+       int err, status;
+--- a/drivers/staging/vc04_services/bcm2835-audio/vc_vchi_audioserv_defs.h
++++ b/drivers/staging/vc04_services/bcm2835-audio/vc_vchi_audioserv_defs.h
+@@ -93,7 +93,7 @@ struct vc_audio_msg {
+               struct vc_audio_write write;
+               struct vc_audio_result result;
+               struct vc_audio_complete complete;
+-      } u;
++      };
+ };
+ #endif /* _VC_AUDIO_DEFS_H_ */