From: "Randy.Dunlap" <rddunlap@osdl.org>

Convert MODULE_PARM() to module_param().

Signed-off-by: Randy Dunlap <rddunlap@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/atm/ambassador.c                 |   14 +++++-----
 25-akpm/drivers/atm/firestream.c                 |    8 +++---
 25-akpm/drivers/atm/he.c                         |   18 ++++++-------
 25-akpm/drivers/atm/horizon.c                    |   10 +++----
 25-akpm/drivers/atm/idt77252.c                   |    4 +--
 25-akpm/drivers/atm/iphase.c                     |   12 ++++-----
 25-akpm/drivers/atm/nicstar.c                    |    2 -
 25-akpm/drivers/block/amiflop.c                  |    4 +--
 25-akpm/drivers/block/floppy.c                   |    6 ++--
 25-akpm/drivers/block/umem.c                     |    6 ++--
 25-akpm/drivers/cdrom/cdu31a.c                   |    4 +--
 25-akpm/drivers/char/cyclades.c                  |    4 +--
 25-akpm/drivers/char/esp.c                       |   18 ++++++-------
 25-akpm/drivers/char/ftape/lowlevel/ftape-init.c |   29 ++++++++++++++--------
 25-akpm/drivers/char/ip2.c                       |    6 ++--
 25-akpm/drivers/char/isicom.c                    |    4 +--
 25-akpm/drivers/char/moxa.c                      |   12 +++++----
 25-akpm/drivers/char/mxser.c                     |    6 ++--
 25-akpm/drivers/char/pcxx.c                      |   18 ++++++-------
 25-akpm/drivers/char/rocket.c                    |   30 +++++++++++------------
 25-akpm/drivers/char/specialix.c                 |    4 +--
 25-akpm/drivers/ide/ide.c                        |    2 -
 25-akpm/drivers/macintosh/therm_adt746x.c        |    4 +--
 25-akpm/drivers/message/fusion/mptscsih.c        |    2 -
 25-akpm/drivers/message/i2o/debug.c              |    2 -
 25-akpm/drivers/parport/parport_pc.c             |   10 +++----
 25-akpm/drivers/pci/hotplug/cpcihp_generic.c     |   12 ++++-----
 25-akpm/drivers/pci/hotplug/fakephp.c            |    2 -
 25-akpm/drivers/pci/hotplug/ibmphp_core.c        |    2 -
 25-akpm/drivers/s390/char/raw3270.c              |    2 -
 25-akpm/drivers/sbus/char/aurora.c               |    8 +++---
 25-akpm/drivers/sbus/char/cpwatchdog.c           |    6 ++--
 25-akpm/drivers/sbus/char/display7seg.c          |    4 +--
 25-akpm/drivers/sbus/char/riowatchdog.c          |    2 -
 25-akpm/drivers/scsi/sun3_scsi_vme.c             |   10 +++----
 25-akpm/drivers/scsi/sym53c416.c                 |    8 +++---
 25-akpm/drivers/serial/serial_cs.c               |    2 -
 25-akpm/drivers/telephony/ixj_pcmcia.c           |    2 -
 38 files changed, 155 insertions(+), 144 deletions(-)

diff -puN drivers/atm/ambassador.c~convert-module_parm-to-module_param-family drivers/atm/ambassador.c
--- 25/drivers/atm/ambassador.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/ambassador.c	Thu Oct 28 16:05:18 2004
@@ -2414,13 +2414,13 @@ static void __init amb_check_args (void)
 MODULE_AUTHOR(maintainer_string);
 MODULE_DESCRIPTION(description_string);
 MODULE_LICENSE("GPL");
-MODULE_PARM(debug,   "h");
-MODULE_PARM(cmds,    "i");
-MODULE_PARM(txs,     "i");
-MODULE_PARM(rxs,     __MODULE_STRING(NUM_RX_POOLS) "i");
-MODULE_PARM(rxs_bs,  __MODULE_STRING(NUM_RX_POOLS) "i");
-MODULE_PARM(rx_lats, "i");
-MODULE_PARM(pci_lat, "b");
+module_param(debug,   ushort, 0644);
+module_param(cmds,    uint, 0);
+module_param(txs,     uint, 0);
+module_param_array(rxs,     uint, NULL, 0);
+module_param_array(rxs_bs,  uint, NULL, 0);
+module_param(rx_lats, uint, 0);
+module_param(pci_lat, byte, 0);
 MODULE_PARM_DESC(debug,   "debug bitmap, see .h file");
 MODULE_PARM_DESC(cmds,    "number of command queue entries");
 MODULE_PARM_DESC(txs,     "number of TX queue entries");
diff -puN drivers/atm/firestream.c~convert-module_parm-to-module_param-family drivers/atm/firestream.c
--- 25/drivers/atm/firestream.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/firestream.c	Thu Oct 28 16:05:18 2004
@@ -306,11 +306,11 @@ static int fs_debug = 0;
 
 #ifdef MODULE
 #ifdef DEBUG 
-MODULE_PARM(fs_debug, "i");
+module_param(fs_debug, int, 0644);
 #endif
-MODULE_PARM(loopback, "i");
-MODULE_PARM(num, "i");
-MODULE_PARM(fs_keystream, "i");
+module_param(loopback, int, 0);
+module_param(num, int, 0);
+module_param(fs_keystream, int, 0);
 /* XXX Add rx_buf_sizes, and rx_pool_sizes As per request Amar. -- REW */
 #endif
 
