diff --git a/include/sound/core.h b/include/sound/core.h index dbe7a2c302723f06a34bcf393fedb71d15eba59b..90ac6132ea3bced84ced0246e9af8a274313036e 100644 --- a/include/sound/core.h +++ b/include/sound/core.h @@ -134,7 +134,6 @@ struct snd_card { wait_queue_head_t shutdown_sleep; struct work_struct free_workq; /* for free in workqueue */ struct device *dev; - struct class_device *parent_device; #ifdef CONFIG_PM unsigned int power_state; /* power state */ diff --git a/sound/core/device.c b/sound/core/device.c index 478264cab67e4dea95ea9abad17561fc9756699f..b1cf6ec567848bd4620e22c8224adbf687489b84 100644 --- a/sound/core/device.c +++ b/sound/core/device.c @@ -193,7 +193,7 @@ int snd_device_register_all(struct snd_card *card) int err; snd_assert(card != NULL, return -ENXIO); - list_for_each_prev(list, &card->devices) { + list_for_each(list, &card->devices) { dev = snd_device(list); if (dev->state == SNDRV_DEV_BUILD && dev->ops->dev_register) { if ((err = dev->ops->dev_register(dev)) < 0) diff --git a/sound/core/sound.c b/sound/core/sound.c index 2f6108deb2116e434d1c55f6f8308706c91b0ac0..a8eda02bcf1c0fe886b922ac0b628f7152a52921 100644 --- a/sound/core/sound.c +++ b/sound/core/sound.c @@ -245,7 +245,6 @@ int snd_register_device(int type, struct snd_card *card, int dev, int minor; struct snd_minor *preg; struct device *device = NULL; - struct class_device *class_device = NULL; snd_assert(name, return -EINVAL); preg = kmalloc(sizeof(struct snd_minor) + strlen(name) + 1, GFP_KERNEL); @@ -273,15 +272,9 @@ int snd_register_device(int type, struct snd_card *card, int dev, snd_minors[minor] = preg; if (type != SNDRV_DEVICE_TYPE_CONTROL || preg->card >= cards_limit) devfs_mk_cdev(MKDEV(major, minor), S_IFCHR | device_mode, "snd/%s", name); - if (card) { + if (card) device = card->dev; - class_device = card->parent_device; - } - class_device = class_device_create(sound_class, class_device, - MKDEV(major, minor), device, - "%s", name); - if (type == SNDRV_DEVICE_TYPE_CONTROL) - card->parent_device = class_device; + class_device_create(sound_class, NULL, MKDEV(major, minor), device, "%s", name); up(&sound_mutex); return 0;