diff options
-rw-r--r-- | include/sound/core.h | 1 | ||||
-rw-r--r-- | sound/core/device.c | 2 | ||||
-rw-r--r-- | sound/core/sound.c | 11 |
3 files changed, 3 insertions, 11 deletions
diff --git a/include/sound/core.h b/include/sound/core.h index dbe7a2c30272..90ac6132ea3b 100644 --- a/include/sound/core.h +++ b/include/sound/core.h | |||
@@ -134,7 +134,6 @@ struct snd_card { | |||
134 | wait_queue_head_t shutdown_sleep; | 134 | wait_queue_head_t shutdown_sleep; |
135 | struct work_struct free_workq; /* for free in workqueue */ | 135 | struct work_struct free_workq; /* for free in workqueue */ |
136 | struct device *dev; | 136 | struct device *dev; |
137 | struct class_device *parent_device; | ||
138 | 137 | ||
139 | #ifdef CONFIG_PM | 138 | #ifdef CONFIG_PM |
140 | unsigned int power_state; /* power state */ | 139 | unsigned int power_state; /* power state */ |
diff --git a/sound/core/device.c b/sound/core/device.c index 478264cab67e..b1cf6ec56784 100644 --- a/sound/core/device.c +++ b/sound/core/device.c | |||
@@ -193,7 +193,7 @@ int snd_device_register_all(struct snd_card *card) | |||
193 | int err; | 193 | int err; |
194 | 194 | ||
195 | snd_assert(card != NULL, return -ENXIO); | 195 | snd_assert(card != NULL, return -ENXIO); |
196 | list_for_each_prev(list, &card->devices) { | 196 | list_for_each(list, &card->devices) { |
197 | dev = snd_device(list); | 197 | dev = snd_device(list); |
198 | if (dev->state == SNDRV_DEV_BUILD && dev->ops->dev_register) { | 198 | if (dev->state == SNDRV_DEV_BUILD && dev->ops->dev_register) { |
199 | if ((err = dev->ops->dev_register(dev)) < 0) | 199 | if ((err = dev->ops->dev_register(dev)) < 0) |
diff --git a/sound/core/sound.c b/sound/core/sound.c index 2f6108deb211..a8eda02bcf1c 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, | |||
245 | int minor; | 245 | int minor; |
246 | struct snd_minor *preg; | 246 | struct snd_minor *preg; |
247 | struct device *device = NULL; | 247 | struct device *device = NULL; |
248 | struct class_device *class_device = NULL; | ||
249 | 248 | ||
250 | snd_assert(name, return -EINVAL); | 249 | snd_assert(name, return -EINVAL); |
251 | preg = kmalloc(sizeof(struct snd_minor) + strlen(name) + 1, GFP_KERNEL); | 250 | 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, | |||
273 | snd_minors[minor] = preg; | 272 | snd_minors[minor] = preg; |
274 | if (type != SNDRV_DEVICE_TYPE_CONTROL || preg->card >= cards_limit) | 273 | if (type != SNDRV_DEVICE_TYPE_CONTROL || preg->card >= cards_limit) |
275 | devfs_mk_cdev(MKDEV(major, minor), S_IFCHR | device_mode, "snd/%s", name); | 274 | devfs_mk_cdev(MKDEV(major, minor), S_IFCHR | device_mode, "snd/%s", name); |
276 | if (card) { | 275 | if (card) |
277 | device = card->dev; | 276 | device = card->dev; |
278 | class_device = card->parent_device; | 277 | class_device_create(sound_class, NULL, MKDEV(major, minor), device, "%s", name); |
279 | } | ||
280 | class_device = class_device_create(sound_class, class_device, | ||
281 | MKDEV(major, minor), device, | ||
282 | "%s", name); | ||
283 | if (type == SNDRV_DEVICE_TYPE_CONTROL) | ||
284 | card->parent_device = class_device; | ||
285 | 278 | ||
286 | up(&sound_mutex); | 279 | up(&sound_mutex); |
287 | return 0; | 280 | return 0; |