diff options
author | Olaf Hering <olaf@aepfle.de> | 2006-12-07 02:24:12 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-09 03:02:20 -0500 |
commit | 61e77107fa849b69f50ebe96217ba3468a216ba8 (patch) | |
tree | f5de025be0eccc997f6b1f1bd0a3d511855b3276 /sound | |
parent | e0e6ce0380e0c4de35371372bc5b6c2b02458597 (diff) |
[ALSA] create device symlink in snd-aoa
create sysfs device symlinks for snd-aoa in /sys/class/sound/controlC0 This
allows hald to recognize the device as sound device. Furthermore it allows
the desktop user to actually access the sound device nodes. hald and
related packages will modify the acl attributes.
Fixes https://bugzilla.novell.com/show_bug.cgi?id=106294
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/aoa/aoa.h | 2 | ||||
-rw-r--r-- | sound/aoa/core/snd-aoa-alsa.c | 3 | ||||
-rw-r--r-- | sound/aoa/core/snd-aoa-alsa.h | 2 | ||||
-rw-r--r-- | sound/aoa/core/snd-aoa-core.c | 4 | ||||
-rw-r--r-- | sound/aoa/fabrics/snd-aoa-fabric-layout.c | 2 |
5 files changed, 7 insertions, 6 deletions
diff --git a/sound/aoa/aoa.h b/sound/aoa/aoa.h index 378ef1e987..541b908f3c 100644 --- a/sound/aoa/aoa.h +++ b/sound/aoa/aoa.h | |||
@@ -99,7 +99,7 @@ struct aoa_fabric { | |||
99 | * that are not assigned yet are passed to the fabric | 99 | * that are not assigned yet are passed to the fabric |
100 | * again for reconsideration. */ | 100 | * again for reconsideration. */ |
101 | extern int | 101 | extern int |
102 | aoa_fabric_register(struct aoa_fabric *fabric); | 102 | aoa_fabric_register(struct aoa_fabric *fabric, struct device *dev); |
103 | 103 | ||
104 | /* it is vital to call this when the fabric exits! | 104 | /* it is vital to call this when the fabric exits! |
105 | * When calling, the remove_codec will be called | 105 | * When calling, the remove_codec will be called |
diff --git a/sound/aoa/core/snd-aoa-alsa.c b/sound/aoa/core/snd-aoa-alsa.c index 8c5a19bd60..17fe689ed2 100644 --- a/sound/aoa/core/snd-aoa-alsa.c +++ b/sound/aoa/core/snd-aoa-alsa.c | |||
@@ -14,7 +14,7 @@ MODULE_PARM_DESC(index, "index for AOA sound card."); | |||
14 | 14 | ||
15 | static struct aoa_card *aoa_card; | 15 | static struct aoa_card *aoa_card; |
16 | 16 | ||
17 | int aoa_alsa_init(char *name, struct module *mod) | 17 | int aoa_alsa_init(char *name, struct module *mod, struct device *dev) |
18 | { | 18 | { |
19 | struct snd_card *alsa_card; | 19 | struct snd_card *alsa_card; |
20 | int err; | 20 | int err; |
@@ -28,6 +28,7 @@ int aoa_alsa_init(char *name, struct module *mod) | |||
28 | return -ENOMEM; | 28 | return -ENOMEM; |
29 | aoa_card = alsa_card->private_data; | 29 | aoa_card = alsa_card->private_data; |
30 | aoa_card->alsa_card = alsa_card; | 30 | aoa_card->alsa_card = alsa_card; |
31 | alsa_card->dev = dev; | ||
31 | strlcpy(alsa_card->driver, "AppleOnbdAudio", sizeof(alsa_card->driver)); | 32 | strlcpy(alsa_card->driver, "AppleOnbdAudio", sizeof(alsa_card->driver)); |
32 | strlcpy(alsa_card->shortname, name, sizeof(alsa_card->shortname)); | 33 | strlcpy(alsa_card->shortname, name, sizeof(alsa_card->shortname)); |
33 | strlcpy(alsa_card->longname, name, sizeof(alsa_card->longname)); | 34 | strlcpy(alsa_card->longname, name, sizeof(alsa_card->longname)); |
diff --git a/sound/aoa/core/snd-aoa-alsa.h b/sound/aoa/core/snd-aoa-alsa.h index 660d2f1793..9669e4489c 100644 --- a/sound/aoa/core/snd-aoa-alsa.h +++ b/sound/aoa/core/snd-aoa-alsa.h | |||
@@ -10,7 +10,7 @@ | |||
10 | #define __SND_AOA_ALSA_H | 10 | #define __SND_AOA_ALSA_H |
11 | #include "../aoa.h" | 11 | #include "../aoa.h" |
12 | 12 | ||
13 | extern int aoa_alsa_init(char *name, struct module *mod); | 13 | extern int aoa_alsa_init(char *name, struct module *mod, struct device *dev); |
14 | extern void aoa_alsa_cleanup(void); | 14 | extern void aoa_alsa_cleanup(void); |
15 | 15 | ||
16 | #endif /* __SND_AOA_ALSA_H */ | 16 | #endif /* __SND_AOA_ALSA_H */ |
diff --git a/sound/aoa/core/snd-aoa-core.c b/sound/aoa/core/snd-aoa-core.c index ecd2d8263f..19fdae4006 100644 --- a/sound/aoa/core/snd-aoa-core.c +++ b/sound/aoa/core/snd-aoa-core.c | |||
@@ -82,7 +82,7 @@ void aoa_codec_unregister(struct aoa_codec *codec) | |||
82 | } | 82 | } |
83 | EXPORT_SYMBOL_GPL(aoa_codec_unregister); | 83 | EXPORT_SYMBOL_GPL(aoa_codec_unregister); |
84 | 84 | ||
85 | int aoa_fabric_register(struct aoa_fabric *new_fabric) | 85 | int aoa_fabric_register(struct aoa_fabric *new_fabric, struct device *dev) |
86 | { | 86 | { |
87 | struct aoa_codec *c; | 87 | struct aoa_codec *c; |
88 | int err; | 88 | int err; |
@@ -98,7 +98,7 @@ int aoa_fabric_register(struct aoa_fabric *new_fabric) | |||
98 | if (!new_fabric) | 98 | if (!new_fabric) |
99 | return -EINVAL; | 99 | return -EINVAL; |
100 | 100 | ||
101 | err = aoa_alsa_init(new_fabric->name, new_fabric->owner); | 101 | err = aoa_alsa_init(new_fabric->name, new_fabric->owner, dev); |
102 | if (err) | 102 | if (err) |
103 | return err; | 103 | return err; |
104 | 104 | ||
diff --git a/sound/aoa/fabrics/snd-aoa-fabric-layout.c b/sound/aoa/fabrics/snd-aoa-fabric-layout.c index 172eb95476..4b8e32d1eb 100644 --- a/sound/aoa/fabrics/snd-aoa-fabric-layout.c +++ b/sound/aoa/fabrics/snd-aoa-fabric-layout.c | |||
@@ -1014,7 +1014,7 @@ static int aoa_fabric_layout_probe(struct soundbus_dev *sdev) | |||
1014 | 1014 | ||
1015 | ldev->gpio.methods->init(&ldev->gpio); | 1015 | ldev->gpio.methods->init(&ldev->gpio); |
1016 | 1016 | ||
1017 | err = aoa_fabric_register(&layout_fabric); | 1017 | err = aoa_fabric_register(&layout_fabric, &sdev->ofdev.dev); |
1018 | if (err && err != -EALREADY) { | 1018 | if (err && err != -EALREADY) { |
1019 | printk(KERN_INFO "snd-aoa-fabric-layout: can't use," | 1019 | printk(KERN_INFO "snd-aoa-fabric-layout: can't use," |
1020 | " another fabric is active!\n"); | 1020 | " another fabric is active!\n"); |