diff options
Diffstat (limited to 'sound/oss/ac97_codec.c')
-rw-r--r-- | sound/oss/ac97_codec.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/sound/oss/ac97_codec.c b/sound/oss/ac97_codec.c index fd25aca25120..972327c97644 100644 --- a/sound/oss/ac97_codec.c +++ b/sound/oss/ac97_codec.c | |||
@@ -55,7 +55,7 @@ | |||
55 | #include <linux/pci.h> | 55 | #include <linux/pci.h> |
56 | #include <linux/ac97_codec.h> | 56 | #include <linux/ac97_codec.h> |
57 | #include <asm/uaccess.h> | 57 | #include <asm/uaccess.h> |
58 | #include <asm/semaphore.h> | 58 | #include <linux/mutex.h> |
59 | 59 | ||
60 | #define CODEC_ID_BUFSZ 14 | 60 | #define CODEC_ID_BUFSZ 14 |
61 | 61 | ||
@@ -304,7 +304,7 @@ static const unsigned int ac97_oss_rm[] = { | |||
304 | 304 | ||
305 | static LIST_HEAD(codecs); | 305 | static LIST_HEAD(codecs); |
306 | static LIST_HEAD(codec_drivers); | 306 | static LIST_HEAD(codec_drivers); |
307 | static DECLARE_MUTEX(codec_sem); | 307 | static DEFINE_MUTEX(codec_mutex); |
308 | 308 | ||
309 | /* reads the given OSS mixer from the ac97 the caller must have insured that the ac97 knows | 309 | /* reads the given OSS mixer from the ac97 the caller must have insured that the ac97 knows |
310 | about that given mixer, and should be holding a spinlock for the card */ | 310 | about that given mixer, and should be holding a spinlock for the card */ |
@@ -769,9 +769,9 @@ void ac97_release_codec(struct ac97_codec *codec) | |||
769 | { | 769 | { |
770 | /* Remove from the list first, we don't want to be | 770 | /* Remove from the list first, we don't want to be |
771 | "rediscovered" */ | 771 | "rediscovered" */ |
772 | down(&codec_sem); | 772 | mutex_lock(&codec_mutex); |
773 | list_del(&codec->list); | 773 | list_del(&codec->list); |
774 | up(&codec_sem); | 774 | mutex_unlock(&codec_mutex); |
775 | /* | 775 | /* |
776 | * The driver needs to deal with internal | 776 | * The driver needs to deal with internal |
777 | * locking to avoid accidents here. | 777 | * locking to avoid accidents here. |
@@ -889,7 +889,7 @@ int ac97_probe_codec(struct ac97_codec *codec) | |||
889 | * callbacks. | 889 | * callbacks. |
890 | */ | 890 | */ |
891 | 891 | ||
892 | down(&codec_sem); | 892 | mutex_lock(&codec_mutex); |
893 | list_add(&codec->list, &codecs); | 893 | list_add(&codec->list, &codecs); |
894 | 894 | ||
895 | list_for_each(l, &codec_drivers) { | 895 | list_for_each(l, &codec_drivers) { |
@@ -903,7 +903,7 @@ int ac97_probe_codec(struct ac97_codec *codec) | |||
903 | } | 903 | } |
904 | } | 904 | } |
905 | 905 | ||
906 | up(&codec_sem); | 906 | mutex_unlock(&codec_mutex); |
907 | return 1; | 907 | return 1; |
908 | } | 908 | } |
909 | 909 | ||
@@ -1439,7 +1439,7 @@ int ac97_register_driver(struct ac97_driver *driver) | |||
1439 | struct list_head *l; | 1439 | struct list_head *l; |
1440 | struct ac97_codec *c; | 1440 | struct ac97_codec *c; |
1441 | 1441 | ||
1442 | down(&codec_sem); | 1442 | mutex_lock(&codec_mutex); |
1443 | INIT_LIST_HEAD(&driver->list); | 1443 | INIT_LIST_HEAD(&driver->list); |
1444 | list_add(&driver->list, &codec_drivers); | 1444 | list_add(&driver->list, &codec_drivers); |
1445 | 1445 | ||
@@ -1452,7 +1452,7 @@ int ac97_register_driver(struct ac97_driver *driver) | |||
1452 | continue; | 1452 | continue; |
1453 | c->driver = driver; | 1453 | c->driver = driver; |
1454 | } | 1454 | } |
1455 | up(&codec_sem); | 1455 | mutex_unlock(&codec_mutex); |
1456 | return 0; | 1456 | return 0; |
1457 | } | 1457 | } |
1458 | 1458 | ||
@@ -1471,7 +1471,7 @@ void ac97_unregister_driver(struct ac97_driver *driver) | |||
1471 | struct list_head *l; | 1471 | struct list_head *l; |
1472 | struct ac97_codec *c; | 1472 | struct ac97_codec *c; |
1473 | 1473 | ||
1474 | down(&codec_sem); | 1474 | mutex_lock(&codec_mutex); |
1475 | list_del_init(&driver->list); | 1475 | list_del_init(&driver->list); |
1476 | 1476 | ||
1477 | list_for_each(l, &codecs) | 1477 | list_for_each(l, &codecs) |
@@ -1483,7 +1483,7 @@ void ac97_unregister_driver(struct ac97_driver *driver) | |||
1483 | } | 1483 | } |
1484 | } | 1484 | } |
1485 | 1485 | ||
1486 | up(&codec_sem); | 1486 | mutex_unlock(&codec_mutex); |
1487 | } | 1487 | } |
1488 | 1488 | ||
1489 | EXPORT_SYMBOL_GPL(ac97_unregister_driver); | 1489 | EXPORT_SYMBOL_GPL(ac97_unregister_driver); |
@@ -1494,14 +1494,14 @@ static int swap_headphone(int remove_master) | |||
1494 | struct ac97_codec *c; | 1494 | struct ac97_codec *c; |
1495 | 1495 | ||
1496 | if (remove_master) { | 1496 | if (remove_master) { |
1497 | down(&codec_sem); | 1497 | mutex_lock(&codec_mutex); |
1498 | list_for_each(l, &codecs) | 1498 | list_for_each(l, &codecs) |
1499 | { | 1499 | { |
1500 | c = list_entry(l, struct ac97_codec, list); | 1500 | c = list_entry(l, struct ac97_codec, list); |
1501 | if (supported_mixer(c, SOUND_MIXER_PHONEOUT)) | 1501 | if (supported_mixer(c, SOUND_MIXER_PHONEOUT)) |
1502 | c->supported_mixers &= ~SOUND_MASK_PHONEOUT; | 1502 | c->supported_mixers &= ~SOUND_MASK_PHONEOUT; |
1503 | } | 1503 | } |
1504 | up(&codec_sem); | 1504 | mutex_unlock(&codec_mutex); |
1505 | } else | 1505 | } else |
1506 | ac97_hw[SOUND_MIXER_PHONEOUT].offset = AC97_MASTER_VOL_STEREO; | 1506 | ac97_hw[SOUND_MIXER_PHONEOUT].offset = AC97_MASTER_VOL_STEREO; |
1507 | 1507 | ||