Commit ab1726f9 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Add show for init_verbs and hints sysfs entries



Added the show method for init_verbs and hints hwdep sysfs entries.
They show the current values.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 43b62713
Loading
Loading
Loading
Loading
+33 −2
Original line number Diff line number Diff line
@@ -290,6 +290,22 @@ static ssize_t type##_store(struct device *dev, \
CODEC_ACTION_STORE(reconfig);
CODEC_ACTION_STORE(clear);

static ssize_t init_verbs_show(struct device *dev,
			       struct device_attribute *attr,
			       char *buf)
{
	struct snd_hwdep *hwdep = dev_get_drvdata(dev);
	struct hda_codec *codec = hwdep->private_data;
	int i, len = 0;
	for (i = 0; i < codec->init_verbs.used; i++) {
		struct hda_verb *v = snd_array_elem(&codec->init_verbs, i);
		len += snprintf(buf + len, PAGE_SIZE - len,
				"0x%02x 0x%03x 0x%04x\n",
				v->nid, v->verb, v->param);
	}
	return len;
}

static ssize_t init_verbs_store(struct device *dev,
				struct device_attribute *attr,
				const char *buf, size_t count)
@@ -312,6 +328,21 @@ static ssize_t init_verbs_store(struct device *dev,
	return count;
}

static ssize_t hints_show(struct device *dev,
			  struct device_attribute *attr,
			  char *buf)
{
	struct snd_hwdep *hwdep = dev_get_drvdata(dev);
	struct hda_codec *codec = hwdep->private_data;
	int i, len = 0;
	for (i = 0; i < codec->hints.used; i++) {
		struct hda_hint *hint = snd_array_elem(&codec->hints, i);
		len += snprintf(buf + len, PAGE_SIZE - len,
				"%s = %s\n", hint->key, hint->val);
	}
	return len;
}

static struct hda_hint *get_hint(struct hda_codec *codec, const char *key)
{
	int i;
@@ -466,8 +497,8 @@ static struct device_attribute codec_attrs[] = {
	CODEC_ATTR_RO(mfg),
	CODEC_ATTR_RW(name),
	CODEC_ATTR_RW(modelname),
	CODEC_ATTR_WO(init_verbs),
	CODEC_ATTR_WO(hints),
	CODEC_ATTR_RW(init_verbs),
	CODEC_ATTR_RW(hints),
	CODEC_ATTR_RO(init_pin_configs),
	CODEC_ATTR_RW(user_pin_configs),
	CODEC_ATTR_RO(driver_pin_configs),