Commit c75b0476 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: x86: Replace pr_xxx() with dev_xxx()

dev_xxx() helpers give a tidier output in general.

While we're at it, remove many useless debug prints (e.g. the ones at
each function entry), replace some too verbose errors with debugs, and
use WARN_ON() for some serious errors.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 372d855f
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
* ALSA driver for Intel HDMI audio * ALSA driver for Intel HDMI audio
*/ */
#define pr_fmt(fmt) "had: " fmt
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/slab.h> #include <linux/slab.h>
...@@ -160,11 +158,8 @@ static const struct snd_pcm_hardware snd_intel_hadstream = { ...@@ -160,11 +158,8 @@ static const struct snd_pcm_hardware snd_intel_hadstream = {
static int had_get_hwstate(struct snd_intelhad *intelhaddata) static int had_get_hwstate(struct snd_intelhad *intelhaddata)
{ {
/* Check for device presence -SW state */ /* Check for device presence -SW state */
if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED)
pr_debug("%s:Device not connected:%d\n", __func__,
intelhaddata->drv_status);
return -ENODEV; return -ENODEV;
}
return 0; return 0;
} }
...@@ -276,7 +271,8 @@ static int had_read_modify_aud_config_v2(struct snd_intelhad *intelhaddata, ...@@ -276,7 +271,8 @@ static int had_read_modify_aud_config_v2(struct snd_intelhad *intelhaddata,
data = data | cfg_val.cfg_regval; data = data | cfg_val.cfg_regval;
mask = mask | AUD_CONFIG_CH_MASK_V2; mask = mask | AUD_CONFIG_CH_MASK_V2;
pr_debug("%s : data = %x, mask =%x\n", __func__, data, mask); dev_dbg(intelhaddata->dev, "%s : data = %x, mask =%x\n",
__func__, data, mask);
return had_read_modify(intelhaddata, AUD_CONFIG, data, mask); return had_read_modify(intelhaddata, AUD_CONFIG, data, mask);
} }
...@@ -318,8 +314,6 @@ static int had_prog_status_reg(struct snd_pcm_substream *substream, ...@@ -318,8 +314,6 @@ static int had_prog_status_reg(struct snd_pcm_substream *substream,
union aud_ch_status_1 ch_stat1 = {.status_1_regval = 0}; union aud_ch_status_1 ch_stat1 = {.status_1_regval = 0};
int format; int format;
pr_debug("Entry %s\n", __func__);
ch_stat0.status_0_regx.lpcm_id = (intelhaddata->aes_bits & ch_stat0.status_0_regx.lpcm_id = (intelhaddata->aes_bits &
IEC958_AES0_NONAUDIO)>>1; IEC958_AES0_NONAUDIO)>>1;
ch_stat0.status_0_regx.clk_acc = (intelhaddata->aes_bits & ch_stat0.status_0_regx.clk_acc = (intelhaddata->aes_bits &
...@@ -415,8 +409,6 @@ static void init_channel_allocations(void) ...@@ -415,8 +409,6 @@ static void init_channel_allocations(void)
int i, j; int i, j;
struct cea_channel_speaker_allocation *p; struct cea_channel_speaker_allocation *p;
pr_debug("%s: Enter\n", __func__);
for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) { for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) {
p = channel_allocations + i; p = channel_allocations + i;
p->channels = 0; p->channels = 0;
...@@ -472,7 +464,7 @@ static int snd_intelhad_channel_allocation(struct snd_intelhad *intelhaddata, ...@@ -472,7 +464,7 @@ static int snd_intelhad_channel_allocation(struct snd_intelhad *intelhaddata,
} }
} }
pr_debug("HDMI: select CA 0x%x for %d\n", ca, channels); dev_dbg(intelhaddata->dev, "select CA 0x%x for %d\n", ca, channels);
return ca; return ca;
} }
...@@ -503,7 +495,7 @@ static void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata) ...@@ -503,7 +495,7 @@ static void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata)
return; return;
} }
pr_debug("eld.speaker_allocation_block = %x\n", dev_dbg(intelhaddata->dev, "eld.speaker_allocation_block = %x\n",
intelhaddata->eld.speaker_allocation_block); intelhaddata->eld.speaker_allocation_block);
/* WA: Fix the max channel supported to 8 */ /* WA: Fix the max channel supported to 8 */
...@@ -583,10 +575,8 @@ static int had_chmap_ctl_get(struct snd_kcontrol *kcontrol, ...@@ -583,10 +575,8 @@ static int had_chmap_ctl_get(struct snd_kcontrol *kcontrol,
if (intelhaddata->chmap->chmap == NULL) if (intelhaddata->chmap->chmap == NULL)
return -ENODATA; return -ENODATA;
chmap = intelhaddata->chmap->chmap; chmap = intelhaddata->chmap->chmap;
for (i = 0; i < chmap->channels; i++) { for (i = 0; i < chmap->channels; i++)
ucontrol->value.integer.value[i] = chmap->map[i]; ucontrol->value.integer.value[i] = chmap->map[i];
pr_debug("chmap->map[%d] = %d\n", i, chmap->map[i]);
}
return 0; return 0;
} }
...@@ -684,11 +674,8 @@ static int snd_intelhad_prog_buffer(struct snd_intelhad *intelhaddata, ...@@ -684,11 +674,8 @@ static int snd_intelhad_prog_buffer(struct snd_intelhad *intelhaddata,
struct snd_pcm_substream *substream; struct snd_pcm_substream *substream;
substream = intelhaddata->stream_info.had_substream; substream = intelhaddata->stream_info.had_substream;
if (!substream) { if (WARN_ON(!substream))
pr_err("substream is NULL\n");
dump_stack();
return 0; return 0;
}
ring_buf_addr = substream->runtime->dma_addr; ring_buf_addr = substream->runtime->dma_addr;
ring_buf_size = snd_pcm_lib_buffer_bytes(substream); ring_buf_size = snd_pcm_lib_buffer_bytes(substream);
...@@ -726,7 +713,8 @@ static int snd_intelhad_prog_buffer(struct snd_intelhad *intelhaddata, ...@@ -726,7 +713,8 @@ static int snd_intelhad_prog_buffer(struct snd_intelhad *intelhaddata,
period_bytes); period_bytes);
intelhaddata->buf_info[i].is_valid = true; intelhaddata->buf_info[i].is_valid = true;
} }
pr_debug("%s:buf[%d-%d] addr=%#x and size=%d\n", __func__, start, end, dev_dbg(intelhaddata->dev, "%s:buf[%d-%d] addr=%#x and size=%d\n",
__func__, start, end,
intelhaddata->buf_info[start].buf_addr, intelhaddata->buf_info[start].buf_addr,
intelhaddata->buf_info[start].buf_size); intelhaddata->buf_info[start].buf_size);
intelhaddata->valid_buf_cnt = num_periods; intelhaddata->valid_buf_cnt = num_periods;
...@@ -747,7 +735,8 @@ static int snd_intelhad_read_len(struct snd_intelhad *intelhaddata) ...@@ -747,7 +735,8 @@ static int snd_intelhad_read_len(struct snd_intelhad *intelhaddata)
} }
if (retval != 1) { if (retval != 1) {
for (i = 0; i < 4 ; i++) for (i = 0; i < 4 ; i++)
pr_debug("buf[%d] size=%d\n", i, len[i]); dev_dbg(intelhaddata->dev, "buf[%d] size=%d\n",
i, len[i]);
} }
return retval; return retval;
...@@ -858,7 +847,7 @@ static void snd_intelhad_prog_cts(u32 aud_samp_freq, u32 tmds, ...@@ -858,7 +847,7 @@ static void snd_intelhad_prog_cts(u32 aud_samp_freq, u32 tmds,
divisor = 128 * aud_samp_freq; divisor = 128 * aud_samp_freq;
cts_val = div64_u64(dividend, divisor); cts_val = div64_u64(dividend, divisor);
} }
pr_debug("TMDS value=%d, N value=%d, CTS Value=%d\n", dev_dbg(intelhaddata->dev, "TMDS value=%d, N value=%d, CTS Value=%d\n",
tmds, n_param, cts_val); tmds, n_param, cts_val);
had_write_register(intelhaddata, AUD_HDMI_CTS, (BIT(24) | cts_val)); had_write_register(intelhaddata, AUD_HDMI_CTS, (BIT(24) | cts_val));
} }
...@@ -956,7 +945,7 @@ static void snd_intelhad_handle_underrun(struct snd_intelhad *intelhaddata) ...@@ -956,7 +945,7 @@ static void snd_intelhad_handle_underrun(struct snd_intelhad *intelhaddata)
do { /* clear bit30, 31 AUD_HDMI_STATUS */ do { /* clear bit30, 31 AUD_HDMI_STATUS */
had_read_register(intelhaddata, AUD_HDMI_STATUS_v2, had_read_register(intelhaddata, AUD_HDMI_STATUS_v2,
&hdmi_status); &hdmi_status);
pr_debug("HDMI status =0x%x\n", hdmi_status); dev_dbg(intelhaddata->dev, "HDMI status =0x%x\n", hdmi_status);
if (hdmi_status & AUD_CONFIG_MASK_UNDERRUN) { if (hdmi_status & AUD_CONFIG_MASK_UNDERRUN) {
i++; i++;
had_write_register(intelhaddata, had_write_register(intelhaddata,
...@@ -965,7 +954,7 @@ static void snd_intelhad_handle_underrun(struct snd_intelhad *intelhaddata) ...@@ -965,7 +954,7 @@ static void snd_intelhad_handle_underrun(struct snd_intelhad *intelhaddata)
break; break;
} while (i < MAX_CNT); } while (i < MAX_CNT);
if (i >= MAX_CNT) if (i >= MAX_CNT)
pr_err("Unable to clear UNDERRUN bits\n"); dev_err(intelhaddata->dev, "Unable to clear UNDERRUN bits\n");
} }
/** /**
...@@ -982,7 +971,6 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -982,7 +971,6 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
int retval; int retval;
pr_debug("snd_intelhad_open called\n");
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
runtime = substream->runtime; runtime = substream->runtime;
...@@ -991,14 +979,15 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -991,14 +979,15 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
pm_runtime_get(intelhaddata->dev); pm_runtime_get(intelhaddata->dev);
if (had_get_hwstate(intelhaddata)) { if (had_get_hwstate(intelhaddata)) {
pr_err("%s: HDMI cable plugged-out\n", __func__); dev_dbg(intelhaddata->dev, "%s: HDMI cable plugged-out\n",
__func__);
retval = -ENODEV; retval = -ENODEV;
goto exit_put_handle; goto exit_put_handle;
} }
/* Check, if device already in use */ /* Check, if device already in use */
if (runtime->private_data) { if (runtime->private_data) {
pr_err("Device already in use\n"); dev_dbg(intelhaddata->dev, "Device already in use\n");
retval = -EBUSY; retval = -EBUSY;
goto exit_put_handle; goto exit_put_handle;
} }
...@@ -1025,7 +1014,8 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream) ...@@ -1025,7 +1014,8 @@ static int snd_intelhad_open(struct snd_pcm_substream *substream)
retval = snd_pcm_hw_constraint_step(substream->runtime, 0, retval = snd_pcm_hw_constraint_step(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 64); SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 64);
if (retval < 0) { if (retval < 0) {
pr_err("%s:step_size=64 failed,err=%d\n", __func__, retval); dev_dbg(intelhaddata->dev, "%s:step_size=64 failed,err=%d\n",
__func__, retval);
goto exit_err; goto exit_err;
} }
...@@ -1048,8 +1038,6 @@ static void had_period_elapsed(void *had_substream) ...@@ -1048,8 +1038,6 @@ static void had_period_elapsed(void *had_substream)
struct snd_pcm_substream *substream = had_substream; struct snd_pcm_substream *substream = had_substream;
struct had_stream_pvt *stream; struct had_stream_pvt *stream;
/* pr_debug("had_period_elapsed called\n"); */
if (!substream || !substream->runtime) if (!substream || !substream->runtime)
return; return;
stream = substream->runtime->private_data; stream = substream->runtime->private_data;
...@@ -1070,9 +1058,6 @@ static int snd_intelhad_init_stream(struct snd_pcm_substream *substream) ...@@ -1070,9 +1058,6 @@ static int snd_intelhad_init_stream(struct snd_pcm_substream *substream)
{ {
struct snd_intelhad *intelhaddata = snd_pcm_substream_chip(substream); struct snd_intelhad *intelhaddata = snd_pcm_substream_chip(substream);
pr_debug("snd_intelhad_init_stream called\n");
pr_debug("setting buffer ptr param\n");
intelhaddata->stream_info.period_elapsed = had_period_elapsed; intelhaddata->stream_info.period_elapsed = had_period_elapsed;
intelhaddata->stream_info.had_substream = substream; intelhaddata->stream_info.had_substream = substream;
intelhaddata->stream_info.buffer_ptr = 0; intelhaddata->stream_info.buffer_ptr = 0;
...@@ -1093,15 +1078,11 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream) ...@@ -1093,15 +1078,11 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream)
struct snd_intelhad *intelhaddata; struct snd_intelhad *intelhaddata;
struct snd_pcm_runtime *runtime; struct snd_pcm_runtime *runtime;
pr_debug("snd_intelhad_close called\n");
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
runtime = substream->runtime; runtime = substream->runtime;
if (!runtime->private_data) { if (WARN_ON(!runtime->private_data))
pr_debug("close() might have called after failed open");
return 0; return 0;
}
intelhaddata->stream_info.buffer_rendered = 0; intelhaddata->stream_info.buffer_rendered = 0;
intelhaddata->stream_info.buffer_ptr = 0; intelhaddata->stream_info.buffer_ptr = 0;
...@@ -1111,7 +1092,8 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream) ...@@ -1111,7 +1092,8 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream)
/* Check if following drv_status modification is required - VA */ /* Check if following drv_status modification is required - VA */
if (intelhaddata->drv_status != HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status != HAD_DRV_DISCONNECTED) {
intelhaddata->drv_status = HAD_DRV_CONNECTED; intelhaddata->drv_status = HAD_DRV_CONNECTED;
pr_debug("%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_CONNECTED\n", dev_dbg(intelhaddata->dev,
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_CONNECTED\n",
__func__, __LINE__); __func__, __LINE__);
} }
kfree(runtime->private_data); kfree(runtime->private_data);
...@@ -1132,25 +1114,27 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream) ...@@ -1132,25 +1114,27 @@ static int snd_intelhad_close(struct snd_pcm_substream *substream)
static int snd_intelhad_hw_params(struct snd_pcm_substream *substream, static int snd_intelhad_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params) struct snd_pcm_hw_params *hw_params)
{ {
struct snd_intelhad *intelhaddata;
unsigned long addr; unsigned long addr;
int pages, buf_size, retval; int pages, buf_size, retval;
pr_debug("snd_intelhad_hw_params called\n");
if (!hw_params) if (!hw_params)
return -EINVAL; return -EINVAL;
intelhaddata = snd_pcm_substream_chip(substream);
buf_size = params_buffer_bytes(hw_params); buf_size = params_buffer_bytes(hw_params);
retval = snd_pcm_lib_malloc_pages(substream, buf_size); retval = snd_pcm_lib_malloc_pages(substream, buf_size);
if (retval < 0) if (retval < 0)
return retval; return retval;
pr_debug("%s:allocated memory = %d\n", __func__, buf_size); dev_dbg(intelhaddata->dev, "%s:allocated memory = %d\n",
__func__, buf_size);
/* mark the pages as uncached region */ /* mark the pages as uncached region */
addr = (unsigned long) substream->runtime->dma_area; addr = (unsigned long) substream->runtime->dma_area;
pages = (substream->runtime->dma_bytes + PAGE_SIZE - 1) / PAGE_SIZE; pages = (substream->runtime->dma_bytes + PAGE_SIZE - 1) / PAGE_SIZE;
retval = set_memory_uc(addr, pages); retval = set_memory_uc(addr, pages);
if (retval) { if (retval) {
pr_err("set_memory_uc failed.Error:%d\n", retval); dev_err(intelhaddata->dev, "set_memory_uc failed.Error:%d\n",
retval);
return retval; return retval;
} }
memset(substream->runtime->dma_area, 0, buf_size); memset(substream->runtime->dma_area, 0, buf_size);
...@@ -1172,8 +1156,6 @@ static int snd_intelhad_hw_free(struct snd_pcm_substream *substream) ...@@ -1172,8 +1156,6 @@ static int snd_intelhad_hw_free(struct snd_pcm_substream *substream)
unsigned long addr; unsigned long addr;
u32 pages; u32 pages;
pr_debug("snd_intelhad_hw_free called\n");
/* mark back the pages as cached/writeback region before the free */ /* mark back the pages as cached/writeback region before the free */
if (substream->runtime->dma_area != NULL) { if (substream->runtime->dma_area != NULL) {
addr = (unsigned long) substream->runtime->dma_area; addr = (unsigned long) substream->runtime->dma_area;
...@@ -1200,19 +1182,16 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -1200,19 +1182,16 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream,
struct had_stream_pvt *stream; struct had_stream_pvt *stream;
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
pr_debug("snd_intelhad_pcm_trigger called\n");
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
stream = substream->runtime->private_data; stream = substream->runtime->private_data;
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
pr_debug("Trigger Start\n");
/* Disable local INTRs till register prgmng is done */ /* Disable local INTRs till register prgmng is done */
if (had_get_hwstate(intelhaddata)) { if (had_get_hwstate(intelhaddata)) {
pr_err("_START: HDMI cable plugged-out\n"); dev_dbg(intelhaddata->dev,
"_START: HDMI cable plugged-out\n");
retval = -ENODEV; retval = -ENODEV;
break; break;
} }
...@@ -1223,18 +1202,14 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -1223,18 +1202,14 @@ static int snd_intelhad_pcm_trigger(struct snd_pcm_substream *substream,
/* Enable Audio */ /* Enable Audio */
snd_intelhad_enable_audio_int(intelhaddata, true); snd_intelhad_enable_audio_int(intelhaddata, true);
snd_intelhad_enable_audio(intelhaddata, true); snd_intelhad_enable_audio(intelhaddata, true);
pr_debug("Processed _Start\n");
break; break;
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP:
pr_debug("Trigger Stop\n");
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irq); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irq);
intelhaddata->stream_info.str_id = 0; intelhaddata->stream_info.str_id = 0;
intelhaddata->curr_buf = 0; intelhaddata->curr_buf = 0;
/* Stop reporting BUFFER_DONE/UNDERRUN to above layers*/ /* Stop reporting BUFFER_DONE/UNDERRUN to above layers */
had_stream->stream_type = HAD_INIT; had_stream->stream_type = HAD_INIT;
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irq); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irq);
...@@ -1270,27 +1245,28 @@ static int snd_intelhad_pcm_prepare(struct snd_pcm_substream *substream) ...@@ -1270,27 +1245,28 @@ static int snd_intelhad_pcm_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime; struct snd_pcm_runtime *runtime;
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
pr_debug("snd_intelhad_pcm_prepare called\n");
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
runtime = substream->runtime; runtime = substream->runtime;
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
if (had_get_hwstate(intelhaddata)) { if (had_get_hwstate(intelhaddata)) {
pr_err("%s: HDMI cable plugged-out\n", __func__); dev_dbg(intelhaddata->dev, "%s: HDMI cable plugged-out\n",
__func__);
retval = -ENODEV; retval = -ENODEV;
goto prep_end; goto prep_end;
} }
pr_debug("period_size=%d\n", dev_dbg(intelhaddata->dev, "period_size=%d\n",
(int)frames_to_bytes(runtime, runtime->period_size)); (int)frames_to_bytes(runtime, runtime->period_size));
pr_debug("periods=%d\n", runtime->periods); dev_dbg(intelhaddata->dev, "periods=%d\n", runtime->periods);
pr_debug("buffer_size=%d\n", (int)snd_pcm_lib_buffer_bytes(substream)); dev_dbg(intelhaddata->dev, "buffer_size=%d\n",
pr_debug("rate=%d\n", runtime->rate); (int)snd_pcm_lib_buffer_bytes(substream));
pr_debug("channels=%d\n", runtime->channels); dev_dbg(intelhaddata->dev, "rate=%d\n", runtime->rate);
dev_dbg(intelhaddata->dev, "channels=%d\n", runtime->channels);
if (intelhaddata->stream_info.str_id) { if (intelhaddata->stream_info.str_id) {
pr_debug("_prepare is called for existing str_id#%d\n", dev_dbg(intelhaddata->dev,
"_prepare is called for existing str_id#%d\n",
intelhaddata->stream_info.str_id); intelhaddata->stream_info.str_id);
retval = snd_intelhad_pcm_trigger(substream, retval = snd_intelhad_pcm_trigger(substream,
SNDRV_PCM_TRIGGER_STOP); SNDRV_PCM_TRIGGER_STOP);
...@@ -1308,7 +1284,8 @@ static int snd_intelhad_pcm_prepare(struct snd_pcm_substream *substream) ...@@ -1308,7 +1284,8 @@ static int snd_intelhad_pcm_prepare(struct snd_pcm_substream *substream)
retval = snd_intelhad_prog_n(substream->runtime->rate, &n_param, retval = snd_intelhad_prog_n(substream->runtime->rate, &n_param,
intelhaddata); intelhaddata);
if (retval) { if (retval) {
pr_err("programming N value failed %#x\n", retval); dev_err(intelhaddata->dev,
"programming N value failed %#x\n", retval);
goto prep_end; goto prep_end;
} }
...@@ -1354,8 +1331,6 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer( ...@@ -1354,8 +1331,6 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer(
u32 t; u32 t;
int buf_id; int buf_id;
/* pr_debug("snd_intelhad_pcm_pointer called\n"); */
intelhaddata = snd_pcm_substream_chip(substream); intelhaddata = snd_pcm_substream_chip(substream);
if (intelhaddata->flag_underrun) { if (intelhaddata->flag_underrun) {
...@@ -1373,11 +1348,13 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer( ...@@ -1373,11 +1348,13 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer(
if ((t == 0) || (t == ((u32)-1L))) { if ((t == 0) || (t == ((u32)-1L))) {
intelhaddata->underrun_count++; intelhaddata->underrun_count++;
pr_debug("discovered buffer done for buf %d, count = %d\n", dev_dbg(intelhaddata->dev,
"discovered buffer done for buf %d, count = %d\n",
buf_id, intelhaddata->underrun_count); buf_id, intelhaddata->underrun_count);
if (intelhaddata->underrun_count > (HAD_MIN_PERIODS/2)) { if (intelhaddata->underrun_count > (HAD_MIN_PERIODS/2)) {
pr_debug("assume audio_codec_reset, underrun = %d - do xrun\n", dev_dbg(intelhaddata->dev,
"assume audio_codec_reset, underrun = %d - do xrun\n",
intelhaddata->underrun_count); intelhaddata->underrun_count);
intelhaddata->underrun_count = 0; intelhaddata->underrun_count = 0;
return SNDRV_PCM_POS_XRUN; return SNDRV_PCM_POS_XRUN;
...@@ -1412,10 +1389,6 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer( ...@@ -1412,10 +1389,6 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer(
static int snd_intelhad_pcm_mmap(struct snd_pcm_substream *substream, static int snd_intelhad_pcm_mmap(struct snd_pcm_substream *substream,
struct vm_area_struct *vma) struct vm_area_struct *vma)
{ {
pr_debug("snd_intelhad_pcm_mmap called\n");
pr_debug("entry with prot:%s\n", __func__);
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
return remap_pfn_range(vma, vma->vm_start, return remap_pfn_range(vma, vma->vm_start,
substream->dma_buffer.addr >> PAGE_SHIFT, substream->dma_buffer.addr >> PAGE_SHIFT,
...@@ -1442,7 +1415,8 @@ static int hdmi_audio_mode_change(struct snd_intelhad *intelhaddata) ...@@ -1442,7 +1415,8 @@ static int hdmi_audio_mode_change(struct snd_intelhad *intelhaddata)
retval = snd_intelhad_prog_n(substream->runtime->rate, &n_param, retval = snd_intelhad_prog_n(substream->runtime->rate, &n_param,
intelhaddata); intelhaddata);
if (retval) { if (retval) {
pr_err("programming N value failed %#x\n", retval); dev_err(intelhaddata->dev,
"programming N value failed %#x\n", retval);
goto out; goto out;
} }
...@@ -1476,13 +1450,11 @@ static int hdmi_lpe_audio_suspend(struct platform_device *pdev, ...@@ -1476,13 +1450,11 @@ static int hdmi_lpe_audio_suspend(struct platform_device *pdev,
struct snd_pcm_substream *substream; struct snd_pcm_substream *substream;
struct snd_intelhad *intelhaddata = platform_get_drvdata(pdev); struct snd_intelhad *intelhaddata = platform_get_drvdata(pdev);
pr_debug("Enter:%s\n", __func__);
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
substream = intelhaddata->stream_info.had_substream; substream = intelhaddata->stream_info.had_substream;
if (intelhaddata->dev->power.runtime_status != RPM_SUSPENDED) { if (intelhaddata->dev->power.runtime_status != RPM_SUSPENDED) {
pr_err("audio stream is active\n"); dev_err(intelhaddata->dev, "audio stream is active\n");
return -EAGAIN; return -EAGAIN;
} }
...@@ -1490,23 +1462,23 @@ static int hdmi_lpe_audio_suspend(struct platform_device *pdev, ...@@ -1490,23 +1462,23 @@ static int hdmi_lpe_audio_suspend(struct platform_device *pdev,
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs);
if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_debug("had not connected\n"); dev_dbg(intelhaddata->dev, "had not connected\n");
return 0; return 0;
} }
if (intelhaddata->drv_status == HAD_DRV_SUSPENDED) { if (intelhaddata->drv_status == HAD_DRV_SUSPENDED) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_debug("had already suspended\n"); dev_dbg(intelhaddata->dev, "had already suspended\n");
return 0; return 0;
} }
intelhaddata->drv_status = HAD_DRV_SUSPENDED; intelhaddata->drv_status = HAD_DRV_SUSPENDED;
pr_debug("%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_SUSPENDED\n", dev_dbg(intelhaddata->dev,
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_SUSPENDED\n",
__func__, __LINE__); __func__, __LINE__);
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
snd_intelhad_enable_audio_int(intelhaddata, false); snd_intelhad_enable_audio_int(intelhaddata, false);
pr_debug("Exit:%s", __func__);
return 0; return 0;
} }
...@@ -1523,33 +1495,32 @@ static int hdmi_lpe_audio_resume(struct platform_device *pdev) ...@@ -1523,33 +1495,32 @@ static int hdmi_lpe_audio_resume(struct platform_device *pdev)
struct snd_intelhad *intelhaddata = platform_get_drvdata(pdev); struct snd_intelhad *intelhaddata = platform_get_drvdata(pdev);
unsigned long flag_irqs; unsigned long flag_irqs;
pr_debug("Enter:%s\n", __func__);
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs);
if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_debug("had not connected\n"); dev_dbg(intelhaddata->dev, "had not connected\n");
return 0; return 0;
} }
if (intelhaddata->drv_status != HAD_DRV_SUSPENDED) { if (intelhaddata->drv_status != HAD_DRV_SUSPENDED) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_err("had is not in suspended state\n"); dev_err(intelhaddata->dev, "had is not in suspended state\n");
return 0; return 0;
} }
if (had_get_hwstate(intelhaddata)) { if (had_get_hwstate(intelhaddata)) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_err("Failed to resume. Device not accessible\n"); dev_err(intelhaddata->dev,
"Failed to resume. Device not accessible\n");
return -ENODEV; return -ENODEV;
} }
intelhaddata->drv_status = HAD_DRV_CONNECTED; intelhaddata->drv_status = HAD_DRV_CONNECTED;
pr_debug("%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_DISCONNECTED\n", dev_dbg(intelhaddata->dev,
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_DISCONNECTED\n",
__func__, __LINE__); __func__, __LINE__);
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
snd_intelhad_enable_audio_int(intelhaddata, true); snd_intelhad_enable_audio_int(intelhaddata, true);
pr_debug("Exit:%s", __func__);
return 0; return 0;
} }
...@@ -1569,7 +1540,8 @@ static inline int had_chk_intrmiss(struct snd_intelhad *intelhaddata, ...@@ -1569,7 +1540,8 @@ static inline int had_chk_intrmiss(struct snd_intelhad *intelhaddata,
intr_count = snd_intelhad_read_len(intelhaddata); intr_count = snd_intelhad_read_len(intelhaddata);
if (intr_count > 1) { if (intr_count > 1) {
/* In case of active playback */ /* In case of active playback */
pr_err("Driver detected %d missed buffer done interrupt(s)!!!!\n", dev_err(intelhaddata->dev,
"Driver detected %d missed buffer done interrupt(s)\n",
(intr_count - 1)); (intr_count - 1));
if (intr_count > 3) if (intr_count > 3)
return intr_count; return intr_count;
...@@ -1616,7 +1588,8 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata) ...@@ -1616,7 +1588,8 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata)
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs);
if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_err("%s:Device already disconnected\n", __func__); dev_dbg(intelhaddata->dev,
"%s:Device already disconnected\n", __func__);
return 0; return 0;
} }
buf_id = intelhaddata->curr_buf; buf_id = intelhaddata->curr_buf;
...@@ -1625,8 +1598,6 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata) ...@@ -1625,8 +1598,6 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata)
buf_size = intelhaddata->buf_info[buf_id].buf_size; buf_size = intelhaddata->buf_info[buf_id].buf_size;
stream_type = had_stream->stream_type; stream_type = had_stream->stream_type;
pr_debug("Enter:%s buf_id=%d\n", __func__, buf_id);
/* Every debug statement has an implication /* Every debug statement has an implication
* of ~5msec. Thus, avoid having >3 debug statements * of ~5msec. Thus, avoid having >3 debug statements
* for each buffer_done handling. * for each buffer_done handling.
...@@ -1637,8 +1608,8 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata) ...@@ -1637,8 +1608,8 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata)
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
intr_count = had_chk_intrmiss(intelhaddata, buf_id); intr_count = had_chk_intrmiss(intelhaddata, buf_id);
if (!intr_count || (intr_count > 3)) { if (!intr_count || (intr_count > 3)) {
pr_err("HAD SW state in non-recoverable!!! mode\n"); dev_err(intelhaddata->dev,
pr_err("Already played stale data\n"); "HAD SW state in non-recoverable mode\n");
return 0; return 0;
} }
buf_id += (intr_count - 1); buf_id += (intr_count - 1);
...@@ -1656,7 +1627,7 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata) ...@@ -1656,7 +1627,7 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata)
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
if (had_get_hwstate(intelhaddata)) { if (had_get_hwstate(intelhaddata)) {
pr_err("HDMI cable plugged-out\n"); dev_dbg(intelhaddata->dev, "HDMI cable plugged-out\n");
return 0; return 0;
} }
...@@ -1672,7 +1643,7 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata) ...@@ -1672,7 +1643,7 @@ static int had_process_buffer_done(struct snd_intelhad *intelhaddata)
had_read_register(intelhaddata, had_read_register(intelhaddata,
AUD_BUF_A_LENGTH + (buf_id * HAD_REG_WIDTH), AUD_BUF_A_LENGTH + (buf_id * HAD_REG_WIDTH),
&len); &len);
pr_debug("%s:Enabled buf[%d]\n", __func__, buf_id); dev_dbg(intelhaddata->dev, "%s:Enabled buf[%d]\n", __func__, buf_id);
/* In case of actual data, /* In case of actual data,
* report buffer_done to above ALSA layer * report buffer_done to above ALSA layer
...@@ -1709,13 +1680,14 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata) ...@@ -1709,13 +1680,14 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata)
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_debug("Enter:%s buf_id=%d, stream_type=%d\n", dev_dbg(intelhaddata->dev, "Enter:%s buf_id=%d, stream_type=%d\n",
__func__, buf_id, stream_type); __func__, buf_id, stream_type);
snd_intelhad_handle_underrun(intelhaddata); snd_intelhad_handle_underrun(intelhaddata);
if (drv_status == HAD_DRV_DISCONNECTED) { if (drv_status == HAD_DRV_DISCONNECTED) {
pr_err("%s:Device already disconnected\n", __func__); dev_dbg(intelhaddata->dev,
"%s:Device already disconnected\n", __func__);
return 0; return 0;
} }
...@@ -1735,31 +1707,30 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata) ...@@ -1735,31 +1707,30 @@ static int had_process_hot_plug(struct snd_intelhad *intelhaddata)
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
unsigned long flag_irqs; unsigned long flag_irqs;
pr_debug("Enter:%s\n", __func__);
substream = intelhaddata->stream_info.had_substream; substream = intelhaddata->stream_info.had_substream;
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs);
if (intelhaddata->drv_status == HAD_DRV_CONNECTED) { if (intelhaddata->drv_status == HAD_DRV_CONNECTED) {
pr_debug("Device already connected\n"); dev_dbg(intelhaddata->dev, "Device already connected\n");
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
return 0; return 0;
} }
buf_id = intelhaddata->curr_buf; buf_id = intelhaddata->curr_buf;
intelhaddata->buff_done = buf_id; intelhaddata->buff_done = buf_id;
intelhaddata->drv_status = HAD_DRV_CONNECTED; intelhaddata->drv_status = HAD_DRV_CONNECTED;
pr_debug("%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_CONNECTED\n", dev_dbg(intelhaddata->dev,
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_CONNECTED\n",
__func__, __LINE__); __func__, __LINE__);
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_debug("Processing HOT_PLUG, buf_id = %d\n", buf_id); dev_dbg(intelhaddata->dev, "Processing HOT_PLUG, buf_id = %d\n",
buf_id);
/* Safety check */ /* Safety check */
if (substream) { if (substream) {
pr_debug("There should not be active PB from ALSA\n"); dev_dbg(intelhaddata->dev,
pr_debug("Signifies, cable is plugged-in even before\n"); "Force to stop the active stream by disconnection\n");
pr_debug("processing snd_pcm_disconnect\n");
/* Set runtime->state to hw_params done */ /* Set runtime->state to hw_params done */
snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP); snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP);
} }
...@@ -1775,15 +1746,13 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) ...@@ -1775,15 +1746,13 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata)
struct had_stream_data *had_stream; struct had_stream_data *had_stream;
unsigned long flag_irqs; unsigned long flag_irqs;
pr_debug("Enter:%s\n", __func__);
had_stream = &intelhaddata->stream_data; had_stream = &intelhaddata->stream_data;
buf_id = intelhaddata->curr_buf; buf_id = intelhaddata->curr_buf;
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs);
if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) { if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED) {
pr_debug("Device already disconnected\n"); dev_dbg(intelhaddata->dev, "Device already disconnected\n");
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
return 0; return 0;
...@@ -1794,13 +1763,13 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) ...@@ -1794,13 +1763,13 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata)
} }
intelhaddata->drv_status = HAD_DRV_DISCONNECTED; intelhaddata->drv_status = HAD_DRV_DISCONNECTED;
pr_debug("%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_DISCONNECTED\n", dev_dbg(intelhaddata->dev,
"%s @ %d:DEBUG PLUG/UNPLUG : HAD_DRV_DISCONNECTED\n",
__func__, __LINE__); __func__, __LINE__);
/* Report to above ALSA layer */ /* Report to above ALSA layer */
if (intelhaddata->stream_info.had_substream != NULL) { if (intelhaddata->stream_info.had_substream != NULL) {
spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs); spin_unlock_irqrestore(&intelhaddata->had_spinlock, flag_irqs);
pr_debug("%s: unlock -> sending pcm_stop -> lock\n", __func__);
snd_pcm_stop(intelhaddata->stream_info.had_substream, snd_pcm_stop(intelhaddata->stream_info.had_substream,
SNDRV_PCM_STATE_SETUP); SNDRV_PCM_STATE_SETUP);
spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs); spin_lock_irqsave(&intelhaddata->had_spinlock, flag_irqs);
...@@ -1811,7 +1780,6 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata) ...@@ -1811,7 +1780,6 @@ static int had_process_hot_unplug(struct snd_intelhad *intelhaddata)
kfree(intelhaddata->chmap->chmap); kfree(intelhaddata->chmap->chmap);
intelhaddata->chmap->chmap = NULL; intelhaddata->chmap->chmap = NULL;
intelhaddata->audio_reg_base = NULL; intelhaddata->audio_reg_base = NULL;
pr_debug("%s: unlocked -> returned\n", __func__);
return 0; return 0;
} }
...@@ -1837,7 +1805,6 @@ static struct snd_pcm_ops snd_intelhad_playback_ops = { ...@@ -1837,7 +1805,6 @@ static struct snd_pcm_ops snd_intelhad_playback_ops = {
*/ */
static void snd_intelhad_pcm_free(struct snd_pcm *pcm) static void snd_intelhad_pcm_free(struct snd_pcm *pcm)
{ {
pr_debug("Freeing PCM preallocated pages\n");
snd_pcm_lib_preallocate_free_for_all(pcm); snd_pcm_lib_preallocate_free_for_all(pcm);
} }
...@@ -1879,7 +1846,6 @@ static int had_iec958_put(struct snd_kcontrol *kcontrol, ...@@ -1879,7 +1846,6 @@ static int had_iec958_put(struct snd_kcontrol *kcontrol,
unsigned int val; unsigned int val;
struct snd_intelhad *intelhaddata = snd_kcontrol_chip(kcontrol); struct snd_intelhad *intelhaddata = snd_kcontrol_chip(kcontrol);
pr_debug("entered had_iec958_put\n");
val = (ucontrol->value.iec958.status[0] << 0) | val = (ucontrol->value.iec958.status[0] << 0) |
(ucontrol->value.iec958.status[1] << 8) | (ucontrol->value.iec958.status[1] << 8) |
(ucontrol->value.iec958.status[2] << 16) | (ucontrol->value.iec958.status[2] << 16) |
...@@ -2024,7 +1990,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) ...@@ -2024,7 +1990,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
int ret; int ret;
unsigned long flags; unsigned long flags;
dev_dbg(&pdev->dev, "Enter %s\n", __func__);
dev_dbg(&pdev->dev, "dma_mask: %p\n", pdev->dev.dma_mask); dev_dbg(&pdev->dev, "dma_mask: %p\n", pdev->dev.dma_mask);
pdata = pdev->dev.platform_data; pdata = pdev->dev.platform_data;
...@@ -2170,8 +2135,6 @@ static int hdmi_lpe_audio_remove(struct platform_device *pdev) ...@@ -2170,8 +2135,6 @@ static int hdmi_lpe_audio_remove(struct platform_device *pdev)
{ {
struct snd_intelhad *ctx = platform_get_drvdata(pdev); struct snd_intelhad *ctx = platform_get_drvdata(pdev);
dev_dbg(&pdev->dev, "Enter %s\n", __func__);
if (ctx->drv_status != HAD_DRV_DISCONNECTED) if (ctx->drv_status != HAD_DRV_DISCONNECTED)
snd_intelhad_enable_audio_int(ctx, false); snd_intelhad_enable_audio_int(ctx, false);
snd_card_free(ctx->card); snd_card_free(ctx->card);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment