Commit 9aafe1dd authored by Mark Brown's avatar Mark Brown

ALSA/ASoC: use snd_pcm_direction_name()

Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

Many drivers are selecting strings "playback" / "capture" by own
handling, but we have snd_pcm_direction_name() function for it.
This patch use it.

One note is that snd_pcm_direction_name() will select
"Playback" and "Capture", instead of "playback" / "capture".
Almost all drivers are using it as dev_dbg() or dev_err()
so no problem. But some other drivers are using it as other
purpose. It might be issue (?). For example ASoC debugfs dir name
will be changed by this patch.
parents bb2bf856 bb660132
...@@ -188,8 +188,7 @@ static int lpc3xxx_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -188,8 +188,7 @@ static int lpc3xxx_i2s_hw_params(struct snd_pcm_substream *substream,
__lpc3xxx_find_clkdiv(&clkx, &clky, i2s_info_p->freq, xfersize, i2s_info_p->clkrate); __lpc3xxx_find_clkdiv(&clkx, &clky, i2s_info_p->freq, xfersize, i2s_info_p->clkrate);
dev_dbg(dev, "Stream : %s\n", dev_dbg(dev, "Stream : %s\n", snd_pcm_direction_name(substream->stream));
substream->stream == SNDRV_PCM_STREAM_PLAYBACK ? "playback" : "capture");
dev_dbg(dev, "Desired clock rate : %d\n", i2s_info_p->freq); dev_dbg(dev, "Desired clock rate : %d\n", i2s_info_p->freq);
dev_dbg(dev, "Base clock rate : %d\n", i2s_info_p->clkrate); dev_dbg(dev, "Base clock rate : %d\n", i2s_info_p->clkrate);
dev_dbg(dev, "Transfer size (bytes) : %d\n", xfersize); dev_dbg(dev, "Transfer size (bytes) : %d\n", xfersize);
......
...@@ -2751,8 +2751,7 @@ static int dapm_update_dai_unlocked(struct snd_pcm_substream *substream, ...@@ -2751,8 +2751,7 @@ static int dapm_update_dai_unlocked(struct snd_pcm_substream *substream,
if (!w) if (!w)
return 0; return 0;
dev_dbg(dai->dev, "Update DAI routes for %s %s\n", dai->name, dev_dbg(dai->dev, "Update DAI routes for %s %s\n", dai->name, snd_pcm_direction_name(dir));
dir == SNDRV_PCM_STREAM_PLAYBACK ? "playback" : "capture");
snd_soc_dapm_widget_for_each_sink_path(w, p) { snd_soc_dapm_widget_for_each_sink_path(w, p) {
ret = dapm_update_dai_chan(p, p->sink, channels); ret = dapm_update_dai_chan(p, p->sink, channels);
......
...@@ -222,7 +222,7 @@ static void dpcm_create_debugfs_state(struct snd_soc_dpcm *dpcm, int stream) ...@@ -222,7 +222,7 @@ static void dpcm_create_debugfs_state(struct snd_soc_dpcm *dpcm, int stream)
char *name; char *name;
name = kasprintf(GFP_KERNEL, "%s:%s", dpcm->be->dai_link->name, name = kasprintf(GFP_KERNEL, "%s:%s", dpcm->be->dai_link->name,
stream ? "capture" : "playback"); snd_pcm_direction_name(stream));
if (name) { if (name) {
dpcm->debugfs_state = debugfs_create_dir( dpcm->debugfs_state = debugfs_create_dir(
name, dpcm->fe->debugfs_dpcm_root); name, dpcm->fe->debugfs_dpcm_root);
...@@ -1278,7 +1278,7 @@ static int dpcm_be_connect(struct snd_soc_pcm_runtime *fe, ...@@ -1278,7 +1278,7 @@ static int dpcm_be_connect(struct snd_soc_pcm_runtime *fe,
snd_soc_dpcm_stream_unlock_irq(fe, stream); snd_soc_dpcm_stream_unlock_irq(fe, stream);
dev_dbg(fe->dev, "connected new DPCM %s path %s %s %s\n", dev_dbg(fe->dev, "connected new DPCM %s path %s %s %s\n",
stream ? "capture" : "playback", fe->dai_link->name, snd_pcm_direction_name(stream), fe->dai_link->name,
stream ? "<-" : "->", be->dai_link->name); stream ? "<-" : "->", be->dai_link->name);
dpcm_create_debugfs_state(dpcm, stream); dpcm_create_debugfs_state(dpcm, stream);
...@@ -1306,7 +1306,7 @@ static void dpcm_be_reparent(struct snd_soc_pcm_runtime *fe, ...@@ -1306,7 +1306,7 @@ static void dpcm_be_reparent(struct snd_soc_pcm_runtime *fe,
continue; continue;
dev_dbg(fe->dev, "reparent %s path %s %s %s\n", dev_dbg(fe->dev, "reparent %s path %s %s %s\n",
stream ? "capture" : "playback", snd_pcm_direction_name(stream),
dpcm->fe->dai_link->name, dpcm->fe->dai_link->name,
stream ? "<-" : "->", dpcm->be->dai_link->name); stream ? "<-" : "->", dpcm->be->dai_link->name);
...@@ -1327,14 +1327,14 @@ void dpcm_be_disconnect(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -1327,14 +1327,14 @@ void dpcm_be_disconnect(struct snd_soc_pcm_runtime *fe, int stream)
snd_soc_dpcm_stream_lock_irq(fe, stream); snd_soc_dpcm_stream_lock_irq(fe, stream);
for_each_dpcm_be_safe(fe, stream, dpcm, d) { for_each_dpcm_be_safe(fe, stream, dpcm, d) {
dev_dbg(fe->dev, "ASoC: BE %s disconnect check for %s\n", dev_dbg(fe->dev, "ASoC: BE %s disconnect check for %s\n",
stream ? "capture" : "playback", snd_pcm_direction_name(stream),
dpcm->be->dai_link->name); dpcm->be->dai_link->name);
if (dpcm->state != SND_SOC_DPCM_LINK_STATE_FREE) if (dpcm->state != SND_SOC_DPCM_LINK_STATE_FREE)
continue; continue;
dev_dbg(fe->dev, "freed DSP %s path %s %s %s\n", dev_dbg(fe->dev, "freed DSP %s path %s %s %s\n",
stream ? "capture" : "playback", fe->dai_link->name, snd_pcm_direction_name(stream), fe->dai_link->name,
stream ? "<-" : "->", dpcm->be->dai_link->name); stream ? "<-" : "->", dpcm->be->dai_link->name);
/* BEs still alive need new FE */ /* BEs still alive need new FE */
...@@ -1441,10 +1441,10 @@ int dpcm_path_get(struct snd_soc_pcm_runtime *fe, ...@@ -1441,10 +1441,10 @@ int dpcm_path_get(struct snd_soc_pcm_runtime *fe,
if (paths > 0) if (paths > 0)
dev_dbg(fe->dev, "ASoC: found %d audio %s paths\n", paths, dev_dbg(fe->dev, "ASoC: found %d audio %s paths\n", paths,
stream ? "capture" : "playback"); snd_pcm_direction_name(stream));
else if (paths == 0) else if (paths == 0)
dev_dbg(fe->dev, "ASoC: %s no valid %s path\n", fe->dai_link->name, dev_dbg(fe->dev, "ASoC: %s no valid %s path\n", fe->dai_link->name,
stream ? "capture" : "playback"); snd_pcm_direction_name(stream));
return paths; return paths;
} }
...@@ -1487,7 +1487,7 @@ static int dpcm_prune_paths(struct snd_soc_pcm_runtime *fe, int stream, ...@@ -1487,7 +1487,7 @@ static int dpcm_prune_paths(struct snd_soc_pcm_runtime *fe, int stream,
continue; continue;
dev_dbg(fe->dev, "ASoC: pruning %s BE %s for %s\n", dev_dbg(fe->dev, "ASoC: pruning %s BE %s for %s\n",
stream ? "capture" : "playback", snd_pcm_direction_name(stream),
dpcm->be->dai_link->name, fe->dai_link->name); dpcm->be->dai_link->name, fe->dai_link->name);
dpcm->state = SND_SOC_DPCM_LINK_STATE_FREE; dpcm->state = SND_SOC_DPCM_LINK_STATE_FREE;
dpcm_set_be_update_state(dpcm->be, stream, SND_SOC_DPCM_UPDATE_BE); dpcm_set_be_update_state(dpcm->be, stream, SND_SOC_DPCM_UPDATE_BE);
...@@ -1605,7 +1605,7 @@ void dpcm_be_dai_stop(struct snd_soc_pcm_runtime *fe, int stream, ...@@ -1605,7 +1605,7 @@ void dpcm_be_dai_stop(struct snd_soc_pcm_runtime *fe, int stream,
if (be->dpcm[stream].users == 0) { if (be->dpcm[stream].users == 0) {
dev_err(be->dev, "ASoC: no users %s at close - state %d\n", dev_err(be->dev, "ASoC: no users %s at close - state %d\n",
stream ? "capture" : "playback", snd_pcm_direction_name(stream),
be->dpcm[stream].state); be->dpcm[stream].state);
continue; continue;
} }
...@@ -1645,7 +1645,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -1645,7 +1645,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)
if (!be_substream) { if (!be_substream) {
dev_err(be->dev, "ASoC: no backend %s stream\n", dev_err(be->dev, "ASoC: no backend %s stream\n",
stream ? "capture" : "playback"); snd_pcm_direction_name(stream));
continue; continue;
} }
...@@ -1656,7 +1656,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -1656,7 +1656,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)
/* first time the dpcm is open ? */ /* first time the dpcm is open ? */
if (be->dpcm[stream].users == DPCM_MAX_BE_USERS) { if (be->dpcm[stream].users == DPCM_MAX_BE_USERS) {
dev_err(be->dev, "ASoC: too many users %s at open %d\n", dev_err(be->dev, "ASoC: too many users %s at open %d\n",
stream ? "capture" : "playback", snd_pcm_direction_name(stream),
be->dpcm[stream].state); be->dpcm[stream].state);
continue; continue;
} }
...@@ -1669,7 +1669,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -1669,7 +1669,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)
continue; continue;
dev_dbg(be->dev, "ASoC: open %s BE %s\n", dev_dbg(be->dev, "ASoC: open %s BE %s\n",
stream ? "capture" : "playback", be->dai_link->name); snd_pcm_direction_name(stream), be->dai_link->name);
be_substream->runtime = fe_substream->runtime; be_substream->runtime = fe_substream->runtime;
err = __soc_pcm_open(be, be_substream); err = __soc_pcm_open(be, be_substream);
...@@ -1677,7 +1677,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -1677,7 +1677,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)
be->dpcm[stream].users--; be->dpcm[stream].users--;
if (be->dpcm[stream].users < 0) if (be->dpcm[stream].users < 0)
dev_err(be->dev, "ASoC: no users %s at unwind %d\n", dev_err(be->dev, "ASoC: no users %s at unwind %d\n",
stream ? "capture" : "playback", snd_pcm_direction_name(stream),
be->dpcm[stream].state); be->dpcm[stream].state);
be->dpcm[stream].state = SND_SOC_DPCM_STATE_CLOSE; be->dpcm[stream].state = SND_SOC_DPCM_STATE_CLOSE;
...@@ -2531,7 +2531,7 @@ static int dpcm_run_update_shutdown(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -2531,7 +2531,7 @@ static int dpcm_run_update_shutdown(struct snd_soc_pcm_runtime *fe, int stream)
int err; int err;
dev_dbg(fe->dev, "ASoC: runtime %s close on FE %s\n", dev_dbg(fe->dev, "ASoC: runtime %s close on FE %s\n",
stream ? "capture" : "playback", fe->dai_link->name); snd_pcm_direction_name(stream), fe->dai_link->name);
if (trigger == SND_SOC_DPCM_TRIGGER_BESPOKE) { if (trigger == SND_SOC_DPCM_TRIGGER_BESPOKE) {
/* call bespoke trigger - FE takes care of all BE triggers */ /* call bespoke trigger - FE takes care of all BE triggers */
...@@ -2565,7 +2565,7 @@ static int dpcm_run_update_startup(struct snd_soc_pcm_runtime *fe, int stream) ...@@ -2565,7 +2565,7 @@ static int dpcm_run_update_startup(struct snd_soc_pcm_runtime *fe, int stream)
int ret = 0; int ret = 0;
dev_dbg(fe->dev, "ASoC: runtime %s open on FE %s\n", dev_dbg(fe->dev, "ASoC: runtime %s open on FE %s\n",
stream ? "capture" : "playback", fe->dai_link->name); snd_pcm_direction_name(stream), fe->dai_link->name);
/* Only start the BE if the FE is ready */ /* Only start the BE if the FE is ready */
if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_HW_FREE || if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_HW_FREE ||
......
...@@ -216,9 +216,7 @@ hda_dsp_stream_get(struct snd_sof_dev *sdev, int direction, u32 flags) ...@@ -216,9 +216,7 @@ hda_dsp_stream_get(struct snd_sof_dev *sdev, int direction, u32 flags)
/* stream found ? */ /* stream found ? */
if (!hext_stream) { if (!hext_stream) {
dev_err(sdev->dev, "error: no free %s streams\n", dev_err(sdev->dev, "error: no free %s streams\n", snd_pcm_direction_name(direction));
direction == SNDRV_PCM_STREAM_PLAYBACK ?
"playback" : "capture");
return hext_stream; return hext_stream;
} }
......
...@@ -100,7 +100,7 @@ sof_pcm_setup_connected_widgets(struct snd_sof_dev *sdev, struct snd_soc_pcm_run ...@@ -100,7 +100,7 @@ sof_pcm_setup_connected_widgets(struct snd_sof_dev *sdev, struct snd_soc_pcm_run
dpcm_end_walk_at_be); dpcm_end_walk_at_be);
if (ret < 0) { if (ret < 0) {
dev_err(sdev->dev, "error: dai %s has no valid %s path\n", dai->name, dev_err(sdev->dev, "error: dai %s has no valid %s path\n", dai->name,
dir == SNDRV_PCM_STREAM_PLAYBACK ? "playback" : "capture"); snd_pcm_direction_name(dir));
return ret; return ret;
} }
......
...@@ -823,7 +823,7 @@ static int stm32_i2s_trigger(struct snd_pcm_substream *substream, int cmd, ...@@ -823,7 +823,7 @@ static int stm32_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
/* Enable i2s */ /* Enable i2s */
dev_dbg(cpu_dai->dev, "start I2S %s\n", dev_dbg(cpu_dai->dev, "start I2S %s\n",
playback_flg ? "playback" : "capture"); snd_pcm_direction_name(substream->stream));
cfg1_mask = I2S_CFG1_RXDMAEN | I2S_CFG1_TXDMAEN; cfg1_mask = I2S_CFG1_RXDMAEN | I2S_CFG1_TXDMAEN;
regmap_update_bits(i2s->regmap, STM32_I2S_CFG1_REG, regmap_update_bits(i2s->regmap, STM32_I2S_CFG1_REG,
...@@ -869,7 +869,7 @@ static int stm32_i2s_trigger(struct snd_pcm_substream *substream, int cmd, ...@@ -869,7 +869,7 @@ static int stm32_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
dev_dbg(cpu_dai->dev, "stop I2S %s\n", dev_dbg(cpu_dai->dev, "stop I2S %s\n",
playback_flg ? "playback" : "capture"); snd_pcm_direction_name(substream->stream));
if (playback_flg) if (playback_flg)
regmap_update_bits(i2s->regmap, STM32_I2S_IER_REG, regmap_update_bits(i2s->regmap, STM32_I2S_IER_REG,
......
...@@ -85,7 +85,7 @@ static int tegra210_i2s_set_clock_rate(struct device *dev, ...@@ -85,7 +85,7 @@ static int tegra210_i2s_set_clock_rate(struct device *dev,
} }
static int tegra210_i2s_sw_reset(struct snd_soc_component *compnt, static int tegra210_i2s_sw_reset(struct snd_soc_component *compnt,
bool is_playback) int stream)
{ {
struct device *dev = compnt->dev; struct device *dev = compnt->dev;
struct tegra210_i2s *i2s = dev_get_drvdata(dev); struct tegra210_i2s *i2s = dev_get_drvdata(dev);
...@@ -95,7 +95,7 @@ static int tegra210_i2s_sw_reset(struct snd_soc_component *compnt, ...@@ -95,7 +95,7 @@ static int tegra210_i2s_sw_reset(struct snd_soc_component *compnt,
unsigned int cif_ctrl, stream_ctrl, i2s_ctrl, val; unsigned int cif_ctrl, stream_ctrl, i2s_ctrl, val;
int err; int err;
if (is_playback) { if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
reset_reg = TEGRA210_I2S_RX_SOFT_RESET; reset_reg = TEGRA210_I2S_RX_SOFT_RESET;
cif_reg = TEGRA210_I2S_RX_CIF_CTRL; cif_reg = TEGRA210_I2S_RX_CIF_CTRL;
stream_reg = TEGRA210_I2S_RX_CTRL; stream_reg = TEGRA210_I2S_RX_CTRL;
...@@ -118,7 +118,7 @@ static int tegra210_i2s_sw_reset(struct snd_soc_component *compnt, ...@@ -118,7 +118,7 @@ static int tegra210_i2s_sw_reset(struct snd_soc_component *compnt,
10, 10000); 10, 10000);
if (err) { if (err) {
dev_err(dev, "timeout: failed to reset I2S for %s\n", dev_err(dev, "timeout: failed to reset I2S for %s\n",
is_playback ? "playback" : "capture"); snd_pcm_direction_name(stream));
return err; return err;
} }
...@@ -137,16 +137,16 @@ static int tegra210_i2s_init(struct snd_soc_dapm_widget *w, ...@@ -137,16 +137,16 @@ static int tegra210_i2s_init(struct snd_soc_dapm_widget *w,
struct device *dev = compnt->dev; struct device *dev = compnt->dev;
struct tegra210_i2s *i2s = dev_get_drvdata(dev); struct tegra210_i2s *i2s = dev_get_drvdata(dev);
unsigned int val, status_reg; unsigned int val, status_reg;
bool is_playback; int stream;
int err; int err;
switch (w->reg) { switch (w->reg) {
case TEGRA210_I2S_RX_ENABLE: case TEGRA210_I2S_RX_ENABLE:
is_playback = true; stream = SNDRV_PCM_STREAM_PLAYBACK;
status_reg = TEGRA210_I2S_RX_STATUS; status_reg = TEGRA210_I2S_RX_STATUS;
break; break;
case TEGRA210_I2S_TX_ENABLE: case TEGRA210_I2S_TX_ENABLE:
is_playback = false; stream = SNDRV_PCM_STREAM_CAPTURE;
status_reg = TEGRA210_I2S_TX_STATUS; status_reg = TEGRA210_I2S_TX_STATUS;
break; break;
default: default:
...@@ -159,11 +159,11 @@ static int tegra210_i2s_init(struct snd_soc_dapm_widget *w, ...@@ -159,11 +159,11 @@ static int tegra210_i2s_init(struct snd_soc_dapm_widget *w,
10, 10000); 10, 10000);
if (err) { if (err) {
dev_err(dev, "timeout: previous I2S %s is still active\n", dev_err(dev, "timeout: previous I2S %s is still active\n",
is_playback ? "playback" : "capture"); snd_pcm_direction_name(stream));
return err; return err;
} }
return tegra210_i2s_sw_reset(compnt, is_playback); return tegra210_i2s_sw_reset(compnt, stream);
} }
static int __maybe_unused tegra210_i2s_runtime_suspend(struct device *dev) static int __maybe_unused tegra210_i2s_runtime_suspend(struct device *dev)
......
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