diff -puN drivers/atm/he.c~convert-module_parm-to-module_param-family drivers/atm/he.c
--- 25/drivers/atm/he.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/he.c	Thu Oct 28 16:05:18 2004
@@ -148,12 +148,12 @@ static u8 read_prom_byte(struct he_dev *
 /* globals */
 
 struct he_dev *he_devs = NULL;
-static short disable64 = -1;
+static int disable64 = 0;
 static short nvpibits = -1;
 static short nvcibits = -1;
 static short rx_skb_reserve = 16;
-static short irq_coalesce = 1;
-static short sdh = 0;
+static int irq_coalesce = 1;
+static int sdh = 0;
 
 static struct atmdev_ops he_ops =
 {
@@ -3032,17 +3032,17 @@ read_prom_byte(struct he_dev *he_dev, in
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("chas williams <chas@cmf.nrl.navy.mil>");
 MODULE_DESCRIPTION("ForeRunnerHE ATM Adapter driver");
-MODULE_PARM(disable64, "h");
+module_param(disable64, bool, 0);
 MODULE_PARM_DESC(disable64, "disable 64-bit pci bus transfers");
-MODULE_PARM(nvpibits, "i");
+module_param(nvpibits, short, 0);
 MODULE_PARM_DESC(nvpibits, "numbers of bits for vpi (default 0)");
-MODULE_PARM(nvcibits, "i");
+module_param(nvcibits, short, 0);
 MODULE_PARM_DESC(nvcibits, "numbers of bits for vci (default 12)");
-MODULE_PARM(rx_skb_reserve, "i");
+module_param(rx_skb_reserve, short, 0);
 MODULE_PARM_DESC(rx_skb_reserve, "padding for receive skb (default 16)");
-MODULE_PARM(irq_coalesce, "i");
+module_param(irq_coalesce, bool, 0);
 MODULE_PARM_DESC(irq_coalesce, "use interrupt coalescing (default 1)");
-MODULE_PARM(sdh, "i");
+module_param(sdh, bool, 0);
 MODULE_PARM_DESC(sdh, "use SDH framing (default 0)");
 
 static struct pci_device_id he_pci_tbl[] = {
diff -puN drivers/atm/horizon.c~convert-module_parm-to-module_param-family drivers/atm/horizon.c
--- 25/drivers/atm/horizon.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/horizon.c	Thu Oct 28 16:05:18 2004
@@ -2896,11 +2896,11 @@ static void __init hrz_check_args (void)
 MODULE_AUTHOR(maintainer_string);
 MODULE_DESCRIPTION(description_string);
 MODULE_LICENSE("GPL");
-MODULE_PARM(debug, "h");
-MODULE_PARM(vpi_bits, "h");
-MODULE_PARM(max_tx_size, "i");
-MODULE_PARM(max_rx_size, "i");
-MODULE_PARM(pci_lat, "b");
+module_param(debug, ushort, 0644);
+module_param(vpi_bits, ushort, 0);
+module_param(max_tx_size, int, 0);
+module_param(max_rx_size, int, 0);
+module_param(pci_lat, byte, 0);
 MODULE_PARM_DESC(debug, "debug bitmap, see .h file");
 MODULE_PARM_DESC(vpi_bits, "number of bits (0..4) to allocate to VPIs");
 MODULE_PARM_DESC(max_tx_size, "maximum size of TX AAL5 frames");
diff -puN drivers/atm/idt77252.c~convert-module_parm-to-module_param-family drivers/atm/idt77252.c
--- 25/drivers/atm/idt77252.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/idt77252.c	Thu Oct 28 16:05:18 2004
@@ -3871,10 +3871,10 @@ module_exit(idt77252_exit);
 
 MODULE_LICENSE("GPL");
 
-MODULE_PARM(vpibits, "i");
+module_param(vpibits, uint, 0);
 MODULE_PARM_DESC(vpibits, "number of VPI bits supported (0, 1, or 2)");
 #ifdef CONFIG_ATM_IDT77252_DEBUG
-MODULE_PARM(debug, "i");
+module_param(debug, ulong, 0644);
 MODULE_PARM_DESC(debug,   "debug bitmap, see drivers/atm/idt77252.h");
 #endif
 
diff -puN drivers/atm/iphase.c~convert-module_parm-to-module_param-family drivers/atm/iphase.c
--- 25/drivers/atm/iphase.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/iphase.c	Thu Oct 28 16:05:18 2004
@@ -81,14 +81,14 @@ static struct timer_list ia_timer = TIME
 struct atm_vcc *vcc_close_que[100];
 static int IA_TX_BUF = DFL_TX_BUFFERS, IA_TX_BUF_SZ = DFL_TX_BUF_SZ;
 static int IA_RX_BUF = DFL_RX_BUFFERS, IA_RX_BUF_SZ = DFL_RX_BUF_SZ;
-static u32 IADebugFlag = /* IF_IADBG_ERR | IF_IADBG_CBR| IF_IADBG_INIT_ADAPTER
+static uint IADebugFlag = /* IF_IADBG_ERR | IF_IADBG_CBR| IF_IADBG_INIT_ADAPTER
             |IF_IADBG_ABR | IF_IADBG_EVENT*/ 0; 
 
-MODULE_PARM(IA_TX_BUF, "i");
-MODULE_PARM(IA_TX_BUF_SZ, "i");
-MODULE_PARM(IA_RX_BUF, "i");
-MODULE_PARM(IA_RX_BUF_SZ, "i");
-MODULE_PARM(IADebugFlag, "i");
+module_param(IA_TX_BUF, int, 0);
+module_param(IA_TX_BUF_SZ, int, 0);
+module_param(IA_RX_BUF, int, 0);
+module_param(IA_RX_BUF_SZ, int, 0);
+module_param(IADebugFlag, uint, 0644);
 
 MODULE_LICENSE("GPL");
 
diff -puN drivers/atm/nicstar.c~convert-module_parm-to-module_param-family drivers/atm/nicstar.c
--- 25/drivers/atm/nicstar.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/atm/nicstar.c	Thu Oct 28 16:05:18 2004
@@ -267,7 +267,7 @@ static struct atmdev_ops atm_ops =
 };
 static struct timer_list ns_timer;
 static char *mac[NS_MAX_CARDS];
-MODULE_PARM(mac, "1-" __MODULE_STRING(NS_MAX_CARDS) "s");
+module_param_array(mac, charp, NULL, 0);
 MODULE_LICENSE("GPL");
 
 
diff -puN drivers/block/amiflop.c~convert-module_parm-to-module_param-family drivers/block/amiflop.c
--- 25/drivers/block/amiflop.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/block/amiflop.c	Thu Oct 28 16:05:18 2004
@@ -105,9 +105,9 @@
 #define FD_HD_3 	0x55555555  /* high-density 3.5" (1760K) drive */
 #define FD_DD_5 	0xaaaaaaaa  /* double-density 5.25" (440K) drive */
 
-static long int fd_def_df0 = FD_DD_3;     /* default for df0 if it doesn't identify */
+static unsigned long int fd_def_df0 = FD_DD_3;     /* default for df0 if it doesn't identify */
 
-MODULE_PARM(fd_def_df0,"l");
+module_param(fd_def_df0, ulong, 0);
 MODULE_LICENSE("GPL");
 
 static struct request_queue *floppy_queue;
diff -puN drivers/block/floppy.c~convert-module_parm-to-module_param-family drivers/block/floppy.c
--- 25/drivers/block/floppy.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/block/floppy.c	Thu Oct 28 16:05:18 2004
@@ -4813,9 +4813,9 @@ void cleanup_module(void)
 	wait_for_completion(&device_release);
 }
 
-MODULE_PARM(floppy, "s");
-MODULE_PARM(FLOPPY_IRQ, "i");
-MODULE_PARM(FLOPPY_DMA, "i");
+module_param(floppy, charp, 0);
+module_param(FLOPPY_IRQ, int, 0);
+module_param(FLOPPY_DMA, int, 0);
 MODULE_AUTHOR("Alain L. Knaff");
 MODULE_SUPPORTED_DEVICE("fd");
 MODULE_LICENSE("GPL");
diff -puN drivers/block/umem.c~convert-module_parm-to-module_param-family drivers/block/umem.c
--- 25/drivers/block/umem.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/block/umem.c	Thu Oct 28 16:05:18 2004
@@ -83,15 +83,15 @@ static int debug;
 #define DEBUG_LED_ON_TRANSFER	0x01
 #define DEBUG_BATTERY_POLLING	0x02
 
-MODULE_PARM(debug, "i");
+module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug, "Debug bitmask");
 
 static int pci_read_cmd = 0x0C;		/* Read Multiple */
-MODULE_PARM(pci_read_cmd, "i");
+module_param(pci_read_cmd, int, 0);
 MODULE_PARM_DESC(pci_read_cmd, "PCI read command");
 
 static int pci_write_cmd = 0x0F;	/* Write and Invalidate */
-MODULE_PARM(pci_write_cmd, "i");
+module_param(pci_write_cmd, int, 0);
 MODULE_PARM_DESC(pci_write_cmd, "PCI write command");
 
 static int pci_cmds;
diff -puN drivers/cdrom/cdu31a.c~convert-module_parm-to-module_param-family drivers/cdrom/cdu31a.c
--- 25/drivers/cdrom/cdu31a.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/cdrom/cdu31a.c	Thu Oct 28 16:05:18 2004
@@ -222,7 +222,7 @@ static unsigned int sony_blocks_left = 0
 /* The base I/O address of the Sony Interface.  This is a variable (not a
    #define) so it can be easily changed via some future ioctl() */
 static unsigned int cdu31a_port = 0;
-MODULE_PARM(cdu31a_port, "i");
+module_param(cdu31a_port, uint, 0);
 
 /*
  * The following are I/O addresses of the various registers for the drive.  The
@@ -301,7 +301,7 @@ static unsigned volatile char final_pos_
 
 /* What IRQ is the drive using?  0 if none. */
 static int cdu31a_irq = 0;
-MODULE_PARM(cdu31a_irq, "i");
+module_param(cdu31a_irq, int, 0);
 
 /* The interrupt handler will wake this queue up when it gets an
    interrupts. */
diff -puN drivers/char/cyclades.c~convert-module_parm-to-module_param-family drivers/char/cyclades.c
--- 25/drivers/char/cyclades.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/cyclades.c	Thu Oct 28 16:05:18 2004
@@ -729,8 +729,8 @@ static unsigned int cy_isa_addresses[] =
 static long maddr[NR_CARDS] = { 0, };
 static int irq[NR_CARDS]  = { 0, };
 
-MODULE_PARM(maddr, "1-" __MODULE_STRING(NR_CARDS) "l");
-MODULE_PARM(irq, "1-" __MODULE_STRING(NR_CARDS) "i");
+module_param_array(maddr, long, NULL, 0);
+module_param_array(irq, int, NULL, 0);
 #endif
 
 #endif /* CONFIG_ISA */
diff -puN drivers/char/esp.c~convert-module_parm-to-module_param-family drivers/char/esp.c
--- 25/drivers/char/esp.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/esp.c	Thu Oct 28 16:05:18 2004
@@ -86,15 +86,15 @@ static unsigned int pio_threshold = ESP_
 
 MODULE_LICENSE("GPL");
 
-MODULE_PARM(irq, "1-8i");
-MODULE_PARM(divisor, "1-8i");
-MODULE_PARM(dma, "i");
-MODULE_PARM(rx_trigger, "i");
-MODULE_PARM(tx_trigger, "i");
-MODULE_PARM(flow_off, "i");
-MODULE_PARM(flow_on, "i");
-MODULE_PARM(rx_timeout, "i");
-MODULE_PARM(pio_threshold, "i");
+module_param_array(irq, int, NULL, 0);
+module_param_array(divisor, uint, NULL, 0);
+module_param(dma, uint, 0);
+module_param(rx_trigger, uint, 0);
+module_param(tx_trigger, uint, 0);
+module_param(flow_off, uint, 0);
+module_param(flow_on, uint, 0);
+module_param(rx_timeout, uint, 0);
+module_param(pio_threshold, uint, 0);
 
 /* END */
 
diff -puN drivers/char/ftape/lowlevel/ftape-init.c~convert-module_parm-to-module_param-family drivers/char/ftape/lowlevel/ftape-init.c
--- 25/drivers/char/ftape/lowlevel/ftape-init.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/ftape/lowlevel/ftape-init.c	Thu Oct 28 16:05:18 2004
@@ -122,20 +122,29 @@ KERN_INFO "Compiled for Linux version %s
 #endif
 	TRACE_EXIT 0;
 }
