brcm2708: update to latest patches from RPi foundation
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0393-staging-bcm2835-audio-Use-standard-error-print-helpe.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Use-standard-error-print-helpe.patch b/target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Use-standard-error-print-helpe.patch
new file mode 100644 (file)
index 0000000..63cd0b0
--- /dev/null
@@ -0,0 +1,237 @@
+From ec788d7c115d3ec59b39b6aac17d57ad86b7fbfe Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 4 Sep 2018 17:58:51 +0200
+Subject: [PATCH] staging: bcm2835-audio: Use standard error print
+ helpers
+
+commit b7584b64168208ebc14160770c0966b8b12fc16b upstream.
+
+For making the whole code more consistent, replace the home-made debug
+print macros with the standard dev_err() & co.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ .../vc04_services/bcm2835-audio/bcm2835-pcm.c |  4 +-
+ .../bcm2835-audio/bcm2835-vchiq.c             | 52 ++++++++-----------
+ .../vc04_services/bcm2835-audio/bcm2835.c     |  2 +-
+ .../vc04_services/bcm2835-audio/bcm2835.h     | 43 +--------------
+ 4 files changed, 27 insertions(+), 74 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
+@@ -101,8 +101,8 @@ static int snd_bcm2835_playback_open_gen
+               goto out;
+       }
+       if (idx >= MAX_SUBSTREAMS) {
+-              audio_error
+-                      ("substream(%d) device doesn't exist max(%d) substreams allowed\n",
++              dev_err(chip->dev,
++                      "substream(%d) device doesn't exist max(%d) substreams allowed\n",
+                       idx, MAX_SUBSTREAMS);
+               err = -ENODEV;
+               goto out;
+--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+@@ -26,20 +26,8 @@
+ /* ---- Private Constants and Types ------------------------------------------ */
+-/* Logging macros (for remapping to other logging mechanisms, i.e., printf) */
+-#ifdef AUDIO_DEBUG_ENABLE
+-#define LOG_ERR(fmt, arg...)   pr_err("%s:%d " fmt, __func__, __LINE__, ##arg)
+-#define LOG_WARN(fmt, arg...)  pr_info("%s:%d " fmt, __func__, __LINE__, ##arg)
+-#define LOG_INFO(fmt, arg...)  pr_info("%s:%d " fmt, __func__, __LINE__, ##arg)
+-#define LOG_DBG(fmt, arg...)   pr_info("%s:%d " fmt, __func__, __LINE__, ##arg)
+-#else
+-#define LOG_ERR(fmt, arg...)   pr_err("%s:%d " fmt, __func__, __LINE__, ##arg)
+-#define LOG_WARN(fmt, arg...)  no_printk(fmt, ##arg)
+-#define LOG_INFO(fmt, arg...)  no_printk(fmt, ##arg)
+-#define LOG_DBG(fmt, arg...)   no_printk(fmt, ##arg)
+-#endif
+-
+ struct bcm2835_audio_instance {
++      struct device *dev;
+       VCHI_SERVICE_HANDLE_T vchi_handle;
+       struct completion msg_avail_comp;
+       struct mutex vchi_mutex;
+@@ -76,7 +64,8 @@ static int bcm2835_audio_send_msg_locked
+       status = vchi_queue_kernel_message(instance->vchi_handle,
+                                          m, sizeof(*m));
+       if (status) {
+-              LOG_ERR("vchi message queue failed: %d, msg=%d\n",
++              dev_err(instance->dev,
++                      "vchi message queue failed: %d, msg=%d\n",
+                       status, m->type);
+               return -EIO;
+       }
+@@ -84,10 +73,12 @@ static int bcm2835_audio_send_msg_locked
+       if (wait) {
+               if (!wait_for_completion_timeout(&instance->msg_avail_comp,
+                                                msecs_to_jiffies(10 * 1000))) {
+-                      LOG_ERR("vchi message timeout, msg=%d\n", m->type);
++                      dev_err(instance->dev,
++                              "vchi message timeout, msg=%d\n", m->type);
+                       return -ETIMEDOUT;
+               } else if (instance->result) {
+-                      LOG_ERR("vchi message response error:%d, msg=%d\n",
++                      dev_err(instance->dev,
++                              "vchi message response error:%d, msg=%d\n",
+                               instance->result, m->type);
+                       return -EIO;
+               }
+@@ -140,12 +131,12 @@ static void audio_vchi_callback(void *pa
+       } else if (m.type == VC_AUDIO_MSG_TYPE_COMPLETE) {
+               if (m.u.complete.cookie1 != BCM2835_AUDIO_WRITE_COOKIE1 ||
+                   m.u.complete.cookie2 != BCM2835_AUDIO_WRITE_COOKIE2)
+-                      LOG_ERR("invalid cookie\n");
++                      dev_err(instance->dev, "invalid cookie\n");
+               else
+                       bcm2835_playback_fifo(instance->alsa_stream,
+                                             m.u.complete.count);
+       } else {
+-              LOG_ERR("unexpected callback type=%d\n", m.type);
++              dev_err(instance->dev, "unexpected callback type=%d\n", m.type);
+       }
+ }
+@@ -173,8 +164,9 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_
+                                  &instance->vchi_handle);
+       if (status) {
+-              LOG_ERR("%s: failed to open VCHI service connection (status=%d)\n",
+-                      __func__, status);
++              dev_err(instance->dev,
++                      "failed to open VCHI service connection (status=%d)\n",
++                      status);
+               kfree(instance);
+               return -EPERM;
+       }
+@@ -195,30 +187,30 @@ static void vc_vchi_audio_deinit(struct
+       /* Close all VCHI service connections */
+       status = vchi_service_close(instance->vchi_handle);
+       if (status) {
+-              LOG_DBG("%s: failed to close VCHI service connection (status=%d)\n",
+-                      __func__, status);
++              dev_err(instance->dev,
++                      "failed to close VCHI service connection (status=%d)\n",
++                      status);
+       }
+       mutex_unlock(&instance->vchi_mutex);
+ }
+-int bcm2835_new_vchi_ctx(struct bcm2835_vchi_ctx *vchi_ctx)
++int bcm2835_new_vchi_ctx(struct device *dev, struct bcm2835_vchi_ctx *vchi_ctx)
+ {
+       int ret;
+       /* Initialize and create a VCHI connection */
+       ret = vchi_initialise(&vchi_ctx->vchi_instance);
+       if (ret) {
+-              LOG_ERR("%s: failed to initialise VCHI instance (ret=%d)\n",
+-                      __func__, ret);
+-
++              dev_err(dev, "failed to initialise VCHI instance (ret=%d)\n",
++                      ret);
+               return -EIO;
+       }
+       ret = vchi_connect(NULL, 0, vchi_ctx->vchi_instance);
+       if (ret) {
+-              LOG_ERR("%s: failed to connect VCHI instance (ret=%d)\n",
+-                      __func__, ret);
++              dev_dbg(dev, "failed to connect VCHI instance (ret=%d)\n",
++                      ret);
+               kfree(vchi_ctx->vchi_instance);
+               vchi_ctx->vchi_instance = NULL;
+@@ -248,6 +240,7 @@ int bcm2835_audio_open(struct bcm2835_al
+       if (!instance)
+               return -ENOMEM;
+       mutex_init(&instance->vchi_mutex);
++      instance->dev = alsa_stream->chip->dev;
+       instance->alsa_stream = alsa_stream;
+       alsa_stream->instance = instance;
+@@ -394,7 +387,8 @@ int bcm2835_audio_write(struct bcm2835_a
+       }
+       if (status) {
+-              LOG_ERR("failed on %d bytes transfer (status=%d)\n",
++              dev_err(instance->dev,
++                      "failed on %d bytes transfer (status=%d)\n",
+                       size, status);
+               err = -EIO;
+       }
+--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c
++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c
+@@ -73,7 +73,7 @@ static int bcm2835_devm_add_vchi_ctx(str
+       memset(vchi_ctx, 0, sizeof(*vchi_ctx));
+-      ret = bcm2835_new_vchi_ctx(vchi_ctx);
++      ret = bcm2835_new_vchi_ctx(dev, vchi_ctx);
+       if (ret) {
+               devres_free(vchi_ctx);
+               return ret;
+--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h
++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h
+@@ -17,47 +17,6 @@
+ #include "interface/vchi/vchi.h"
+-/*
+- * #define AUDIO_DEBUG_ENABLE
+- * #define AUDIO_VERBOSE_DEBUG_ENABLE
+- */
+-
+-/* Debug macros */
+-
+-#ifdef AUDIO_DEBUG_ENABLE
+-#ifdef AUDIO_VERBOSE_DEBUG_ENABLE
+-
+-#define audio_debug(fmt, arg...) \
+-      pr_info("%s:%d " fmt, __func__, __LINE__, ##arg)
+-
+-#define audio_info(fmt, arg...) \
+-      pr_info("%s:%d " fmt, __func__, __LINE__, ##arg)
+-
+-#else
+-
+-#define audio_debug(fmt, arg...)
+-
+-#define audio_info(fmt, arg...)
+-
+-#endif /* AUDIO_VERBOSE_DEBUG_ENABLE */
+-
+-#else
+-
+-#define audio_debug(fmt, arg...)
+-
+-#define audio_info(fmt, arg...)
+-
+-#endif /* AUDIO_DEBUG_ENABLE */
+-
+-#define audio_error(fmt, arg...) \
+-      pr_err("%s:%d " fmt, __func__, __LINE__, ##arg)
+-
+-#define audio_warning(fmt, arg...) \
+-      pr_warn("%s:%d " fmt, __func__, __LINE__, ##arg)
+-
+-#define audio_alert(fmt, arg...) \
+-      pr_alert("%s:%d " fmt, __func__, __LINE__, ##arg)
+-
+ #define MAX_SUBSTREAMS   (8)
+ #define AVAIL_SUBSTREAMS_MASK  (0xff)
+@@ -141,7 +100,7 @@ int snd_bcm2835_new_simple_pcm(struct bc
+ int snd_bcm2835_new_hdmi_ctl(struct bcm2835_chip *chip);
+ int snd_bcm2835_new_headphones_ctl(struct bcm2835_chip *chip);
+-int bcm2835_new_vchi_ctx(struct bcm2835_vchi_ctx *vchi_ctx);
++int bcm2835_new_vchi_ctx(struct device *dev, struct bcm2835_vchi_ctx *vchi_ctx);
+ void bcm2835_free_vchi_ctx(struct bcm2835_vchi_ctx *vchi_ctx);
+ int bcm2835_audio_open(struct bcm2835_alsa_stream *alsa_stream);