git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
sound
/
sparc
/
cs4231.c
diff --git
a/sound/sparc/cs4231.c
b/sound/sparc/cs4231.c
index
e581a02
..
f5956d5
100644
(file)
--- a/
sound/sparc/cs4231.c
+++ b/
sound/sparc/cs4231.c
@@
-8,7
+8,6
@@
* Copyright (c) by Jaroslav Kysela <perex@suse.cz>
*/
* Copyright (c) by Jaroslav Kysela <perex@suse.cz>
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
@@
-115,8
+114,8
@@
struct snd_cs4231 {
unsigned char image[32]; /* registers image */
int mce_bit;
int calibrate_mute;
unsigned char image[32]; /* registers image */
int mce_bit;
int calibrate_mute;
- struct
semaphore
mce_mutex;
- struct
semaphore
open_mutex;
+ struct
mutex
mce_mutex;
+ struct
mutex
open_mutex;
union {
#ifdef SBUS_SUPPORT
union {
#ifdef SBUS_SUPPORT
@@
-611,8
+610,7
@@
static void snd_cs4231_advance_dma(struct cs4231_dma_control *dma_cont,
unsigned int period_size = snd_pcm_lib_period_bytes(substream);
unsigned int offset = period_size * (*periods_sent);
unsigned int period_size = snd_pcm_lib_period_bytes(substream);
unsigned int offset = period_size * (*periods_sent);
- if (period_size >= (1 << 24))
- BUG();
+ BUG_ON(period_size >= (1 << 24));
if (dma_cont->request(dma_cont, runtime->dma_addr + offset, period_size))
return;
if (dma_cont->request(dma_cont, runtime->dma_addr + offset, period_size))
return;
@@
-775,7
+773,7
@@
static void snd_cs4231_playback_format(struct snd_cs4231 *chip, struct snd_pcm_h
{
unsigned long flags;
{
unsigned long flags;
-
down
(&chip->mce_mutex);
+
mutex_lock
(&chip->mce_mutex);
snd_cs4231_calibrate_mute(chip, 1);
snd_cs4231_mce_up(chip);
snd_cs4231_calibrate_mute(chip, 1);
snd_cs4231_mce_up(chip);
@@
-790,7
+788,7
@@
static void snd_cs4231_playback_format(struct snd_cs4231 *chip, struct snd_pcm_h
snd_cs4231_mce_down(chip);
snd_cs4231_calibrate_mute(chip, 0);
snd_cs4231_mce_down(chip);
snd_cs4231_calibrate_mute(chip, 0);
-
up
(&chip->mce_mutex);
+
mutex_unlock
(&chip->mce_mutex);
}
static void snd_cs4231_capture_format(struct snd_cs4231 *chip, struct snd_pcm_hw_params *params,
}
static void snd_cs4231_capture_format(struct snd_cs4231 *chip, struct snd_pcm_hw_params *params,
@@
-798,7
+796,7
@@
static void snd_cs4231_capture_format(struct snd_cs4231 *chip, struct snd_pcm_hw
{
unsigned long flags;
{
unsigned long flags;
-
down
(&chip->mce_mutex);
+
mutex_lock
(&chip->mce_mutex);
snd_cs4231_calibrate_mute(chip, 1);
snd_cs4231_mce_up(chip);
snd_cs4231_calibrate_mute(chip, 1);
snd_cs4231_mce_up(chip);
@@
-819,7
+817,7
@@
static void snd_cs4231_capture_format(struct snd_cs4231 *chip, struct snd_pcm_hw
snd_cs4231_mce_down(chip);
snd_cs4231_calibrate_mute(chip, 0);
snd_cs4231_mce_down(chip);
snd_cs4231_calibrate_mute(chip, 0);
-
up
(&chip->mce_mutex);
+
mutex_unlock
(&chip->mce_mutex);
}
/*
}
/*
@@
-933,14
+931,14
@@
static int snd_cs4231_open(struct snd_cs4231 *chip, unsigned int mode)
{
unsigned long flags;
{
unsigned long flags;
-
down
(&chip->open_mutex);
+
mutex_lock
(&chip->open_mutex);
if ((chip->mode & mode)) {
if ((chip->mode & mode)) {
-
up
(&chip->open_mutex);
+
mutex_unlock
(&chip->open_mutex);
return -EAGAIN;
}
if (chip->mode & CS4231_MODE_OPEN) {
chip->mode |= mode;
return -EAGAIN;
}
if (chip->mode & CS4231_MODE_OPEN) {
chip->mode |= mode;
-
up
(&chip->open_mutex);
+
mutex_unlock
(&chip->open_mutex);
return 0;
}
/* ok. now enable and ack CODEC IRQ */
return 0;
}
/* ok. now enable and ack CODEC IRQ */
@@
-960,7
+958,7
@@
static int snd_cs4231_open(struct snd_cs4231 *chip, unsigned int mode)
spin_unlock_irqrestore(&chip->lock, flags);
chip->mode = mode;
spin_unlock_irqrestore(&chip->lock, flags);
chip->mode = mode;
-
up
(&chip->open_mutex);
+
mutex_unlock
(&chip->open_mutex);
return 0;
}
return 0;
}
@@
-968,10
+966,10
@@
static void snd_cs4231_close(struct snd_cs4231 *chip, unsigned int mode)
{
unsigned long flags;
{
unsigned long flags;
-
down
(&chip->open_mutex);
+
mutex_lock
(&chip->open_mutex);
chip->mode &= ~mode;
if (chip->mode & CS4231_MODE_OPEN) {
chip->mode &= ~mode;
if (chip->mode & CS4231_MODE_OPEN) {
-
up
(&chip->open_mutex);
+
mutex_unlock
(&chip->open_mutex);
return;
}
snd_cs4231_calibrate_mute(chip, 1);
return;
}
snd_cs4231_calibrate_mute(chip, 1);
@@
-1008,7
+1006,7
@@
static void snd_cs4231_close(struct snd_cs4231 *chip, unsigned int mode)
snd_cs4231_calibrate_mute(chip, 0);
chip->mode = 0;
snd_cs4231_calibrate_mute(chip, 0);
chip->mode = 0;
-
up
(&chip->open_mutex);
+
mutex_unlock
(&chip->open_mutex);
}
/*
}
/*
@@
-1079,8
+1077,7
@@
static int snd_cs4231_playback_prepare(struct snd_pcm_substream *substream)
chip->image[CS4231_IFACE_CTRL] &= ~(CS4231_PLAYBACK_ENABLE |
CS4231_PLAYBACK_PIO);
chip->image[CS4231_IFACE_CTRL] &= ~(CS4231_PLAYBACK_ENABLE |
CS4231_PLAYBACK_PIO);
- if (runtime->period_size > 0xffff + 1)
- BUG();
+ BUG_ON(runtime->period_size > 0xffff + 1);
chip->p_periods_sent = 0;
spin_unlock_irqrestore(&chip->lock, flags);
chip->p_periods_sent = 0;
spin_unlock_irqrestore(&chip->lock, flags);
@@
-1756,7
+1753,7
@@
out_err:
#ifdef SBUS_SUPPORT
#ifdef SBUS_SUPPORT
-static irqreturn_t snd_cs4231_sbus_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t snd_cs4231_sbus_interrupt(int irq, void *dev_id)
{
unsigned long flags;
unsigned char status;
{
unsigned long flags;
unsigned char status;
@@
-1967,8
+1964,8
@@
static int __init snd_cs4231_sbus_create(struct snd_card *card,
spin_lock_init(&chip->lock);
spin_lock_init(&chip->c_dma.sbus_info.lock);
spin_lock_init(&chip->p_dma.sbus_info.lock);
spin_lock_init(&chip->lock);
spin_lock_init(&chip->c_dma.sbus_info.lock);
spin_lock_init(&chip->p_dma.sbus_info.lock);
-
init_MUTEX
(&chip->mce_mutex);
-
init_MUTEX
(&chip->open_mutex);
+
mutex_init
(&chip->mce_mutex);
+
mutex_init
(&chip->open_mutex);
chip->card = card;
chip->dev_u.sdev = sdev;
chip->regs_size = sdev->reg_addrs[0].reg_size;
chip->card = card;
chip->dev_u.sdev = sdev;
chip->regs_size = sdev->reg_addrs[0].reg_size;
@@
-2002,10
+1999,9
@@
static int __init snd_cs4231_sbus_create(struct snd_card *card,
chip->c_dma.preallocate = sbus_dma_preallocate;
if (request_irq(sdev->irqs[0], snd_cs4231_sbus_interrupt,
chip->c_dma.preallocate = sbus_dma_preallocate;
if (request_irq(sdev->irqs[0], snd_cs4231_sbus_interrupt,
- SA_SHIRQ, "cs4231", chip)) {
- snd_printdd("cs4231-%d: Unable to grab SBUS IRQ %s\n",
- dev,
- __irq_itoa(sdev->irqs[0]));
+ IRQF_SHARED, "cs4231", chip)) {
+ snd_printdd("cs4231-%d: Unable to grab SBUS IRQ %d\n",
+ dev, sdev->irqs[0]);
snd_cs4231_sbus_free(chip);
return -EBUSY;
}
snd_cs4231_sbus_free(chip);
return -EBUSY;
}
@@
-2038,11
+2034,11
@@
static int __init cs4231_sbus_attach(struct sbus_dev *sdev)
if (err)
return err;
if (err)
return err;
- sprintf(card->longname, "%s at 0x%02lx:0x%0
8lx, irq %s
",
+ sprintf(card->longname, "%s at 0x%02lx:0x%0
16Lx, irq %d
",
card->shortname,
rp->flags & 0xffL,
card->shortname,
rp->flags & 0xffL,
- rp->start,
-
__irq_itoa(sdev->irqs[0])
);
+
(unsigned long long)
rp->start,
+
sdev->irqs[0]
);
if ((err = snd_cs4231_sbus_create(card, sdev, dev, &cp)) < 0) {
snd_card_free(card);
if ((err = snd_cs4231_sbus_create(card, sdev, dev, &cp)) < 0) {
snd_card_free(card);
@@
-2155,8
+2151,8
@@
static int __init snd_cs4231_ebus_create(struct snd_card *card,
spin_lock_init(&chip->lock);
spin_lock_init(&chip->c_dma.ebus_info.lock);
spin_lock_init(&chip->p_dma.ebus_info.lock);
spin_lock_init(&chip->lock);
spin_lock_init(&chip->c_dma.ebus_info.lock);
spin_lock_init(&chip->p_dma.ebus_info.lock);
-
init_MUTEX
(&chip->mce_mutex);
-
init_MUTEX
(&chip->open_mutex);
+
mutex_init
(&chip->mce_mutex);
+
mutex_init
(&chip->open_mutex);
chip->flags |= CS4231_FLAG_EBUS;
chip->card = card;
chip->dev_u.pdev = edev->bus->self;
chip->flags |= CS4231_FLAG_EBUS;
chip->card = card;
chip->dev_u.pdev = edev->bus->self;
@@
-2244,10
+2240,10
@@
static int __init cs4231_ebus_attach(struct linux_ebus_device *edev)
if (err)
return err;
if (err)
return err;
- sprintf(card->longname, "%s at 0x%lx, irq %
s
",
+ sprintf(card->longname, "%s at 0x%lx, irq %
d
",
card->shortname,
edev->resource[0].start,
card->shortname,
edev->resource[0].start,
-
__irq_itoa(edev->irqs[0])
);
+
edev->irqs[0]
);
if ((err = snd_cs4231_ebus_create(card, edev, dev, &chip)) < 0) {
snd_card_free(card);
if ((err = snd_cs4231_ebus_create(card, edev, dev, &chip)) < 0) {
snd_card_free(card);
@@
-2285,15
+2281,14
@@
static int __init cs4231_init(void)
for_each_ebusdev(edev, ebus) {
int match = 0;
for_each_ebusdev(edev, ebus) {
int match = 0;
- if (!strcmp(edev->prom_name, "SUNW,CS4231")) {
+ if (!strcmp(edev->prom_n
ode->n
ame, "SUNW,CS4231")) {
match = 1;
match = 1;
- } else if (!strcmp(edev->prom_name, "audio")) {
- char
compat[16]
;
+ } else if (!strcmp(edev->prom_n
ode->n
ame, "audio")) {
+ char
*compat
;
- prom_getstring(edev->prom_node, "compatible",
- compat, sizeof(compat));
- compat[15] = '\0';
- if (!strcmp(compat, "SUNW,CS4231"))
+ compat = of_get_property(edev->prom_node,
+ "compatible", NULL);
+ if (compat && !strcmp(compat, "SUNW,CS4231"))
match = 1;
}
match = 1;
}