lkml.org 
[lkml]   [2004]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] add sysfs class support for OSS sound devices [07/10]

    This patch adds support for all OSS sound devices.

    This patch is based on a work originally written by
    Leann Ogasawara <ogasawara@osdl.org>



    diff -Nru a/sound/oss/soundcard.c b/sound/oss/soundcard.c
    --- a/sound/oss/soundcard.c Thu Jan 15 11:06:01 2004
    +++ b/sound/oss/soundcard.c Thu Jan 15 11:06:01 2004
    @@ -73,6 +73,7 @@


    unsigned long seq_time = 0; /* Time for /dev/sequencer */
    +extern struct class_simple *sound_class;

    /*
    * Table for configurable mixer volume handling
    @@ -569,6 +570,9 @@
    devfs_mk_cdev(MKDEV(SOUND_MAJOR, dev_list[i].minor),
    S_IFCHR | dev_list[i].mode,
    "sound/%s", dev_list[i].name);
    + class_simple_device_add(sound_class,
    + MKDEV(SOUND_MAJOR, dev_list[i].minor),
    + NULL, "%s", dev_list[i].name);

    if (!dev_list[i].num)
    continue;
    @@ -578,6 +582,10 @@
    dev_list[i].minor + (j*0x10)),
    S_IFCHR | dev_list[i].mode,
    "sound/%s%d", dev_list[i].name, j);
    + class_simple_device_add(sound_class,
    + MKDEV(SOUND_MAJOR, dev_list[i].minor + (j*0x10)),
    + NULL,
    + "%s%d", dev_list[i].name, j);
    }
    }

    @@ -593,10 +601,13 @@

    for (i = 0; i < sizeof (dev_list) / sizeof *dev_list; i++) {
    devfs_remove("sound/%s", dev_list[i].name);
    + class_simple_device_remove(MKDEV(SOUND_MAJOR, dev_list[i].minor));
    if (!dev_list[i].num)
    continue;
    - for (j = 1; j < *dev_list[i].num; j++)
    + for (j = 1; j < *dev_list[i].num; j++) {
    devfs_remove("sound/%s%d", dev_list[i].name, j);
    + class_simple_device_remove(MKDEV(SOUND_MAJOR, dev_list[i].minor + (j*0x10)));
    + }
    }

    unregister_sound_special(1);
    diff -Nru a/sound/sound_core.c b/sound/sound_core.c
    --- a/sound/sound_core.c Thu Jan 15 11:05:56 2004
    +++ b/sound/sound_core.c Thu Jan 15 11:05:56 2004
    @@ -65,6 +65,9 @@
    extern int msnd_pinnacle_init(void);
    #endif

    +struct class_simple *sound_class;
    +EXPORT_SYMBOL(sound_class);
    +
    /*
    * Low level list operator. Scan the ordered list, find a hole and
    * join into it. Called with the lock asserted
    @@ -171,6 +174,8 @@

    devfs_mk_cdev(MKDEV(SOUND_MAJOR, s->unit_minor),
    S_IFCHR | mode, s->name);
    + class_simple_device_add(sound_class, MKDEV(SOUND_MAJOR, s->unit_minor),
    + NULL, s->name+6);
    return r;

    fail:
    @@ -193,6 +198,7 @@
    spin_unlock(&sound_loader_lock);
    if (p) {
    devfs_remove(p->name);
    + class_simple_device_remove(MKDEV(SOUND_MAJOR, p->unit_minor));
    kfree(p);
    }
    }
    @@ -556,6 +562,7 @@
    empty */
    unregister_chrdev(SOUND_MAJOR, "sound");
    devfs_remove("sound");
    + class_simple_destroy(sound_class);
    }

    static int __init init_soundcore(void)
    @@ -565,6 +572,9 @@
    return -EBUSY;
    }
    devfs_mk_dir ("sound");
    + sound_class = class_simple_create(THIS_MODULE, "sound");
    + if (IS_ERR(sound_class))
    + return PTR_ERR(sound_class);

    return 0;
    }
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-03-22 14:00    [from the cache]
    ©2003-2011 Jasper Spaans