Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / sound / isa / sb / sb_common.c
index 5b6bde2..f343a82 100644 (file)
@@ -41,11 +41,11 @@ MODULE_LICENSE("GPL");
 
 #undef IO_DEBUG
 
-int snd_sbdsp_command(sb_t *chip, unsigned char val)
+int snd_sbdsp_command(struct snd_sb *chip, unsigned char val)
 {
        int i;
 #ifdef IO_DEBUG
-       snd_printk("command 0x%x\n", val);
+       snd_printk(KERN_DEBUG "command 0x%x\n", val);
 #endif
        for (i = BUSY_LOOPS; i; i--)
                if ((inb(SBP(chip, STATUS)) & 0x80) == 0) {
@@ -56,7 +56,7 @@ int snd_sbdsp_command(sb_t *chip, unsigned char val)
        return 0;
 }
 
-int snd_sbdsp_get_byte(sb_t *chip)
+int snd_sbdsp_get_byte(struct snd_sb *chip)
 {
        int val;
        int i;
@@ -64,7 +64,7 @@ int snd_sbdsp_get_byte(sb_t *chip)
                if (inb(SBP(chip, DATA_AVAIL)) & 0x80) {
                        val = inb(SBP(chip, READ));
 #ifdef IO_DEBUG
-                       snd_printk("get_byte 0x%x\n", val);
+                       snd_printk(KERN_DEBUG "get_byte 0x%x\n", val);
 #endif
                        return val;
                }
@@ -73,7 +73,7 @@ int snd_sbdsp_get_byte(sb_t *chip)
        return -ENODEV;
 }
 
-int snd_sbdsp_reset(sb_t *chip)
+int snd_sbdsp_reset(struct snd_sb *chip)
 {
        int i;
 
@@ -92,7 +92,7 @@ int snd_sbdsp_reset(sb_t *chip)
        return -ENODEV;
 }
 
-static int snd_sbdsp_version(sb_t * chip)
+static int snd_sbdsp_version(struct snd_sb * chip)
 {
        unsigned int result = -ENODEV;
 
@@ -102,7 +102,7 @@ static int snd_sbdsp_version(sb_t * chip)
        return result;
 }
 
-static int snd_sbdsp_probe(sb_t * chip)
+static int snd_sbdsp_probe(struct snd_sb * chip)
 {
        int version;
        int major, minor;
@@ -154,7 +154,7 @@ static int snd_sbdsp_probe(sb_t * chip)
                        str = "16";
                        break;
                default:
-                       snd_printk("SB [0x%lx]: unknown DSP chip version %i.%i\n",
+                       snd_printk(KERN_INFO "SB [0x%lx]: unknown DSP chip version %i.%i\n",
                                   chip->port, major, minor);
                        return -ENODEV;
                }
@@ -176,12 +176,10 @@ static int snd_sbdsp_probe(sb_t * chip)
        return 0;
 }
 
-static int snd_sbdsp_free(sb_t *chip)
+static int snd_sbdsp_free(struct snd_sb *chip)
 {
-       if (chip->res_port) {
-               release_resource(chip->res_port);
-               kfree_nocheck(chip->res_port);
-       }
+       if (chip->res_port)
+               release_and_free_resource(chip->res_port);
        if (chip->irq >= 0)
                free_irq(chip->irq, (void *) chip);
 #ifdef CONFIG_ISA
@@ -198,30 +196,30 @@ static int snd_sbdsp_free(sb_t *chip)
        return 0;
 }
 
-static int snd_sbdsp_dev_free(snd_device_t *device)
+static int snd_sbdsp_dev_free(struct snd_device *device)
 {
-       sb_t *chip = device->device_data;
+       struct snd_sb *chip = device->device_data;
        return snd_sbdsp_free(chip);
 }
 
-int snd_sbdsp_create(snd_card_t *card,
+int snd_sbdsp_create(struct snd_card *card,
                     unsigned long port,
                     int irq,
                     irqreturn_t (*irq_handler)(int, void *, struct pt_regs *),
                     int dma8,
                     int dma16,
                     unsigned short hardware,
-                    sb_t **r_chip)
+                    struct snd_sb **r_chip)
 {
-       sb_t *chip;
+       struct snd_sb *chip;
        int err;
-       static snd_device_ops_t ops = {
+       static struct snd_device_ops ops = {
                .dev_free =     snd_sbdsp_dev_free,
        };
 
        snd_assert(r_chip != NULL, return -EINVAL);
        *r_chip = NULL;
-       chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
+       chip = kzalloc(sizeof(*chip), GFP_KERNEL);
        if (chip == NULL)
                return -ENOMEM;
        spin_lock_init(&chip->reg_lock);
@@ -295,6 +293,10 @@ EXPORT_SYMBOL(snd_sbmixer_write);
 EXPORT_SYMBOL(snd_sbmixer_read);
 EXPORT_SYMBOL(snd_sbmixer_new);
 EXPORT_SYMBOL(snd_sbmixer_add_ctl);
+#ifdef CONFIG_PM
+EXPORT_SYMBOL(snd_sbmixer_suspend);
+EXPORT_SYMBOL(snd_sbmixer_resume);
+#endif
 
 /*
  *  INIT part