mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
Driver core: convert sound core to use struct device
Converts from using struct "class_device" to "struct device" making everything show up properly in /sys/devices/ with symlinks from the /sys/class directory. It also makes the struct sound_card to show up as a "real" device where all the different sound class devices are placed as childs and different card attribute files can hang off of. /sys/class/sound is still a flat directory, but the symlink targets of all devices belonging to the same card, point the the /sys/devices tree below the new card device object. Thanks to Kay for the updates to this patch. Signed-off-by: Kay Sievers <kay.sievers@novell.com> Acked-by: Jaroslav Kysela <perex@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
ebf644c462
commit
d80f19fab8
6 changed files with 37 additions and 30 deletions
|
@ -132,6 +132,7 @@ struct snd_card {
|
|||
int shutdown; /* this card is going down */
|
||||
int free_on_last_close; /* free in context of file_release */
|
||||
wait_queue_head_t shutdown_sleep;
|
||||
struct device *parent;
|
||||
struct device *dev;
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -187,13 +188,14 @@ struct snd_minor {
|
|||
int device; /* device number */
|
||||
const struct file_operations *f_ops; /* file operations */
|
||||
void *private_data; /* private data for f_ops->open */
|
||||
struct class_device *class_dev; /* class device for sysfs */
|
||||
struct device *dev; /* device for sysfs */
|
||||
};
|
||||
|
||||
/* sound.c */
|
||||
|
||||
extern int snd_major;
|
||||
extern int snd_ecards_limit;
|
||||
extern struct class *sound_class;
|
||||
|
||||
void snd_request_card(int card);
|
||||
|
||||
|
@ -203,7 +205,7 @@ int snd_register_device(int type, struct snd_card *card, int dev,
|
|||
int snd_unregister_device(int type, struct snd_card *card, int dev);
|
||||
void *snd_lookup_minor_data(unsigned int minor, int type);
|
||||
int snd_add_device_sysfs_file(int type, struct snd_card *card, int dev,
|
||||
const struct class_device_attribute *attr);
|
||||
struct device_attribute *attr);
|
||||
|
||||
#ifdef CONFIG_SND_OSSEMUL
|
||||
int snd_register_oss_device(int type, struct snd_card *card, int dev,
|
||||
|
@ -255,7 +257,7 @@ int snd_card_file_add(struct snd_card *card, struct file *file);
|
|||
int snd_card_file_remove(struct snd_card *card, struct file *file);
|
||||
|
||||
#ifndef snd_card_set_dev
|
||||
#define snd_card_set_dev(card,devptr) ((card)->dev = (devptr))
|
||||
#define snd_card_set_dev(card,devptr) ((card)->parent = (devptr))
|
||||
#endif
|
||||
|
||||
/* device.c */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue