Skip to content

Commit

Permalink
ASoC: Add bias level data to DAPM context debugfs
Browse files Browse the repository at this point in the history
This is also in the old sysfs diagnostics but it's nice to have everything
in one place.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Mark Brown committed Apr 4, 2011
1 parent 34bad69 commit ef49e4f
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions sound/soc/soc-dapm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1304,6 +1304,47 @@ static const struct file_operations dapm_widget_power_fops = {
.llseek = default_llseek,
};

static int dapm_bias_open_file(struct inode *inode, struct file *file)
{
file->private_data = inode->i_private;
return 0;
}

static ssize_t dapm_bias_read_file(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos)
{
struct snd_soc_dapm_context *dapm = file->private_data;
char *level;

switch (dapm->bias_level) {
case SND_SOC_BIAS_ON:
level = "On\n";
break;
case SND_SOC_BIAS_PREPARE:
level = "Prepare\n";
break;
case SND_SOC_BIAS_STANDBY:
level = "Standby\n";
break;
case SND_SOC_BIAS_OFF:
level = "Off\n";
break;
default:
BUG();
level = "Unknown\n";
break;
}

return simple_read_from_buffer(user_buf, count, ppos, level,
strlen(level));
}

static const struct file_operations dapm_bias_fops = {
.open = dapm_bias_open_file,
.read = dapm_bias_read_file,
.llseek = default_llseek,
};

void snd_soc_dapm_debugfs_init(struct snd_soc_dapm_context *dapm)
{
struct snd_soc_dapm_widget *w;
Expand All @@ -1312,6 +1353,13 @@ void snd_soc_dapm_debugfs_init(struct snd_soc_dapm_context *dapm)
if (!dapm->debugfs_dapm)
return;

d = debugfs_create_file("bias_level", 0444,
dapm->debugfs_dapm, dapm,
&dapm_bias_fops);
if (!d)
dev_warn(dapm->dev,
"ASoC: Failed to create bias level debugfs file\n");

list_for_each_entry(w, &dapm->card->widgets, list) {
if (!w->name || w->dapm != dapm)
continue;
Expand Down

0 comments on commit ef49e4f

Please sign in to comment.