diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-08-28 22:00:09 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-08-28 22:00:09 +0000 |
commit | 1a1d77dd589de5a567fa95e36aa6999c704ceca4 (patch) | |
tree | 141e31f89f18b9fe0831f31852e0435ceaccafc5 /drivers/sound/sb_card.c | |
parent | fb9c690a18b3d66925a65b17441c37fa14d4370b (diff) |
Merge with 2.4.0-test7.
Diffstat (limited to 'drivers/sound/sb_card.c')
-rw-r--r-- | drivers/sound/sb_card.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/drivers/sound/sb_card.c b/drivers/sound/sb_card.c index f66c0b604..9828aab41 100644 --- a/drivers/sound/sb_card.c +++ b/drivers/sound/sb_card.c @@ -44,7 +44,9 @@ * * 25-05-2000 Added Creative SB AWE64 Gold (CTL00B2). * Pål-Kristian Engstad <engstad@att.net> - * + * + * 12-08-2000 Added Creative SB32 PnP (CTL009F). + * Kasatenko Ivan Alex. <skywriter@rnc.ru> */ #include <linux/config.h> @@ -54,7 +56,6 @@ #include <linux/isapnp.h> #include "sound_config.h" -#include "soundmodule.h" #include "sb_mixer.h" #include "sb.h" @@ -88,7 +89,7 @@ static int __initdata sm_games = 0; /* Logitech soundman games? */ static void __init attach_sb_card(struct address_info *hw_config) { - if(!sb_dsp_init(hw_config)) + if(!sb_dsp_init(hw_config, THIS_MODULE)) hw_config->slots[0] = -1; } @@ -189,7 +190,7 @@ struct pci_dev *sb_dev[SB_CARDS_MAX] = {NULL}, #if defined CONFIG_ISAPNP || defined CONFIG_ISAPNP_MODULE static int isapnp = 1; static int isapnpjump = 0; -static int multiple = 0; +static int multiple = 1; static int reverse = 0; static int uart401 = 0; @@ -198,7 +199,7 @@ static int mpu_activated[SB_CARDS_MAX] = {0}; static int opl_activated[SB_CARDS_MAX] = {0}; #else static int isapnp = 0; -static int multiple = 1; +static int multiple = 0; #endif MODULE_DESCRIPTION("Soundblaster driver"); @@ -277,7 +278,7 @@ static struct { ISAPNP_VENDOR('C','T','L'), ISAPNP_FUNCTION(0x0031), 0,0,0,0, 0,1,1,-1}, - {"Sound Blaster 16", + {"Sound Blaster 16", ISAPNP_VENDOR('C','T','L'), ISAPNP_DEVICE(0x002a), ISAPNP_VENDOR('C','T','L'), ISAPNP_FUNCTION(0x0031), 0,0,0,0, @@ -342,6 +343,11 @@ static struct { ISAPNP_VENDOR('C','T','L'), ISAPNP_FUNCTION(0x0041), 0,0,0,0, 0,1,1,-1}, + {"Creative SB32 PnP", + ISAPNP_VENDOR('C','T','L'), ISAPNP_DEVICE(0x009F), + ISAPNP_VENDOR('C','T','L'), ISAPNP_FUNCTION(0x0041), + 0,0,0,0, + 0,1,1,-1}, {"Sound Blaster AWE 64", ISAPNP_VENDOR('C','T','L'), ISAPNP_DEVICE(0x009D), ISAPNP_VENDOR('C','T','L'), ISAPNP_FUNCTION(0x0042), @@ -436,7 +442,7 @@ static struct { ISAPNP_VENDOR('@','H','@'), ISAPNP_FUNCTION(0x0001), 0,-1,0,0}, {"ALS100", - ISAPNP_VENDOR('A','L','S'), ISAPNP_DEVICE(0x0001), + ISAPNP_VENDOR('A','L','S'), ISAPNP_DEVICE(0x0001), ISAPNP_VENDOR('@','@','@'), ISAPNP_FUNCTION(0x0001), ISAPNP_VENDOR('@','X','@'), ISAPNP_FUNCTION(0x0001), ISAPNP_VENDOR('@','H','@'), ISAPNP_FUNCTION(0x0001), @@ -468,10 +474,6 @@ static struct { {0} }; -/* That's useful. */ - -#define show_base(devname, resname, resptr) printk(KERN_INFO "sb: %s %s base located at %#lx\n", devname, resname, (resptr)->start) - static struct pci_dev *activate_dev(char *devname, char *resname, struct pci_dev *dev) { int err; @@ -636,7 +638,7 @@ int __init sb_isapnp_probe(struct address_info *hw_config, struct address_info * return 0; } } - i += reverse ? -1 : 1; + i += reverse ? -1 : 1; } return -ENODEV; @@ -679,16 +681,14 @@ static int __init init_sb(void) if(cfg[card].slots[0]==-1) return -ENODEV; - if (!isapnp) + if (!isapnp) cfg_mpu[card].io_base = mpu_io; if (probe_sbmpu(&cfg_mpu[card])) sbmpu[card] = 1; if (sbmpu[card]) - attach_sbmpu(&cfg_mpu[card]); + attach_sbmpu(&cfg_mpu[card], THIS_MODULE); } - SOUND_LOCK; - if(isapnp) printk(KERN_NOTICE "sb: %d Soundblaster PnP card(s) found.\n", sb_cards_num); @@ -718,7 +718,6 @@ static void __exit cleanup_sb(void) opl_dev[i]->deactivate(opl_dev[i]); #endif } - SOUND_LOCK_END; } module_init(init_sb); |