git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] irq-flags: sound: Use the new IRQF_ constants
[pandora-kernel.git]
/
sound
/
isa
/
ad1816a
/
ad1816a.c
diff --git
a/sound/isa/ad1816a/ad1816a.c
b/sound/isa/ad1816a/ad1816a.c
index
0eb442c
..
b33a5fb
100644
(file)
--- a/
sound/isa/ad1816a/ad1816a.c
+++ b/
sound/isa/ad1816a/ad1816a.c
@@
-188,10
+188,10
@@
static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
const struct pnp_card_device_id *pid)
{
int error;
const struct pnp_card_device_id *pid)
{
int error;
- s
nd_card_t
*card;
+ s
truct snd_card
*card;
struct snd_card_ad1816a *acard;
struct snd_card_ad1816a *acard;
-
ad1816a_t
*chip;
-
opl3_t
*opl3;
+
struct snd_ad1816a
*chip;
+
struct snd_opl3
*opl3;
if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_card_ad1816a))) == NULL)
if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_card_ad1816a))) == NULL)
@@
-232,7
+232,7
@@
static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
if (mpu_port[dev] > 0) {
if (snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401,
if (mpu_port[dev] > 0) {
if (snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401,
- mpu_port[dev], 0, mpu_irq[dev],
SA_INTERRUPT
,
+ mpu_port[dev], 0, mpu_irq[dev],
IRQF_DISABLED
,
NULL) < 0)
printk(KERN_ERR PFX "no MPU-401 device at 0x%lx.\n", mpu_port[dev]);
}
NULL) < 0)
printk(KERN_ERR PFX "no MPU-401 device at 0x%lx.\n", mpu_port[dev]);
}
@@
-262,6
+262,8
@@
static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
return 0;
}
return 0;
}
+static unsigned int __devinitdata ad1816a_devices;
+
static int __devinit snd_ad1816a_pnp_detect(struct pnp_card_link *card,
const struct pnp_card_device_id *id)
{
static int __devinit snd_ad1816a_pnp_detect(struct pnp_card_link *card,
const struct pnp_card_device_id *id)
{
@@
-275,6
+277,7
@@
static int __devinit snd_ad1816a_pnp_detect(struct pnp_card_link *card,
if (res < 0)
return res;
dev++;
if (res < 0)
return res;
dev++;
+ ad1816a_devices++;
return 0;
}
return -ENODEV;
return 0;
}
return -ENODEV;
@@
-282,10
+285,8
@@
static int __devinit snd_ad1816a_pnp_detect(struct pnp_card_link *card,
static void __devexit snd_ad1816a_pnp_remove(struct pnp_card_link * pcard)
{
static void __devexit snd_ad1816a_pnp_remove(struct pnp_card_link * pcard)
{
- snd_card_t *card = (snd_card_t *) pnp_get_card_drvdata(pcard);
-
- snd_card_disconnect(card);
- snd_card_free_in_thread(card);
+ snd_card_free(pnp_get_card_drvdata(pcard));
+ pnp_set_card_drvdata(pcard, NULL);
}
static struct pnp_card_driver ad1816a_pnpc_driver = {
}
static struct pnp_card_driver ad1816a_pnpc_driver = {
@@
-294,20
+295,25
@@
static struct pnp_card_driver ad1816a_pnpc_driver = {
.id_table = snd_ad1816a_pnpids,
.probe = snd_ad1816a_pnp_detect,
.remove = __devexit_p(snd_ad1816a_pnp_remove),
.id_table = snd_ad1816a_pnpids,
.probe = snd_ad1816a_pnp_detect,
.remove = __devexit_p(snd_ad1816a_pnp_remove),
+ /* FIXME: suspend/resume */
};
static int __init alsa_card_ad1816a_init(void)
{
};
static int __init alsa_card_ad1816a_init(void)
{
- int
cards = 0
;
+ int
err
;
- cards += pnp_register_card_driver(&ad1816a_pnpc_driver);
-#ifdef MODULE
- if (!cards) {
+ err = pnp_register_card_driver(&ad1816a_pnpc_driver);
+ if (err)
+ return err;
+
+ if (!ad1816a_devices) {
pnp_unregister_card_driver(&ad1816a_pnpc_driver);
pnp_unregister_card_driver(&ad1816a_pnpc_driver);
+#ifdef MODULE
printk(KERN_ERR "no AD1816A based soundcards found.\n");
printk(KERN_ERR "no AD1816A based soundcards found.\n");
- }
#endif /* MODULE */
#endif /* MODULE */
- return cards ? 0 : -ENODEV;
+ return -ENODEV;
+ }
+ return 0;
}
static void __exit alsa_card_ad1816a_exit(void)
}
static void __exit alsa_card_ad1816a_exit(void)