-#define FT_MOD_PARM(var,type,desc) \
-	MODULE_PARM(var,type); MODULE_PARM_DESC(var,desc)
 
-FT_MOD_PARM(ft_fdc_base,       "i", "Base address of FDC controller.");
-FT_MOD_PARM(ft_fdc_irq,        "i", "IRQ (interrupt channel) to use.");
-FT_MOD_PARM(ft_fdc_dma,        "i", "DMA channel to use.");
-FT_MOD_PARM(ft_fdc_threshold,  "i", "Threshold of the FDC Fifo.");
-FT_MOD_PARM(ft_fdc_rate_limit, "i", "Maximal data rate for FDC.");
-FT_MOD_PARM(ft_probe_fc10,     "i", 
+module_param(ft_fdc_base,       uint, 0);
+MODULE_PARM_DESC(ft_fdc_base,  "Base address of FDC controller.");
+module_param(ft_fdc_irq,        uint, 0);
+MODULE_PARM_DESC(ft_fdc_irq,   "IRQ (interrupt channel) to use.");
+module_param(ft_fdc_dma,        uint, 0);
+MODULE_PARM_DESC(ft_fdc_dma,   "DMA channel to use.");
+module_param(ft_fdc_threshold,  uint, 0);
+MODULE_PARM_DESC(ft_fdc_threshold,  "Threshold of the FDC Fifo.");
+module_param(ft_fdc_rate_limit, uint, 0);
+MODULE_PARM_DESC(ft_fdc_rate_limit, "Maximal data rate for FDC.");
+module_param(ft_probe_fc10,     bool, 0);
+MODULE_PARM_DESC(ft_probe_fc10,
 	    "If non-zero, probe for a Colorado FC-10/FC-20 controller.");
-FT_MOD_PARM(ft_mach2,          "i",
+module_param(ft_mach2,          bool, 0);
+MODULE_PARM_DESC(ft_mach2,
 	    "If non-zero, probe for a Mountain MACH-2 controller.");
-FT_MOD_PARM(ft_tracing,        "i", 
+#if defined(MODULE) && !defined(CONFIG_FT_NO_TRACE_AT_ALL)
+module_param(ft_tracing,        int, 0644);
+MODULE_PARM_DESC(ft_tracing,
 	    "Amount of debugging output, 0 <= tracing <= 8, default 3.");
+#endif
+
 MODULE_AUTHOR(
 	"(c) 1993-1996 Bas Laarhoven (bas@vimec.nl), "
 	"(c) 1995-1996 Kai Harrekilde-Petersen (khp@dolphinics.no), "
diff -puN drivers/char/ip2.c~convert-module_parm-to-module_param-family drivers/char/ip2.c
--- 25/drivers/char/ip2.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/ip2.c	Thu Oct 28 16:05:18 2004
@@ -38,11 +38,11 @@ static int poll_only = 0;
 
 MODULE_AUTHOR("Doug McNash");
 MODULE_DESCRIPTION("Computone IntelliPort Plus Driver");
-MODULE_PARM(irq,"1-"__MODULE_STRING(IP2_MAX_BOARDS) "i");
+module_param_array(irq, int, NULL, 0);
 MODULE_PARM_DESC(irq,"Interrupts for IntelliPort Cards");
-MODULE_PARM(io,"1-"__MODULE_STRING(IP2_MAX_BOARDS) "i");
+module_param_array(io, int, NULL, 0);
 MODULE_PARM_DESC(io,"I/O ports for IntelliPort Cards");
-MODULE_PARM(poll_only,"1i");
+module_param(poll_only, bool, 0);
 MODULE_PARM_DESC(poll_only,"Do not use card interrupts");
 
 
diff -puN drivers/char/isicom.c~convert-module_parm-to-module_param-family drivers/char/isicom.c
--- 25/drivers/char/isicom.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/isicom.c	Thu Oct 28 16:05:18 2004
@@ -1773,9 +1773,9 @@ static int irq[4];
 MODULE_AUTHOR("MultiTech");
 MODULE_DESCRIPTION("Driver for the ISI series of cards by MultiTech");
 MODULE_LICENSE("GPL");
-MODULE_PARM(io, "1-4i");
+module_param_array(io, int, NULL, 0);
 MODULE_PARM_DESC(io, "I/O ports for the cards");
-MODULE_PARM(irq, "1-4i");
+module_param_array(irq, int, NULL, 0);
 MODULE_PARM_DESC(irq, "Interrupts for the cards");
 
 int init_module(void)
diff -puN drivers/char/moxa.c~convert-module_parm-to-module_param-family drivers/char/moxa.c
--- 25/drivers/char/moxa.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/moxa.c	Thu Oct 28 16:05:18 2004
@@ -201,11 +201,13 @@ static int numports[] 	=	{0, 0, 0, 0};
 MODULE_AUTHOR("William Chen");
 MODULE_DESCRIPTION("MOXA Intellio Family Multiport Board Device Driver");
 MODULE_LICENSE("GPL");
-MODULE_PARM(type, "1-4i");
-MODULE_PARM(baseaddr, "1-4i");
-MODULE_PARM(numports, "1-4i");
-MODULE_PARM(ttymajor, "i");
-MODULE_PARM(verbose, "i");
+#ifdef MODULE
+module_param_array(type, int, NULL, 0);
+module_param_array(baseaddr, int, NULL, 0);
+module_param_array(numports, int, NULL, 0);
+#endif
+module_param(ttymajor, int, 0);
+module_param(verbose, bool, 0644);
 
 static struct tty_driver *moxaDriver;
 static struct moxa_str moxaChannels[MAX_PORTS];
diff -puN drivers/char/mxser.c~convert-module_parm-to-module_param-family drivers/char/mxser.c
--- 25/drivers/char/mxser.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/mxser.c	Thu Oct 28 16:05:18 2004
@@ -223,9 +223,9 @@ static int verbose;
 MODULE_AUTHOR("William Chen");
 MODULE_DESCRIPTION("MOXA Smartio Family Multiport Board Device Driver");
 MODULE_LICENSE("GPL");
-MODULE_PARM(ioaddr, "1-4i");
-MODULE_PARM(ttymajor, "i");
-MODULE_PARM(verbose, "i");
+module_param_array(ioaddr, int, NULL, 0);
+module_param(ttymajor, int, 0);
+module_param(verbose, bool, 0644);
 
 struct mxser_hwconf {
 	int board_type;
diff -puN drivers/char/pcxx.c~convert-module_parm-to-module_param-family drivers/char/pcxx.c
--- 25/drivers/char/pcxx.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/pcxx.c	Thu Oct 28 16:05:18 2004
@@ -112,13 +112,13 @@ static int numports[]     = {0, 0, 0, 0}
 MODULE_AUTHOR("Bernhard Kaindl");
 MODULE_DESCRIPTION("Digiboard PC/X{i,e,eve} driver");
 MODULE_LICENSE("GPL");
-MODULE_PARM(verbose,     "i");
-MODULE_PARM(debug,       "i");
-MODULE_PARM(io,          "1-4i");
-MODULE_PARM(membase,     "1-4i");
-MODULE_PARM(memsize,     "1-4i");
-MODULE_PARM(altpin,      "1-4i");
-MODULE_PARM(numports,    "1-4i");
+module_param(verbose,     bool, 0644);
+module_param(debug,       bool, 0644);
+module_param_array(io,          int, NULL, 0);
+module_param_array(membase,     int, NULL, 0);
+module_param_array(memsize,     int, NULL, 0);
+module_param_array(altpin,      int, NULL, 0);
+module_param_array(numports,    int, NULL, 0);
 
 #endif /* MODULE */
 
@@ -148,7 +148,7 @@ static void pcxx_error(int, char *);
 static void pcxe_close(struct tty_struct *, struct file *);
 static int pcxe_ioctl(struct tty_struct *, struct file *, unsigned int, unsigned long);
 static void pcxe_set_termios(struct tty_struct *, struct termios *);
-static int pcxe_write(struct tty_struct *, int, const unsigned char *, int);
+static int pcxe_write(struct tty_struct *, const unsigned char *, int);
 static int pcxe_write_room(struct tty_struct *);
 static int pcxe_chars_in_buffer(struct tty_struct *);
 static void pcxe_flush_buffer(struct tty_struct *);
@@ -637,7 +637,7 @@ static int pcxe_write(struct tty_struct 
 
 static void pcxe_put_char(struct tty_struct *tty, unsigned char c)
 {
-	pcxe_write(tty, 0, &c, 1);
+	pcxe_write(tty, &c, 1);
 	return;
 }
 
diff -puN drivers/char/rocket.c~convert-module_parm-to-module_param-family drivers/char/rocket.c
--- 25/drivers/char/rocket.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/rocket.c	Thu Oct 28 16:05:18 2004
@@ -123,7 +123,7 @@ static unsigned long board2;
 static unsigned long board3;
 static unsigned long board4;
 static unsigned long controller;
-static unsigned long support_low_speed;
+static int support_low_speed;
 static unsigned long modem1;
 static unsigned long modem2;
 static unsigned long modem3;
@@ -181,33 +181,33 @@ static void rp_start(struct tty_struct *
 #ifdef MODULE
 MODULE_AUTHOR("Theodore Ts'o");
 MODULE_DESCRIPTION("Comtrol RocketPort driver");
-MODULE_PARM(board1, "i");
+module_param(board1, ulong, 0);
 MODULE_PARM_DESC(board1, "I/O port for (ISA) board #1");
-MODULE_PARM(board2, "i");
+module_param(board2, ulong, 0);
 MODULE_PARM_DESC(board2, "I/O port for (ISA) board #2");
-MODULE_PARM(board3, "i");
+module_param(board3, ulong, 0);
 MODULE_PARM_DESC(board3, "I/O port for (ISA) board #3");
-MODULE_PARM(board4, "i");
+module_param(board4, ulong, 0);
 MODULE_PARM_DESC(board4, "I/O port for (ISA) board #4");
-MODULE_PARM(controller, "i");
+module_param(controller, ulong, 0);
 MODULE_PARM_DESC(controller, "I/O port for (ISA) rocketport controller");
-MODULE_PARM(support_low_speed, "i");
+module_param(support_low_speed, bool, 0);
 MODULE_PARM_DESC(support_low_speed, "1 means support 50 baud, 0 means support 460400 baud");
-MODULE_PARM(modem1, "i");
+module_param(modem1, ulong, 0);
 MODULE_PARM_DESC(modem1, "1 means (ISA) board #1 is a RocketModem");
-MODULE_PARM(modem2, "i");
+module_param(modem2, ulong, 0);
 MODULE_PARM_DESC(modem2, "1 means (ISA) board #2 is a RocketModem");
-MODULE_PARM(modem3, "i");
+module_param(modem3, ulong, 0);
 MODULE_PARM_DESC(modem3, "1 means (ISA) board #3 is a RocketModem");
-MODULE_PARM(modem4, "i");
+module_param(modem4, ulong, 0);
 MODULE_PARM_DESC(modem4, "1 means (ISA) board #4 is a RocketModem");
-MODULE_PARM(pc104_1, "1-8i");
+module_param_array(pc104_1, ulong, NULL, 0);
 MODULE_PARM_DESC(pc104_1, "set interface types for ISA(PC104) board #1 (e.g. pc104_1=232,232,485,485,...");
-MODULE_PARM(pc104_2, "1-8i");
+module_param_array(pc104_2, ulong, NULL, 0);
 MODULE_PARM_DESC(pc104_2, "set interface types for ISA(PC104) board #2 (e.g. pc104_2=232,232,485,485,...");
-MODULE_PARM(pc104_3, "1-8i");
+module_param_array(pc104_3, ulong, NULL, 0);
 MODULE_PARM_DESC(pc104_3, "set interface types for ISA(PC104) board #3 (e.g. pc104_3=232,232,485,485,...");
-MODULE_PARM(pc104_4, "1-8i");
+module_param_array(pc104_4, ulong, NULL, 0);
 MODULE_PARM_DESC(pc104_4, "set interface types for ISA(PC104) board #4 (e.g. pc104_4=232,232,485,485,...");
 
 int rp_init(void);
diff -puN drivers/char/specialix.c~convert-module_parm-to-module_param-family drivers/char/specialix.c
--- 25/drivers/char/specialix.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/char/specialix.c	Thu Oct 28 16:05:18 2004
@@ -2186,8 +2186,8 @@ int iobase[SX_NBOARD]  = {0,};
 
 int irq [SX_NBOARD] = {0,};
 
-MODULE_PARM(iobase,"1-" __MODULE_STRING(SX_NBOARD) "i");
-MODULE_PARM(irq,"1-" __MODULE_STRING(SX_NBOARD) "i");
+module_param_array(iobase, int, NULL, 0);
+module_param_array(irq, int, NULL, 0);
 
 /*
  * You can setup up to 4 boards.
diff -puN drivers/ide/ide.c~convert-module_parm-to-module_param-family drivers/ide/ide.c
--- 25/drivers/ide/ide.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/ide/ide.c	Thu Oct 28 16:05:18 2004
@@ -2473,7 +2473,7 @@ int __init ide_init (void)
 
 #ifdef MODULE
 char *options = NULL;
-MODULE_PARM(options,"s");
+module_param(options, charp, 0);
 MODULE_LICENSE("GPL");
 
 static void __init parse_options (char *line)
diff -puN drivers/macintosh/therm_adt746x.c~convert-module_parm-to-module_param-family drivers/macintosh/therm_adt746x.c
--- 25/drivers/macintosh/therm_adt746x.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/macintosh/therm_adt746x.c	Thu Oct 28 16:05:18 2004
@@ -56,11 +56,11 @@ MODULE_DESCRIPTION("Driver for ADT746x t
 		   "Powerbook G4 Alu");
 MODULE_LICENSE("GPL");
 
-MODULE_PARM(limit_adjust,"i");
+module_param(limit_adjust, int, 0);
 MODULE_PARM_DESC(limit_adjust,"Adjust maximum temperatures (50 cpu, 70 gpu) "
 		 "by N degrees.");
 
-MODULE_PARM(fan_speed,"i");
+module_param(fan_speed, int, 0);
 MODULE_PARM_DESC(fan_speed,"Specify fan speed (0-255) when lim < temp < lim+8 "
 		 "(default 128)");
 
diff -puN drivers/message/fusion/mptscsih.c~convert-module_parm-to-module_param-family drivers/message/fusion/mptscsih.c
--- 25/drivers/message/fusion/mptscsih.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/message/fusion/mptscsih.c	Thu Oct 28 16:05:18 2004
@@ -99,7 +99,7 @@ MODULE_LICENSE("GPL");
 /* Set string for command line args from insmod */
 #ifdef MODULE
 char *mptscsih = NULL;
-MODULE_PARM(mptscsih, "s");
+module_param(mptscsih, charp, 0);
 #endif
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
diff -puN drivers/message/i2o/debug.c~convert-module_parm-to-module_param-family drivers/message/i2o/debug.c
--- 25/drivers/message/i2o/debug.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/message/i2o/debug.c	Thu Oct 28 16:05:18 2004
@@ -147,7 +147,7 @@ void i2o_report_controller_unit(struct i
 }
 
 /*
-MODULE_PARM(verbose, "i");
+module_param(verbose, int, 0644);
 MODULE_PARM_DESC(verbose, "Verbose diagnostics");
 */
 /*
diff -puN drivers/parport/parport_pc.c~convert-module_parm-to-module_param-family drivers/parport/parport_pc.c
--- 25/drivers/parport/parport_pc.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/parport/parport_pc.c	Thu Oct 28 16:05:18 2004
@@ -3177,17 +3177,17 @@ static const char *dma[PARPORT_PC_MAX_PO
 static const char *init_mode;
 
 MODULE_PARM_DESC(io, "Base I/O address (SPP regs)");
-MODULE_PARM(io, "1-" __MODULE_STRING(PARPORT_PC_MAX_PORTS) "i");
+module_param_array(io, int, NULL, 0);
 MODULE_PARM_DESC(io_hi, "Base I/O address (ECR)");
-MODULE_PARM(io_hi, "1-" __MODULE_STRING(PARPORT_PC_MAX_PORTS) "i");
+module_param_array(io_hi, int, NULL, 0);
 MODULE_PARM_DESC(irq, "IRQ line");
-MODULE_PARM(irq, "1-" __MODULE_STRING(PARPORT_PC_MAX_PORTS) "s");
+module_param_array(irq, charp, NULL, 0);
 MODULE_PARM_DESC(dma, "DMA channel");
-MODULE_PARM(dma, "1-" __MODULE_STRING(PARPORT_PC_MAX_PORTS) "s");
+module_param_array(dma, charp, NULL, 0);
 #if defined(CONFIG_PARPORT_PC_SUPERIO) || \
        (defined(CONFIG_PARPORT_1284) && defined(CONFIG_PARPORT_PC_FIFO))
 MODULE_PARM_DESC(verbose_probing, "Log chit-chat during initialisation");
-MODULE_PARM(verbose_probing, "i");
+module_param(verbose_probing, int, 0644);
 #endif
 MODULE_PARM_DESC(init_mode, "Initialise mode for VIA VT8231 port (spp, ps2, epp, ecp or ecpepp)");
 MODULE_PARM(init_mode, "s");
diff -puN drivers/pci/hotplug/cpcihp_generic.c~convert-module_parm-to-module_param-family drivers/pci/hotplug/cpcihp_generic.c
--- 25/drivers/pci/hotplug/cpcihp_generic.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/pci/hotplug/cpcihp_generic.c	Thu Oct 28 16:05:18 2004
@@ -209,15 +209,15 @@ module_exit(cpcihp_generic_exit);
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
-MODULE_PARM(debug, "i");
+module_param(debug, bool, 0644);
 MODULE_PARM_DESC(debug, "Debugging mode enabled or not");
-MODULE_PARM(bridge, "s");
+module_param(bridge, charp, 0);
 MODULE_PARM_DESC(bridge, "Hotswap bus bridge device, <bus>:<slot> (bus and slot are in hexadecimal)");
-MODULE_PARM(first_slot, "b");
+module_param(first_slot, byte, 0);
 MODULE_PARM_DESC(first_slot, "Hotswap bus first slot number");
-MODULE_PARM(last_slot, "b");
+module_param(last_slot, byte, 0);
 MODULE_PARM_DESC(last_slot, "Hotswap bus last slot number");
-MODULE_PARM(port, "h");
+module_param(port, ushort, 0);
 MODULE_PARM_DESC(port, "#ENUM signal I/O port");
-MODULE_PARM(enum_bit, "i");
+module_param(enum_bit, uint, 0);
 MODULE_PARM_DESC(enum_bit, "#ENUM signal bit (0-7)");
diff -puN drivers/pci/hotplug/fakephp.c~convert-module_parm-to-module_param-family drivers/pci/hotplug/fakephp.c
--- 25/drivers/pci/hotplug/fakephp.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/pci/hotplug/fakephp.c	Thu Oct 28 16:05:18 2004
@@ -227,6 +227,6 @@ module_exit(dummyphp_exit);
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
-MODULE_PARM(debug, "i");
+module_param(debug, bool, 0644);
 MODULE_PARM_DESC(debug, "Debugging mode enabled or not");
 
diff -puN drivers/pci/hotplug/ibmphp_core.c~convert-module_parm-to-module_param-family drivers/pci/hotplug/ibmphp_core.c
--- 25/drivers/pci/hotplug/ibmphp_core.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/pci/hotplug/ibmphp_core.c	Thu Oct 28 16:05:18 2004
@@ -51,7 +51,7 @@
 int ibmphp_debug;
 
 static int debug;
-MODULE_PARM (debug, "i");
+module_param(debug, bool, 0644);
 MODULE_PARM_DESC (debug, "Debugging mode enabled or not");
 MODULE_LICENSE ("GPL");
 MODULE_DESCRIPTION (DRIVER_DESC);
diff -puN drivers/s390/char/raw3270.c~convert-module_parm-to-module_param-family drivers/s390/char/raw3270.c
--- 25/drivers/s390/char/raw3270.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/s390/char/raw3270.c	Thu Oct 28 16:05:18 2004
@@ -65,7 +65,7 @@ static int raw3270_registered;
 
 /* Module parameters */
 static int tubxcorrect = 0;
-MODULE_PARM(tubxcorrect, "i");
+module_param(tubxcorrect, bool, 0);
 
 /*
  * Wait queue for device init/delete, view delete.
diff -puN drivers/sbus/char/aurora.c~convert-module_parm-to-module_param-family drivers/sbus/char/aurora.c
--- 25/drivers/sbus/char/aurora.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/sbus/char/aurora.c	Thu Oct 28 16:05:18 2004
@@ -2339,10 +2339,10 @@ int irq  = 0;
 int irq1 = 0;
 int irq2 = 0;
 int irq3 = 0;
-MODULE_PARM(irq , "i");
-MODULE_PARM(irq1, "i");
-MODULE_PARM(irq2, "i");
-MODULE_PARM(irq3, "i");
+module_param(irq , int, 0);
+module_param(irq1, int, 0);
+module_param(irq2, int, 0);
+module_param(irq3, int, 0);
 
 static int __init aurora_init(void) 
 {
diff -puN drivers/sbus/char/cpwatchdog.c~convert-module_parm-to-module_param-family drivers/sbus/char/cpwatchdog.c
--- 25/drivers/sbus/char/cpwatchdog.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/sbus/char/cpwatchdog.c	Thu Oct 28 16:05:18 2004
@@ -165,11 +165,11 @@ static int wd1_timeout = 0;
 static int wd2_timeout = 0;
 
 #ifdef MODULE
-MODULE_PARM		(wd0_timeout, "i");
+module_param	(wd0_timeout, int, 0);
 MODULE_PARM_DESC(wd0_timeout, "Default watchdog0 timeout in 1/10secs");
-MODULE_PARM 	(wd1_timeout, "i");
+module_param 	(wd1_timeout, int, 0);
 MODULE_PARM_DESC(wd1_timeout, "Default watchdog1 timeout in 1/10secs");
-MODULE_PARM 	(wd2_timeout, "i");
+module_param 	(wd2_timeout, int, 0);
 MODULE_PARM_DESC(wd2_timeout, "Default watchdog2 timeout in 1/10secs");
 
 MODULE_AUTHOR
diff -puN drivers/sbus/char/display7seg.c~convert-module_parm-to-module_param-family drivers/sbus/char/display7seg.c
--- 25/drivers/sbus/char/display7seg.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/sbus/char/display7seg.c	Thu Oct 28 16:05:18 2004
@@ -44,8 +44,8 @@ static int sol_compat = 0;		/* Solaris c
  * If you wish the device to operate as under Solaris,
  * omitting above features, set this parameter to non-zero.
  */
-MODULE_PARM
-	(sol_compat, "1i");
+module_param
+	(sol_compat, int, 0);
 MODULE_PARM_DESC
 	(sol_compat, 
 	 "Disables documented functionality omitted from Solaris driver");
diff -puN drivers/sbus/char/riowatchdog.c~convert-module_parm-to-module_param-family drivers/sbus/char/riowatchdog.c
--- 25/drivers/sbus/char/riowatchdog.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/sbus/char/riowatchdog.c	Thu Oct 28 16:05:18 2004
@@ -59,7 +59,7 @@ static void *riowd_regs;
 #define WDTO_INDEX	0x05
 
 static int riowd_timeout = 1;		/* in minutes */
-MODULE_PARM(riowd_timeout,"i");
+module_param(riowd_timeout, int, 0);
 MODULE_PARM_DESC(riowd_timeout, "Watchdog timeout in minutes");
 
 #if 0 /* Currently unused. */
diff -puN drivers/scsi/sun3_scsi_vme.c~convert-module_parm-to-module_param-family drivers/scsi/sun3_scsi_vme.c
--- 25/drivers/scsi/sun3_scsi_vme.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/scsi/sun3_scsi_vme.c	Thu Oct 28 16:05:18 2004
@@ -72,17 +72,17 @@ static inline unsigned char sun3scsi_rea
 static inline void sun3scsi_write(int reg, int value);
 
 static int setup_can_queue = -1;
-MODULE_PARM(setup_can_queue, "i");
+module_param(setup_can_queue, int, 0);
 static int setup_cmd_per_lun = -1;
-MODULE_PARM(setup_cmd_per_lun, "i");
+module_param(setup_cmd_per_lun, int, 0);
 static int setup_sg_tablesize = -1;
-MODULE_PARM(setup_sg_tablesize, "i");
+module_param(setup_sg_tablesize, int, 0);
 #ifdef SUPPORT_TAGS
 static int setup_use_tagged_queuing = -1;
-MODULE_PARM(setup_use_tagged_queuing, "i");
+module_param(setup_use_tagged_queuing, int, 0);
 #endif
 static int setup_hostid = -1;
-MODULE_PARM(setup_hostid, "i");
+module_param(setup_hostid, int, 0);
 
 static Scsi_Cmnd *sun3_dma_setup_done = NULL;
 
diff -puN drivers/scsi/sym53c416.c~convert-module_parm-to-module_param-family drivers/scsi/sym53c416.c
--- 25/drivers/scsi/sym53c416.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/scsi/sym53c416.c	Thu Oct 28 16:05:18 2004
@@ -852,10 +852,10 @@ static int sym53c416_bios_param(struct s
 MODULE_AUTHOR("Lieven Willems");
 MODULE_LICENSE("GPL");
 
-MODULE_PARM(sym53c416, "1-2i");
-MODULE_PARM(sym53c416_1, "1-2i");
-MODULE_PARM(sym53c416_2, "1-2i");
-MODULE_PARM(sym53c416_3, "1-2i");
+module_param_array(sym53c416, uint, NULL, 0);
+module_param_array(sym53c416_1, uint, NULL, 0);
+module_param_array(sym53c416_2, uint, NULL, 0);
+module_param_array(sym53c416_3, uint, NULL, 0);
 
 #endif
 
diff -puN drivers/serial/serial_cs.c~convert-module_parm-to-module_param-family drivers/serial/serial_cs.c
--- 25/drivers/serial/serial_cs.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/serial/serial_cs.c	Thu Oct 28 16:05:18 2004
@@ -59,7 +59,7 @@
 
 #ifdef PCMCIA_DEBUG
 static int pc_debug = PCMCIA_DEBUG;
-MODULE_PARM(pc_debug, "i");
+module_param(pc_debug, int, 0644);
 #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
 static char *version = "serial_cs.c 1.134 2002/05/04 05:48:53 (David Hinds)";
 #else
diff -puN drivers/telephony/ixj_pcmcia.c~convert-module_parm-to-module_param-family drivers/telephony/ixj_pcmcia.c
--- 25/drivers/telephony/ixj_pcmcia.c~convert-module_parm-to-module_param-family	Thu Oct 28 16:05:18 2004
+++ 25-akpm/drivers/telephony/ixj_pcmcia.c	Thu Oct 28 16:05:18 2004
@@ -23,7 +23,7 @@
  
 #ifdef PCMCIA_DEBUG
 static int pc_debug = PCMCIA_DEBUG;
-MODULE_PARM(pc_debug, "i");
+module_param(pc_debug, int, 0644);
 #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
 #else
 #define DEBUG(n, args...)
_