Hi

Patch adds __init/__exit/__initdata tags to various sound drivers. I have
reviewed it many times so it should be 100% safe... I have also documented
changes so people know who they should shot ;)

Patch against 2.4.0-test11-pre2.

Please apply...

BTW: Is drivers/sound/Hwmcode.h only in my tree? If not it can be dropped
because we use 724hwmcode.h now...

--
Bartlomiej Zolnierkiewicz
<[EMAIL PROTECTED]>
diff -uNr linux-240t11p2/drivers/sound/724hwmcode.h linux/drivers/sound/724hwmcode.h
--- linux-240t11p2/drivers/sound/724hwmcode.h   Tue Oct  3 00:13:34 2000
+++ linux/drivers/sound/724hwmcode.h    Fri Nov 10 19:34:42 2000
@@ -9,7 +9,7 @@
 #ifndef _HWMCODE_
 #define _HWMCODE_
 
-static unsigned long int       DspInst[] = {
+static unsigned long int       DspInst[] __initdata = {
        0x00000081, 0x000001a4, 0x0000000a, 0x0000002f,
        0x00080253, 0x01800317, 0x0000407b, 0x0000843f,
        0x0001483c, 0x0001943c, 0x0005d83c, 0x00001c3c,
@@ -20,7 +20,7 @@
        0x00000000, 0x00000000, 0x00000000, 0x00000000
 };
 
-static unsigned long int       CntrlInst[] = {
+static unsigned long int       CntrlInst[] __initdata = {
        0x000007, 0x240007, 0x0C0007, 0x1C0007,
        0x060007, 0x700002, 0x000020, 0x030040,
        0x007104, 0x004286, 0x030040, 0x000F0D,
@@ -799,7 +799,7 @@
 // 04/09?@creat
 // 04/12  stop nise fix
 // 06/21?@WorkingOff timming
-static unsigned long int       CntrlInst1E[] = {
+static unsigned long int       CntrlInst1E[] __initdata = {
        0x000007, 0x240007, 0x0C0007, 0x1C0007,
        0x060007, 0x700002, 0x000020, 0x030040,
        0x007104, 0x004286, 0x030040, 0x000F0D,
diff -uNr linux-240t11p2/drivers/sound/cs4232.c linux/drivers/sound/cs4232.c
--- linux-240t11p2/drivers/sound/cs4232.c       Tue Oct  3 14:27:47 2000
+++ linux/drivers/sound/cs4232.c        Fri Nov 10 21:19:53 2000
@@ -40,6 +40,8 @@
  *     Christoph Hellwig       Adapted to module_init/module_exit,
  *                                     simple cleanups
  *     Arnaldo C. de Melo      got rid of attach_uart401
+ *     Bartlomiej Zolnierkiewicz
+ *                             Added some __init/__initdata/__exit
  */
 
 #include <linux/config.h>
@@ -67,7 +69,7 @@
 static int synth_base = 0, synth_irq = 0;
 static int mpu_detected = 0;
 
-int probe_cs4232_mpu(struct address_info *hw_config)
+int __init probe_cs4232_mpu(struct address_info *hw_config)
 {
        /*
         *      Just write down the config values.
@@ -79,7 +81,7 @@
        return 1;
 }
 
-static unsigned char crystal_key[] =   /* A 32 byte magic key sequence */
+static unsigned char crystal_key[] __initdata =        /* A 32 byte magic key 
+sequence */
 {
        0x96, 0x35, 0x9a, 0xcd, 0xe6, 0xf3, 0x79, 0xbc,
        0x5e, 0xaf, 0x57, 0x2b, 0x15, 0x8a, 0xc5, 0xe2,
@@ -93,7 +95,7 @@
        schedule_timeout(howlong);
 }
 
-int probe_cs4232(struct address_info *hw_config)
+int __init probe_cs4232(struct address_info *hw_config)
 {
        int i, n;
        int base = hw_config->io_base, irq = hw_config->irq;
@@ -209,7 +211,7 @@
        return 0;
 }
 
-void attach_cs4232(struct address_info *hw_config)
+void __init attach_cs4232(struct address_info *hw_config)
 {
        int base = hw_config->io_base,
                irq = hw_config->irq,
@@ -268,7 +270,7 @@
        }
 }
 
-void unload_cs4232(struct address_info *hw_config)
+void __exit unload_cs4232(struct address_info *hw_config)
 {
        int base = hw_config->io_base, irq = hw_config->irq;
        int dma1 = hw_config->dma, dma2 = hw_config->dma2;
diff -uNr linux-240t11p2/drivers/sound/cs4281.c linux/drivers/sound/cs4281.c
--- linux-240t11p2/drivers/sound/cs4281.c       Fri Nov 10 14:28:44 2000
+++ linux/drivers/sound/cs4281.c        Fri Nov 10 21:20:46 2000
@@ -40,6 +40,7 @@
 //                libOSSm.so)
 // 10/11/00 trw - modified for 2.4.0-test9 kernel enhancements (NR_MAP removal)
 // 11/03/00 trw - fixed interrupt loss/stutter, added debug.
+// 11/10/00 bkz - added __devinit to cs4281_hw_init()
 //
 // *****************************************************************************
 
@@ -655,7 +656,7 @@
 //******************************************************************************
 // "Init4281()" -- Bring up the part.
 //******************************************************************************
-static int cs4281_hw_init(struct cs4281_state *card)
+static int __devinit cs4281_hw_init(struct cs4281_state *card)
 {
        u32 ac97_slotid;
        u32 temp1, temp2;
diff -uNr linux-240t11p2/drivers/sound/cs461x_image.h 
linux/drivers/sound/cs461x_image.h
--- linux-240t11p2/drivers/sound/cs461x_image.h Tue Oct  3 00:17:45 2000
+++ linux/drivers/sound/cs461x_image.h  Fri Nov 10 20:14:31 2000
@@ -1,4 +1,4 @@
-struct BA1struct BA1Struct = {

+struct BA1struct BA1Struct __initdata = {

 {{ 0x00000000, 0x00003000 },{ 0x00010000, 0x00003800 },{ 0x00020000, 0x00007000 }},

 {0x00000000,0x00000000,0x00000000,0x00000000,

 0x00000000,0x00000000,0x00000000,0x00000000,

diff -uNr linux-240t11p2/drivers/sound/cs46xx.c linux/drivers/sound/cs46xx.c
--- linux-240t11p2/drivers/sound/cs46xx.c       Tue Oct  3 14:27:47 2000
+++ linux/drivers/sound/cs46xx.c        Fri Nov 10 21:46:58 2000
@@ -25,7 +25,9 @@
  * Changes:
  *     20000815        Updated driver to kernel 2.4, some cleanups/fixes
  *                     Nils Faerber <[EMAIL PROTECTED]>
- *
+ *     20001110        Added __initdata to BA1Struct in cs461x_image.h
+ *                     and three more __init here
+ *                     Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
  */
  
 #include <linux/module.h>
@@ -1999,7 +2001,7 @@
 /* Boot the card
  */
  
-static void cs461x_download(struct cs_card *card, u32 *src, unsigned long offset, 
unsigned long len)
+static void __init cs461x_download(struct cs_card *card, u32 *src, unsigned long 
+offset, unsigned long len)
 {
        unsigned long counter;
        void *dst;
@@ -2024,7 +2026,7 @@
 
 #include "cs461x_image.h"
 
-static void cs461x_download_image(struct cs_card *card)
+static void __init cs461x_download_image(struct cs_card *card)
 {
        int idx;
        unsigned long offset = 0;
@@ -2240,7 +2242,7 @@
 
 
 
-static int cs_hardware_init(struct cs_card *card)
+static int __init cs_hardware_init(struct cs_card *card)
 {
        unsigned long end_time;
        unsigned int tmp;
diff -uNr linux-240t11p2/drivers/sound/gus_midi.c linux/drivers/sound/gus_midi.c
--- linux-240t11p2/drivers/sound/gus_midi.c     Tue Oct  3 00:17:47 2000
+++ linux/drivers/sound/gus_midi.c      Fri Nov 10 21:48:10 2000
@@ -9,6 +9,10 @@
  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
  * Version 2 (June 1991). See the "COPYING" file distributed with this software
  * for more info.
+ *
+ * Changes:
+ * 11-10-2000  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *             Added __init to gus_midi_init()
  */
 #include "sound_config.h"
 
@@ -199,7 +203,7 @@
        buffer_status:  gus_midi_buffer_status,
 };
 
-void gus_midi_init(struct address_info *hw_config)
+void __init gus_midi_init(struct address_info *hw_config)
 {
        int dev = sound_alloc_mididev();
 
diff -uNr linux-240t11p2/drivers/sound/gus_wave.c linux/drivers/sound/gus_wave.c
--- linux-240t11p2/drivers/sound/gus_wave.c     Tue Oct  3 00:17:47 2000
+++ linux/drivers/sound/gus_wave.c      Fri Nov 10 21:28:07 2000
@@ -14,6 +14,7 @@
  * Thomas Sailer    : ioctl code reworked (vmalloc/vfree removed)
  * Frank van de Pol : Fixed GUS MAX interrupt handling. Enabled simultanious
  *                    usage of CS4231A codec, GUS wave and MIDI for GUS MAX.
+ * Bartlomiej Zolnierkiewicz : added some __init/__exit
  */
  
  
@@ -853,7 +854,7 @@
 }
 
 
-static void pnp_mem_init(void)
+static void __init pnp_mem_init(void)
 {
 #include "iwmem.h"
 #define CHUNK_SIZE (256*1024)
@@ -1022,7 +1023,7 @@
        gus_write8(0x19, (gus_read8(0x19) | 0x01) & ~0x02);
 }
 
-int gus_wave_detect(int baseaddr)
+int __init gus_wave_detect(int baseaddr)
 {
        unsigned long   i, max_mem = 1024L;
        unsigned long   loc;
@@ -2901,7 +2902,7 @@
        ioctl:  gus_default_mixer_ioctl
 };
 
-static int gus_default_mixer_init(void)
+static int __init gus_default_mixer_init(void)
 {
        int n;
 
@@ -2926,7 +2927,7 @@
        return n;
 }
 
-void gus_wave_init(struct address_info *hw_config)
+void __init gus_wave_init(struct address_info *hw_config)
 {
        unsigned long flags;
        unsigned char val;
@@ -3167,7 +3168,7 @@
        }
 }
 
-void gus_wave_unload(struct address_info *hw_config)
+void __exit gus_wave_unload(struct address_info *hw_config)
 {
 #ifdef CONFIG_SOUND_GUSMAX
        if (have_gus_max)
diff -uNr linux-240t11p2/drivers/sound/ics2101.c linux/drivers/sound/ics2101.c
--- linux-240t11p2/drivers/sound/ics2101.c      Tue Oct  3 00:17:47 2000
+++ linux/drivers/sound/ics2101.c       Fri Nov 10 21:28:51 2000
@@ -12,6 +12,7 @@
  *
  *
  * Thomas Sailer   : ioctl code reworked (vmalloc/vfree removed)
+ * Bartlomiej Zolnierkiewicz : added __init to ics2101_mixer_init()
  */
 #include "sound_config.h"
 
@@ -212,8 +213,7 @@
        ioctl:  ics2101_mixer_ioctl
 };
 
-int
-ics2101_mixer_init(void)
+int __init ics2101_mixer_init(void)
 {
        int i;
        int n;
diff -uNr linux-240t11p2/drivers/sound/iwmem.h linux/drivers/sound/iwmem.h
--- linux-240t11p2/drivers/sound/iwmem.h        Tue Sep 30 17:46:45 1997
+++ linux/drivers/sound/iwmem.h Fri Nov 10 21:48:54 2000
@@ -1,5 +1,5 @@
 /*
- * sound/iwmem.c
+ * sound/iwmem.h
  *
  * DRAM size encoding table for AMD Interwave chip.
  */
@@ -9,12 +9,15 @@
  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
  * Version 2 (June 1991). See the "COPYING" file distributed with this software
  * for more info.
+ *
+ * Changes:
+ * Bartlomiej Zolnierkiewicz   : added __initdata to mem_decode
  */
 
 
 #define K 1024
 #define M (1024*K)
-static int mem_decode[][4] =
+static int mem_decode[][4] __initdata =
 {
 /*     Bank0   Bank1   Bank2   Bank3   Encoding bits   */
        {256*K, 0,      0,      0},             /*  0 */
diff -uNr linux-240t11p2/drivers/sound/maestro.c linux/drivers/sound/maestro.c
--- linux-240t11p2/drivers/sound/maestro.c      Tue Oct  3 00:18:26 2000
+++ linux/drivers/sound/maestro.c       Fri Nov 10 21:32:25 2000
@@ -115,6 +115,8 @@
  *     themselves, but we'll see.  
  *     
  * History
+ *  (still v0.14) Nov 10 2000 - Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *     add __init to maestro_ac97_init() and maestro_install()
  *  (still based on v0.14) Mar 29 2000 - Zach Brown <[EMAIL PROTECTED]>
  *     move to 2.3 power management interface, which
  *             required hacking some suspend/resume/check paths 
@@ -812,7 +814,7 @@
  *     The PT101 setup is untested.
  */
  
-static u16 maestro_ac97_init(struct ess_card *card)
+static u16 __init maestro_ac97_init(struct ess_card *card)
 {
        u16 vend1, vend2, caps;
 
@@ -3290,7 +3292,7 @@
        return card->power_regs ? 1 : 0;
 }
 
-static int 
+static int __init
 maestro_install(struct pci_dev *pcidev, int card_type)
 {
        u32 n;
diff -uNr linux-240t11p2/drivers/sound/maui.c linux/drivers/sound/maui.c
--- linux-240t11p2/drivers/sound/maui.c Tue Oct  3 00:17:47 2000
+++ linux/drivers/sound/maui.c  Fri Nov 10 21:33:02 2000
@@ -14,6 +14,8 @@
  *             Alan Cox                General clean up, use kernel IRQ 
  *                                     system
  *             Christoph Hellwig       Adapted to module_init/module_exit
+ *             Bartlomiej Zolnierkiewicz
+ *                                     Added __init to download_code()
  *
  *     Status:
  *             Andrew J. Kroll         Tested 06/01/1999 with:
@@ -104,7 +106,7 @@
        irq_ok = 1;
 }
 
-static int download_code(void)
+static int __init download_code(void)
 {
        int i, lines = 0;
        int eol_seen = 0, done = 0;
diff -uNr linux-240t11p2/drivers/sound/msnd.c linux/drivers/sound/msnd.c
--- linux-240t11p2/drivers/sound/msnd.c Tue Oct  3 00:16:14 2000
+++ linux/drivers/sound/msnd.c  Fri Nov 10 19:34:42 2000
@@ -57,7 +57,7 @@
 static multisound_dev_t                *devs[MSND_MAX_DEVS];
 static int                     num_devs;
 
-int msnd_register(multisound_dev_t *dev)
+int __init msnd_register(multisound_dev_t *dev)
 {
        int i;
 
diff -uNr linux-240t11p2/drivers/sound/msnd_pinnacle.c 
linux/drivers/sound/msnd_pinnacle.c
--- linux-240t11p2/drivers/sound/msnd_pinnacle.c        Tue Oct 10 21:49:23 2000
+++ linux/drivers/sound/msnd_pinnacle.c Fri Nov 10 19:34:42 2000
@@ -1404,7 +1404,7 @@
 }
 
 #ifdef MODULE
-static void unload_multisound(void)
+static void __exit unload_multisound(void)
 {
        release_region(dev.io, dev.numio);
        free_irq(dev.irq, &dev);
diff -uNr linux-240t11p2/drivers/sound/nm256_audio.c linux/drivers/sound/nm256_audio.c
--- linux-240t11p2/drivers/sound/nm256_audio.c  Tue Oct 24 14:47:25 2000
+++ linux/drivers/sound/nm256_audio.c   Fri Nov 10 21:51:26 2000
@@ -11,6 +11,10 @@
  * This driver was written by someone who wishes to remain anonymous. 
  * It is in the public domain, so share and enjoy.  Try to make a profit
  * off of it; go on, I dare you.  
+ *
+ * Changes:
+ * 11-10-2000  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *             Added some __init
  */
 
 #define __NO_VERSION__
@@ -945,7 +949,7 @@
 
 
 /* Installs the AC97 mixer into CARD.  */
-static int
+static int __init
 nm256_install_mixer (struct nm256_info *card)
 {
     int mixer;
@@ -989,7 +993,7 @@
  * RAM.
  */
 
-static void
+static void __init
 nm256_peek_for_sig (struct nm256_info *card)
 {
     u32 port1offset 
@@ -1031,7 +1035,7 @@
  * VERSTR is a human-readable version string.
  */
 
-static int
+static int __init
 nm256_install(struct pci_dev *pcidev, enum nm256rev rev, char *verstr)
 {
     struct nm256_info *card;
@@ -1252,7 +1256,7 @@
  *     the sound cards are.
  */
  
-int
+int __init
 init_nm256(void)
 {
     struct pci_dev *pcidev = NULL;
diff -uNr linux-240t11p2/drivers/sound/pas2_midi.c linux/drivers/sound/pas2_midi.c
--- linux-240t11p2/drivers/sound/pas2_midi.c    Tue Oct  3 00:17:48 2000
+++ linux/drivers/sound/pas2_midi.c     Fri Nov 10 21:52:23 2000
@@ -9,6 +9,8 @@
  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
  * Version 2 (June 1991). See the "COPYING" file distributed with this software
  * for more info.
+ *
+ * Bartlomiej Zolnierkiewicz   : Added __init to pas_init_mixer()
  */
 
 #include "sound_config.h"
@@ -204,7 +206,7 @@
        buffer_status:  pas_buffer_status,
 };
 
-void pas_midi_init(void)
+void __init pas_midi_init(void)
 {
        int dev = sound_alloc_mididev();
 
diff -uNr linux-240t11p2/drivers/sound/pas2_mixer.c linux/drivers/sound/pas2_mixer.c
--- linux-240t11p2/drivers/sound/pas2_mixer.c   Tue Oct  3 00:17:48 2000
+++ linux/drivers/sound/pas2_mixer.c    Fri Nov 10 21:53:09 2000
@@ -14,6 +14,7 @@
  */
 /*
  * Thomas Sailer   : ioctl code reworked (vmalloc/vfree removed)
+ * Bartlomiej Zolnierkiewicz : added __init to pas_init_mixer()
  */
 #include "sound_config.h"
 
@@ -315,7 +316,7 @@
        ioctl:  pas_mixer_ioctl
 };
 
-int
+int __init
 pas_init_mixer(void)
 {
        int             d;
diff -uNr linux-240t11p2/drivers/sound/pas2_pcm.c linux/drivers/sound/pas2_pcm.c
--- linux-240t11p2/drivers/sound/pas2_pcm.c     Tue Oct  3 00:17:48 2000
+++ linux/drivers/sound/pas2_pcm.c      Fri Nov 10 21:36:16 2000
@@ -12,6 +12,7 @@
  * Thomas Sailer   : ioctl code reworked (vmalloc/vfree removed)
  * Alan Cox       : Swatted a double allocation of device bug. Made a few
  *                  more things module options.
+ * Bartlomiej Zolnierkiewicz : Added __init to pas_pcm_init()
  */
 
 #include "sound_config.h"
@@ -385,7 +386,7 @@
        trigger:        pas_audio_trigger
 };
 
-void pas_pcm_init(struct address_info *hw_config)
+void __init pas_pcm_init(struct address_info *hw_config)
 {
        DEB(printk("pas2_pcm.c: long pas_pcm_init()\n"));
 
diff -uNr linux-240t11p2/drivers/sound/pss.c linux/drivers/sound/pss.c
--- linux-240t11p2/drivers/sound/pss.c  Tue Oct  3 14:27:48 2000
+++ linux/drivers/sound/pss.c   Fri Nov 10 21:37:51 2000
@@ -50,6 +50,8 @@
  *          setting is the previous hardcoded setting "/etc/sound/pss_synth".
  * 00-03-03: Christoph Hellwig <[EMAIL PROTECTED]>
  *         Adapted to module_init/module_exit
+ * 11-10-2000: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *         Added __init to probe_pss(), attach_pss() and probe_pss_mpu()
  */
 
 
@@ -168,7 +170,7 @@
        printk(KERN_WARNING "PSS: DSP Command (%04x) Timeout.\n", data);
 }
 
-int probe_pss(struct address_info *hw_config)
+int __init probe_pss(struct address_info *hw_config)
 {
        unsigned short id;
        int irq, dma;
@@ -644,7 +646,7 @@
        }
 }
 
-void attach_pss(struct address_info *hw_config)
+void __init attach_pss(struct address_info *hw_config)
 {
        unsigned short  id;
        char tmp[100];
@@ -693,7 +695,7 @@
        conf_printf(tmp, hw_config);
 }
 
-int probe_pss_mpu(struct address_info *hw_config)
+int __init probe_pss_mpu(struct address_info *hw_config)
 {
        int timeout;
 
diff -uNr linux-240t11p2/drivers/sound/sgalaxy.c linux/drivers/sound/sgalaxy.c
--- linux-240t11p2/drivers/sound/sgalaxy.c      Tue Oct  3 00:17:49 2000
+++ linux/drivers/sound/sgalaxy.c       Fri Nov 10 21:39:35 2000
@@ -16,6 +16,10 @@
  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
  * Version 2 (June 1991). See the "COPYING" file distributed with this software
  * for more info.
+ *
+ * Changes:
+ * 11-10-2000  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *             Added __init to sb_rst() and sb_cmd()
  */
 
 #include <linux/init.h>
@@ -40,7 +44,7 @@
 #define SBDSP_STATUS     SBDSP_COMMAND
 #define SBDSP_DATA_AVAIL 0xE
 
-static int sb_rst(int base)
+static int __init sb_rst(int base)
 {
        int   i;
    
@@ -62,7 +66,7 @@
        return 1;
 }
 
-static int sb_cmd( int base, unsigned char val )
+static int __init sb_cmd( int base, unsigned char val )
 {
        int  i;
 
diff -uNr linux-240t11p2/drivers/sound/sscape.c linux/drivers/sound/sscape.c
--- linux-240t11p2/drivers/sound/sscape.c       Tue Oct  3 00:17:50 2000
+++ linux/drivers/sound/sscape.c        Fri Nov 10 21:40:34 2000
@@ -14,6 +14,7 @@
  * Thomas Sailer       : ioctl code reworked (vmalloc/vfree removed)
  * Sergey Smitienko    : ensoniq p'n'p support
  * Christoph Hellwig   : adapted to module_init/module_exit
+ * Bartlomiej Zolnierkiewicz : added __init to attach_sscape()
  */
 
 #include <linux/init.h>
@@ -609,7 +610,7 @@
 static int sscape_detected = 0;
 static int sscape_is_pnp   = 0;
 
-void attach_sscape(struct address_info *hw_config)
+void __init attach_sscape(struct address_info *hw_config)
 {
 #ifndef SSCAPE_REGS
        /*
diff -uNr linux-240t11p2/drivers/sound/vwsnd.c linux/drivers/sound/vwsnd.c
--- linux-240t11p2/drivers/sound/vwsnd.c        Tue Oct  3 14:27:49 2000
+++ linux/drivers/sound/vwsnd.c Fri Nov 10 21:43:25 2000
@@ -135,6 +135,10 @@
  *     For AFMT_S8, AFMT_MU_LAW and AFMT_A_LAW output, we have to XOR
  *     the 0x80 bit in software to compensate for Lithium's XOR.
  *     This happens in pcm_copy_{in,out}().
+ *
+ * Changes:
+ * 11-10-2000  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *             Added some __init/__exit
  */
 
 #include <linux/module.h>
@@ -1330,7 +1334,7 @@
  *
  * return 0 on success, -errno on failure.  */
 
-static int ad1843_init(lithium_t *lith)
+static int __init ad1843_init(lithium_t *lith)
 {
        unsigned long later;
        int err;
@@ -3239,7 +3243,7 @@
 
 /* driver probe routine.  Return nonzero if hardware is found. */
 
-static int probe_vwsnd(struct address_info *hw_config)
+static int __init probe_vwsnd(struct address_info *hw_config)
 {
        lithium_t lith;
        int w;
@@ -3291,7 +3295,7 @@
  * Return +minor_dev on success, -errno on failure.
  */
 
-static int attach_vwsnd(struct address_info *hw_config)
+static int __init attach_vwsnd(struct address_info *hw_config)
 {
        vwsnd_dev_t *devc = NULL;
        int err = -ENOMEM;
@@ -3417,7 +3421,7 @@
        return err;
 }
 
-static int unload_vwsnd(struct address_info *hw_config)
+static int __exit unload_vwsnd(struct address_info *hw_config)
 {
        vwsnd_dev_t *devc, **devcp;
 
@@ -3481,10 +3485,3 @@
 
 module_init(init_vwsnd);
 module_exit(cleanup_vwsnd);
-
-/*
- * Local variables:
- * compile-command: "cd ../..; make modules SUBDIRS=drivers/sound"
- * c-basic-offset: 8
- * End:
- */
diff -uNr linux-240t11p2/drivers/sound/waveartist.c linux/drivers/sound/waveartist.c
--- linux-240t11p2/drivers/sound/waveartist.c   Tue Oct 10 21:49:23 2000
+++ linux/drivers/sound/waveartist.c    Fri Nov 10 21:42:57 2000
@@ -17,6 +17,10 @@
  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
  * Version 2 (June 1991). See the "COPYING" file distributed with this software
  * for more info.
+ *
+ * Changes:
+ * 11-10-2000  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *             Added __init to waveartist_init()
  */
 
 /* Debugging */
@@ -1190,8 +1194,7 @@
        ioctl:  waveartist_mixer_ioctl
 };
 
-static int
-waveartist_init(wavnc_info *devc)
+static int __init waveartist_init(wavnc_info *devc)
 {
        wavnc_port_info *portc;
        char rev[3], dev_name[64];
diff -uNr linux-240t11p2/drivers/sound/wavfront.c linux/drivers/sound/wavfront.c
--- linux-240t11p2/drivers/sound/wavfront.c     Tue Oct  3 00:17:50 2000
+++ linux/drivers/sound/wavfront.c      Fri Nov 10 21:45:50 2000
@@ -60,7 +60,12 @@
  *
  * This program is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
  * Version 2 (June 1991). See the "COPYING" file distributed with this software
- * for more info.  */
+ * for more info.
+ *
+ * Changes:
+ * 11-10-2000  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
+ *             Added some __init and __initdata to entries in yss225.c
+ */
 
 #include <linux/module.h>
 
@@ -2247,9 +2252,7 @@
        restore_flags (flags);
 }
 
-static int
-wavefront_hw_reset (void)
-
+static int __init wavefront_hw_reset (void)
 {
        int bits;
        int hwv[2];
@@ -2703,8 +2706,7 @@
        return 0;
 }
 
-static int
-wavefront_do_reset (int atboot)
+static int __init wavefront_do_reset (int atboot)
 {
        char voices[1];
 
@@ -3076,7 +3078,7 @@
    a somewhat "algorithmic" approach.
 */
 
-static int wffx_init (void)
+static int __init wffx_init (void)
 {
        int i;
        int j;
diff -uNr linux-240t11p2/drivers/sound/ymf_sb.c linux/drivers/sound/ymf_sb.c
--- linux-240t11p2/drivers/sound/ymf_sb.c       Tue Oct  3 14:27:49 2000
+++ linux/drivers/sound/ymf_sb.c        Fri Nov 10 21:54:58 2000
@@ -43,6 +43,10 @@
    Thu Sep 21 05:32:51 BRT 2000 0.0.5
    * got rid of attach_uart401 and attach_sbmpu
      Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
+
+   Fri Nov 10 21:24:11 CET 2000 0.0.6
+   * added some __init and __initdata to entries in 724hwmcode.h
+     Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
  */
 
 #include <linux/module.h>
@@ -220,7 +224,7 @@
 
 #define PFX            "ymf_sb: "
 
-#define YMFSB_VERSION  "0.0.5"
+#define YMFSB_VERSION  "0.0.6"
 #define YMFSB_CARD_NAME        "YMF7xx Legacy Audio driver " YMFSB_VERSION
 
 #ifdef SUPPORT_UART401_MIDI
@@ -338,7 +342,7 @@
        return 0;
 }
 
-static int checkCodec( struct pci_dev *pcidev )
+static int __init checkCodec( struct pci_dev *pcidev )
 {
        u8 tmp8;
 
@@ -357,7 +361,7 @@
        return 0;
 }
 
-static int setupLegacyIO( struct pci_dev *pcidev )
+static int __init setupLegacyIO( struct pci_dev *pcidev )
 {
        int v;
        int sbio=0,mpuio=0,oplio=0,dma=0;
@@ -500,7 +504,7 @@
        return;
 }
 
-static int setupInstruction( struct pci_dev *pcidev )
+static int __init setupInstruction( struct pci_dev *pcidev )
 {
        int i;
        int val;
diff -uNr linux-240t11p2/drivers/sound/yss225.c linux/drivers/sound/yss225.c
--- linux-240t11p2/drivers/sound/yss225.c       Sat Jul 18 23:11:41 1998
+++ linux/drivers/sound/yss225.c        Fri Nov 10 19:34:42 2000
@@ -1,4 +1,4 @@
-unsigned char page_zero[] = {
+unsigned char page_zero[] __initdata = {
 0x01, 0x7c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00,
 0x11, 0x00, 0x20, 0x00, 0x32, 0x00, 0x40, 0x00, 0x13, 0x00, 0x00,
 0x00, 0x14, 0x02, 0x76, 0x00, 0x60, 0x00, 0x80, 0x02, 0x00, 0x00,
@@ -25,7 +25,7 @@
 0x1d, 0x02, 0xdf
 };    
 
-unsigned char page_one[] = {
+unsigned char page_one[] __initdata = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00,
 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd8, 0x00, 0x00,
 0x02, 0x20, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01,
@@ -52,7 +52,7 @@
 0x60, 0x00, 0x1b
 };
 
-unsigned char page_two[] = {
+unsigned char page_two[] __initdata = {
 0xc4, 0x00, 0x44, 0x07, 0x44, 0x00, 0x40, 0x25, 0x01, 0x06, 0xc4,
 0x07, 0x40, 0x25, 0x01, 0x00, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -67,7 +67,7 @@
 0x46, 0x05, 0x46, 0x07, 0x46, 0x07, 0x44
 };
 
-unsigned char page_three[] = {
+unsigned char page_three[] __initdata = {
 0x07, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x40, 0x00, 0x40, 0x06,
 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -82,7 +82,7 @@
 0x02, 0x00, 0x42, 0x00, 0xc0, 0x00, 0x40
 };
 
-unsigned char page_four[] = {
+unsigned char page_four[] __initdata = {
 0x63, 0x03, 0x26, 0x02, 0x2c, 0x00, 0x24, 0x00, 0x2e, 0x02, 0x02,
 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -97,7 +97,7 @@
 0x02, 0x62, 0x02, 0x20, 0x01, 0x21, 0x01
 };
 
-unsigned char page_six[] = {
+unsigned char page_six[] __initdata = {
 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00,
 0x00, 0x08, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e,
 0x00, 0x00, 0x10, 0x00, 0x00, 0x12, 0x00, 0x00, 0x14, 0x00, 0x00,
@@ -118,7 +118,7 @@
 0x80, 0x00, 0x7e, 0x80, 0x80
 };
 
-unsigned char page_seven[] = {
+unsigned char page_seven[] __initdata = {
 0x0f, 0xff, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
 0x08, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f,
@@ -145,7 +145,7 @@
 0x00, 0x02, 0x00
 };
 
-unsigned char page_zero_v2[] = {
+unsigned char page_zero_v2[] __initdata = {
 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -157,7 +157,7 @@
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
 
-unsigned char page_one_v2[] = {
+unsigned char page_one_v2[] __initdata = {
 0x01, 0xc0, 0x01, 0xfa, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -169,21 +169,21 @@
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
 
-unsigned char page_two_v2[] = {
+unsigned char page_two_v2[] __initdata = {
 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00
 };
-unsigned char page_three_v2[] = {
+unsigned char page_three_v2[] __initdata = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00
 };
-unsigned char page_four_v2[] = {
+unsigned char page_four_v2[] __initdata = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -191,7 +191,7 @@
 0x00, 0x00, 0x00, 0x00
 };
 
-unsigned char page_seven_v2[] = {
+unsigned char page_seven_v2[] __initdata = {
 0x0f, 0xff, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -202,7 +202,7 @@
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
-unsigned char mod_v2[] = {
+unsigned char mod_v2[] __initdata = {
 0x01, 0x00, 0x02, 0x00, 0x01, 0x01, 0x02, 0x00, 0x01, 0x02, 0x02,
 0x00, 0x01, 0x03, 0x02, 0x00, 0x01, 0x04, 0x02, 0x00, 0x01, 0x05,
 0x02, 0x00, 0x01, 0x06, 0x02, 0x00, 0x01, 0x07, 0x02, 0x00, 0xb0,
@@ -232,7 +232,7 @@
 0x02, 0x01, 0x01, 0x04, 0x02, 0x01, 0x01, 0x05, 0x02, 0x01, 0x01,
 0x06, 0x02, 0x01, 0x01, 0x07, 0x02, 0x01
 };
-unsigned char coefficients[] = {
+unsigned char coefficients[] __initdata = {
 0x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x00, 0x4b, 0x03,
 0x11, 0x00, 0x4d, 0x01, 0x32, 0x07, 0x46, 0x00, 0x00, 0x07, 0x49,
 0x00, 0x00, 0x07, 0x40, 0x00, 0x00, 0x07, 0x41, 0x00, 0x00, 0x01,
@@ -268,14 +268,14 @@
 0x06, 0x6c, 0x4c, 0x6c, 0x06, 0x50, 0x52, 0xe2, 0x06, 0x42, 0x02,
 0xba
 };
-unsigned char coefficients2[] = {
+unsigned char coefficients2[] __initdata = {
 0x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x45, 0x0f,
 0xff, 0x07, 0x48, 0x0f, 0xff, 0x07, 0x7b, 0x04, 0xcc, 0x07, 0x7d,
 0x04, 0xcc, 0x07, 0x7c, 0x00, 0x00, 0x07, 0x7e, 0x00, 0x00, 0x07,
 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x47, 0x00, 0x00,
 0x07, 0x4a, 0x00, 0x00, 0x07, 0x4c, 0x00, 0x00, 0x07, 0x4e, 0x00, 0x00
 };
-unsigned char coefficients3[] = { 
+unsigned char coefficients3[] __initdata = { 
 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x51, 0x00,
 0x51, 0x00, 0x7a, 0x00, 0x7a, 0x00, 0xa3, 0x00, 0xa3, 0x00, 0xcc,
 0x00, 0xcc, 0x00, 0xf5, 0x00, 0xf5, 0x01, 0x1e, 0x01, 0x1e, 0x01,

Reply via email to