ALSA: pcm: Use standard printk helpers
authorTakashi Iwai <tiwai@suse.de>
Tue, 4 Feb 2014 17:19:48 +0000 (18:19 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 14 Feb 2014 07:14:15 +0000 (08:14 +0100)
Use dev_err() & co as much as possible.  If not available (no device
assigned at the calling point), use pr_xxx() helpers instead.

For simplicity, introduce new helpers for pcm stream, pcm_err(), etc.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/pcm.h
sound/core/pcm.c
sound/core/pcm_lib.c
sound/core/pcm_native.c
sound/core/pcm_timer.c

index 4883499ab38b07834dc6b4ee3fe085bf93b0efdf..b4d6697085fef71c2d31160c58ed70ff0f350686 100644 (file)
@@ -1141,4 +1141,12 @@ static inline u64 pcm_format_to_bits(snd_pcm_format_t pcm_format)
        return 1ULL << (__force int) pcm_format;
 }
 
+/* printk helpers */
+#define pcm_err(pcm, fmt, args...) \
+       dev_err((pcm)->card->dev, fmt, ##args)
+#define pcm_warn(pcm, fmt, args...) \
+       dev_warn((pcm)->card->dev, fmt, ##args)
+#define pcm_dbg(pcm, fmt, args...) \
+       dev_dbg((pcm)->card->dev, fmt, ##args)
+
 #endif /* __SOUND_PCM_H */
index 091a05c1d5b30506a788cffe704e9b15c346cab4..9defdaef520b4a51e8af1adb8d3a8414f44e8817 100644 (file)
@@ -338,7 +338,8 @@ static void snd_pcm_proc_info_read(struct snd_pcm_substream *substream,
 
        info = kmalloc(sizeof(*info), GFP_KERNEL);
        if (! info) {
-               printk(KERN_DEBUG "snd_pcm_proc_info_read: cannot malloc\n");
+               pcm_dbg(substream->pcm,
+                       "snd_pcm_proc_info_read: cannot malloc\n");
                return;
        }
 
@@ -660,7 +661,7 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)
        if (substream_count > 0 && !pcm->internal) {
                err = snd_pcm_stream_proc_init(pstr);
                if (err < 0) {
-                       snd_printk(KERN_ERR "Error in snd_pcm_stream_proc_init\n");
+                       pcm_err(pcm, "Error in snd_pcm_stream_proc_init\n");
                        return err;
                }
        }
@@ -668,7 +669,7 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)
        for (idx = 0, prev = NULL; idx < substream_count; idx++) {
                substream = kzalloc(sizeof(*substream), GFP_KERNEL);
                if (substream == NULL) {
-                       snd_printk(KERN_ERR "Cannot allocate PCM substream\n");
+                       pcm_err(pcm, "Cannot allocate PCM substream\n");
                        return -ENOMEM;
                }
                substream->pcm = pcm;
@@ -685,7 +686,8 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)
                if (!pcm->internal) {
                        err = snd_pcm_substream_proc_init(substream);
                        if (err < 0) {
-                               snd_printk(KERN_ERR "Error in snd_pcm_stream_proc_init\n");
+                               pcm_err(pcm,
+                                       "Error in snd_pcm_stream_proc_init\n");
                                if (prev == NULL)
                                        pstr->substream = NULL;
                                else
@@ -724,7 +726,7 @@ static int _snd_pcm_new(struct snd_card *card, const char *id, int device,
                *rpcm = NULL;
        pcm = kzalloc(sizeof(*pcm), GFP_KERNEL);
        if (pcm == NULL) {
-               snd_printk(KERN_ERR "Cannot allocate PCM\n");
+               dev_err(card->dev, "Cannot allocate PCM\n");
                return -ENOMEM;
        }
        pcm->card = card;
index a2104671f51d38df6eec99b3e0aa8ac570ea8988..6630a4eb8393ec6cd5e3fb9215d3a31d82000f9c 100644 (file)
@@ -174,7 +174,7 @@ static void xrun(struct snd_pcm_substream *substream)
        if (xrun_debug(substream, XRUN_DEBUG_BASIC)) {
                char name[16];
                snd_pcm_debug_name(substream, name, sizeof(name));
-               snd_printd(KERN_DEBUG "XRUN: %s\n", name);
+               pcm_warn(substream->pcm, "XRUN: %s\n", name);
                dump_stack_on_xrun(substream);
        }
 }
@@ -184,9 +184,7 @@ static void xrun(struct snd_pcm_substream *substream)
        do {                                                            \
                if (xrun_debug(substream, XRUN_DEBUG_BASIC)) {          \
                        xrun_log_show(substream);                       \
-                       if (snd_printd_ratelimit()) {                   \
-                               snd_printd("PCM: " fmt, ##args);        \
-                       }                                               \
+                       pr_err_ratelimited("ALSA: PCM: " fmt, ##args);  \
                        dump_stack_on_xrun(substream);                  \
                }                                                       \
        } while (0)
@@ -253,7 +251,7 @@ static void xrun_log_show(struct snd_pcm_substream *substream)
                entry = &log->entries[idx];
                if (entry->period_size == 0)
                        break;
-               snd_printd("hwptr log: %s: %sj=%lu, pos=%ld/%ld/%ld, "
+               pr_info("hwptr log: %s: %sj=%lu, pos=%ld/%ld/%ld, "
                           "hwptr=%ld/%ld\n",
                           name, entry->in_interrupt ? "[Q] " : "",
                           entry->jiffies,
@@ -342,14 +340,14 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
                return -EPIPE;
        }
        if (pos >= runtime->buffer_size) {
-               if (snd_printd_ratelimit()) {
+               if (printk_ratelimit()) {
                        char name[16];
                        snd_pcm_debug_name(substream, name, sizeof(name));
                        xrun_log_show(substream);
-                       snd_printd(KERN_ERR  "BUG: %s, pos = %ld, "
-                                  "buffer size = %ld, period size = %ld\n",
-                                  name, pos, runtime->buffer_size,
-                                  runtime->period_size);
+                       pcm_err(substream->pcm,
+                               "BUG: %s, pos = %ld, buffer size = %ld, period size = %ld\n",
+                               name, pos, runtime->buffer_size,
+                               runtime->period_size);
                }
                pos = 0;
        }
@@ -394,8 +392,8 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
                        XRUN_DEBUG_PERIODUPDATE : XRUN_DEBUG_HWPTRUPDATE)) {
                char name[16];
                snd_pcm_debug_name(substream, name, sizeof(name));
-               snd_printd("%s_update: %s: pos=%u/%u/%u, "
-                          "hwptr=%ld/%ld/%ld/%ld\n",
+               pcm_dbg(substream->pcm,
+                       "%s_update: %s: pos=%u/%u/%u, hwptr=%ld/%ld/%ld/%ld\n",
                           in_interrupt ? "period" : "hwptr",
                           name,
                           (unsigned int)pos,
@@ -1941,8 +1939,9 @@ static int wait_for_avail(struct snd_pcm_substream *substream,
                        continue;
                }
                if (!tout) {
-                       snd_printd("%s write error (DMA or IRQ trouble?)\n",
-                                  is_playback ? "playback" : "capture");
+                       pcm_dbg(substream->pcm,
+                               "%s write error (DMA or IRQ trouble?)\n",
+                               is_playback ? "playback" : "capture");
                        err = -EIO;
                        break;
                }
index e3664116736b2520ad4a9a213ca6054521dcc123..b653ab001fbac0778547b933815dff289240f7cf 100644 (file)
@@ -190,12 +190,12 @@ int snd_pcm_hw_refine(struct snd_pcm_substream *substream,
                if (!(params->rmask & (1 << k)))
                        continue;
 #ifdef RULES_DEBUG
-               printk(KERN_DEBUG "%s = ", snd_pcm_hw_param_names[k]);
-               printk("%04x%04x%04x%04x -> ", m->bits[3], m->bits[2], m->bits[1], m->bits[0]);
+               pr_debug("%s = ", snd_pcm_hw_param_names[k]);
+               pr_cont("%04x%04x%04x%04x -> ", m->bits[3], m->bits[2], m->bits[1], m->bits[0]);
 #endif
                changed = snd_mask_refine(m, constrs_mask(constrs, k));
 #ifdef RULES_DEBUG
-               printk("%04x%04x%04x%04x\n", m->bits[3], m->bits[2], m->bits[1], m->bits[0]);
+               pr_cont("%04x%04x%04x%04x\n", m->bits[3], m->bits[2], m->bits[1], m->bits[0]);
 #endif
                if (changed)
                        params->cmask |= 1 << k;
@@ -210,21 +210,21 @@ int snd_pcm_hw_refine(struct snd_pcm_substream *substream,
                if (!(params->rmask & (1 << k)))
                        continue;
 #ifdef RULES_DEBUG
-               printk(KERN_DEBUG "%s = ", snd_pcm_hw_param_names[k]);
+               pr_debug("%s = ", snd_pcm_hw_param_names[k]);
                if (i->empty)
-                       printk("empty");
+                       pr_cont("empty");
                else
-                       printk("%c%u %u%c", 
+                       pr_cont("%c%u %u%c",
                               i->openmin ? '(' : '[', i->min,
                               i->max, i->openmax ? ')' : ']');
-               printk(" -> ");
+               pr_cont(" -> ");
 #endif
                changed = snd_interval_refine(i, constrs_interval(constrs, k));
 #ifdef RULES_DEBUG
                if (i->empty)
-                       printk("empty\n");
+                       pr_cont("empty\n");
                else 
-                       printk("%c%u %u%c\n", 
+                       pr_cont("%c%u %u%c\n",
                               i->openmin ? '(' : '[', i->min,
                               i->max, i->openmax ? ')' : ']');
 #endif
@@ -255,18 +255,18 @@ int snd_pcm_hw_refine(struct snd_pcm_substream *substream,
                        if (!doit)
                                continue;
 #ifdef RULES_DEBUG
-                       printk(KERN_DEBUG "Rule %d [%p]: ", k, r->func);
+                       pr_debug("Rule %d [%p]: ", k, r->func);
                        if (r->var >= 0) {
-                               printk("%s = ", snd_pcm_hw_param_names[r->var]);
+                               pr_cont("%s = ", snd_pcm_hw_param_names[r->var]);
                                if (hw_is_mask(r->var)) {
                                        m = hw_param_mask(params, r->var);
-                                       printk("%x", *m->bits);
+                                       pr_cont("%x", *m->bits);
                                } else {
                                        i = hw_param_interval(params, r->var);
                                        if (i->empty)
-                                               printk("empty");
+                                               pr_cont("empty");
                                        else
-                                               printk("%c%u %u%c", 
+                                               pr_cont("%c%u %u%c",
                                                       i->openmin ? '(' : '[', i->min,
                                                       i->max, i->openmax ? ')' : ']');
                                }
@@ -275,19 +275,19 @@ int snd_pcm_hw_refine(struct snd_pcm_substream *substream,
                        changed = r->func(params, r);
 #ifdef RULES_DEBUG
                        if (r->var >= 0) {
-                               printk(" -> ");
+                               pr_cont(" -> ");
                                if (hw_is_mask(r->var))
-                                       printk("%x", *m->bits);
+                                       pr_cont("%x", *m->bits);
                                else {
                                        if (i->empty)
-                                               printk("empty");
+                                               pr_cont("empty");
                                        else
-                                               printk("%c%u %u%c", 
+                                               pr_cont("%c%u %u%c",
                                                       i->openmin ? '(' : '[', i->min,
                                                       i->max, i->openmax ? ')' : ']');
                                }
                        }
-                       printk("\n");
+                       pr_cont("\n");
 #endif
                        rstamps[k] = stamp;
                        if (changed && r->var >= 0) {
@@ -1541,7 +1541,8 @@ static int snd_pcm_drain(struct snd_pcm_substream *substream,
                        if (substream->runtime->status->state == SNDRV_PCM_STATE_SUSPENDED)
                                result = -ESTRPIPE;
                        else {
-                               snd_printd("playback drain error (DMA or IRQ trouble?)\n");
+                               dev_dbg(substream->pcm->card->dev,
+                                       "playback drain error (DMA or IRQ trouble?)\n");
                                snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP);
                                result = -EIO;
                        }
@@ -2066,7 +2067,7 @@ int snd_pcm_open_substream(struct snd_pcm *pcm, int stream,
 
        err = snd_pcm_hw_constraints_init(substream);
        if (err < 0) {
-               snd_printd("snd_pcm_hw_constraints_init failed\n");
+               pcm_dbg(pcm, "snd_pcm_hw_constraints_init failed\n");
                goto error;
        }
 
@@ -2077,7 +2078,7 @@ int snd_pcm_open_substream(struct snd_pcm *pcm, int stream,
 
        err = snd_pcm_hw_constraints_complete(substream);
        if (err < 0) {
-               snd_printd("snd_pcm_hw_constraints_complete failed\n");
+               pcm_dbg(pcm, "snd_pcm_hw_constraints_complete failed\n");
                goto error;
        }
 
@@ -2609,7 +2610,7 @@ static int snd_pcm_common_ioctl1(struct file *file,
                return res;
        }
        }
-       snd_printd("unknown ioctl = 0x%x\n", cmd);
+       pcm_dbg(substream->pcm, "unknown ioctl = 0x%x\n", cmd);
        return -ENOTTY;
 }
 
index b01d9481d632c4245d3403a445e6e641b9b2e2aa..20ecd8f180808cf62b0b129902e3f89f7a59e5ff 100644 (file)
@@ -53,7 +53,9 @@ void snd_pcm_timer_resolution_change(struct snd_pcm_substream *substream)
                post *= 2;
        }
        if (rate == 0) {
-               snd_printk(KERN_ERR "pcm timer resolution out of range (rate = %u, period_size = %lu)\n", runtime->rate, runtime->period_size);
+               pcm_err(substream->pcm,
+                       "pcm timer resolution out of range (rate = %u, period_size = %lu)\n",
+                       runtime->rate, runtime->period_size);
                runtime->timer_resolution = -1;
                return;
        }