summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-06-23 11:56:22 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-07-21 10:10:11 -0700
commit2b453f0386bda83fbc6ff176b3750a9b4aaf7fc0 (patch)
tree61ec2f89ee5a9ff4b67023004f5753c73c96f22c
parent61278e7e35827c65337515016835712a4c6f4add (diff)
ALSA: pcm: Fix pcm_class sysfs output
commit 60b93030b44a8c2cd015cebe5624fd7552ec67ec upstream. The pcm_class sysfs of each PCM substream gives only "none" since the recent code change to embed the struct device. Fix the code to point directly to the embedded device object properly. Fixes: ef46c7af93f9 ('ALSA: pcm: Embed struct device') Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--sound/core/pcm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 0345e53a340c..546166c0c51e 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -1044,7 +1044,8 @@ void snd_pcm_detach_substream(struct snd_pcm_substream *substream)
static ssize_t show_pcm_class(struct device *dev,
struct device_attribute *attr, char *buf)
{
- struct snd_pcm *pcm;
+ struct snd_pcm_str *pstr = container_of(dev, struct snd_pcm_str, dev);
+ struct snd_pcm *pcm = pstr->pcm;
const char *str;
static const char *strs[SNDRV_PCM_CLASS_LAST + 1] = {
[SNDRV_PCM_CLASS_GENERIC] = "generic",
@@ -1053,8 +1054,7 @@ static ssize_t show_pcm_class(struct device *dev,
[SNDRV_PCM_CLASS_DIGITIZER] = "digitizer",
};
- if (! (pcm = dev_get_drvdata(dev)) ||
- pcm->dev_class > SNDRV_PCM_CLASS_LAST)
+ if (pcm->dev_class > SNDRV_PCM_CLASS_LAST)
str = "none";
else
str = strs[pcm->dev_class];