X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=sound%2Foss%2Fac97_codec.c;h=fef56cac06c832650db596299af04185dc9919dc;hb=9121106a7f149f9702ed7c2ac0d86e9feb54ede8;hp=972327c97644f29bd37c09d0de4639ea3f9fb56f;hpb=e93252faca2eb1a14b44369705be7c79eba2f037;p=linux-2.6-omap-h63xx.git diff --git a/sound/oss/ac97_codec.c b/sound/oss/ac97_codec.c index 972327c9764..fef56cac06c 100644 --- a/sound/oss/ac97_codec.c +++ b/sound/oss/ac97_codec.c @@ -744,11 +744,10 @@ static int ac97_check_modem(struct ac97_codec *codec) struct ac97_codec *ac97_alloc_codec(void) { - struct ac97_codec *codec = kmalloc(sizeof(struct ac97_codec), GFP_KERNEL); + struct ac97_codec *codec = kzalloc(sizeof(struct ac97_codec), GFP_KERNEL); if(!codec) return NULL; - memset(codec, 0, sizeof(*codec)); spin_lock_init(&codec->lock); INIT_LIST_HEAD(&codec->list); return codec; @@ -1399,95 +1398,6 @@ unsigned int ac97_set_adc_rate(struct ac97_codec *codec, unsigned int rate) EXPORT_SYMBOL(ac97_set_adc_rate); -int ac97_save_state(struct ac97_codec *codec) -{ - return 0; -} - -EXPORT_SYMBOL(ac97_save_state); - -int ac97_restore_state(struct ac97_codec *codec) -{ - int i; - unsigned int left, right, val; - - for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if (!supported_mixer(codec, i)) - continue; - - val = codec->mixer_state[i]; - right = val >> 8; - left = val & 0xff; - codec->write_mixer(codec, i, left, right); - } - return 0; -} - -EXPORT_SYMBOL(ac97_restore_state); - -/** - * ac97_register_driver - register a codec helper - * @driver: Driver handler - * - * Register a handler for codecs matching the codec id. The handler - * attach function is called for all present codecs and will be - * called when new codecs are discovered. - */ - -int ac97_register_driver(struct ac97_driver *driver) -{ - struct list_head *l; - struct ac97_codec *c; - - mutex_lock(&codec_mutex); - INIT_LIST_HEAD(&driver->list); - list_add(&driver->list, &codec_drivers); - - list_for_each(l, &codecs) - { - c = list_entry(l, struct ac97_codec, list); - if(c->driver != NULL || ((c->model ^ driver->codec_id) & driver->codec_mask)) - continue; - if(driver->probe(c, driver)) - continue; - c->driver = driver; - } - mutex_unlock(&codec_mutex); - return 0; -} - -EXPORT_SYMBOL_GPL(ac97_register_driver); - -/** - * ac97_unregister_driver - unregister a codec helper - * @driver: Driver handler - * - * Unregister a handler for codecs matching the codec id. The handler - * remove function is called for all matching codecs. - */ - -void ac97_unregister_driver(struct ac97_driver *driver) -{ - struct list_head *l; - struct ac97_codec *c; - - mutex_lock(&codec_mutex); - list_del_init(&driver->list); - - list_for_each(l, &codecs) - { - c = list_entry(l, struct ac97_codec, list); - if (c->driver == driver) { - driver->remove(c, driver); - c->driver = NULL; - } - } - - mutex_unlock(&codec_mutex); -} - -EXPORT_SYMBOL_GPL(ac97_unregister_driver); - static int swap_headphone(int remove_master) { struct list_head *l;