ALSA: hwdep: Embed struct device
Like the previous patch, this one embeds the device object into hwdep object. For a proper object lifecycle, it's freed in the release callback. This also allows us to create sysfs entries via passing to the groups field of the device without explicit function calls. Since each driver can see the device and touch its groups field directly, we don't need to delegate in hwdep core any longer. So, remove the groups field from snd_hwdep, and let the user (in this case only hda_hwdep.c) modify the device groups. Reviewed-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
@@ -109,7 +109,6 @@ int snd_hda_create_hwdep(struct hda_codec *codec)
|
||||
hwdep->iface = SNDRV_HWDEP_IFACE_HDA;
|
||||
hwdep->private_data = codec;
|
||||
hwdep->exclusive = 1;
|
||||
hwdep->groups = snd_hda_dev_attr_groups;
|
||||
|
||||
hwdep->ops.open = hda_hwdep_open;
|
||||
hwdep->ops.ioctl = hda_hwdep_ioctl;
|
||||
@@ -118,7 +117,11 @@ int snd_hda_create_hwdep(struct hda_codec *codec)
|
||||
#endif
|
||||
|
||||
/* link to codec */
|
||||
hwdep->dev = &codec->dev;
|
||||
hwdep->dev.parent = &codec->dev;
|
||||
|
||||
/* for sysfs */
|
||||
hwdep->dev.groups = snd_hda_dev_attr_groups;
|
||||
dev_set_drvdata(&hwdep->dev, codec);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user