* [PATCH] move dmascc away from setup.c
@ 2003-06-03 8:23 Christoph Hellwig
2003-06-04 5:13 ` David S. Miller
0 siblings, 1 reply; 2+ messages in thread
From: Christoph Hellwig @ 2003-06-03 8:23 UTC (permalink / raw)
To: netdev
Yeah, it's a isa driver but it already was in the setup.c
pci probes list.
Also use SET_MODULE_OWNER instead of MOD_{INC,DEC}_USE_COUNT.
--- 1.15/drivers/net/setup.c Thu May 29 11:57:13 2003
+++ edited/drivers/net/setup.c Mon Jun 2 12:16:07 2003
@@ -9,8 +9,6 @@
#include <linux/init.h>
#include <linux/netlink.h>
-extern int dmascc_init(void);
-
extern int scc_enet_init(void);
extern int fec_enet_init(void);
@@ -29,10 +27,6 @@
/*
* Early setup devices
*/
-
-#if defined(CONFIG_DMASCC)
- {dmascc_init, 0},
-#endif
#if defined(CONFIG_SCC_ENET)
{scc_enet_init, 0},
#endif
--- 1.15/drivers/net/hamradio/dmascc.c Fri May 30 08:50:31 2003
+++ edited/drivers/net/hamradio/dmascc.c Mon Jun 2 12:31:48 2003
@@ -250,8 +250,6 @@
/* Function declarations */
-
-int dmascc_init(void) __init;
static int setup_adapter(int card_base, int type, int n) __init;
static void write_scc(struct scc_priv *priv, int reg, int val);
@@ -299,23 +297,12 @@
static unsigned long rand;
-/* Module functions */
-
-#ifdef MODULE
-
-
MODULE_AUTHOR("Klaus Kudielka");
MODULE_DESCRIPTION("Driver for high-speed SCC boards");
MODULE_PARM(io, "1-" __MODULE_STRING(MAX_NUM_DEVS) "i");
MODULE_LICENSE("GPL");
-
-int init_module(void) {
- return dmascc_init();
-}
-
-
-void cleanup_module(void) {
+static void __exit dmascc_exit(void) {
int i;
struct scc_info *info;
@@ -341,24 +328,16 @@
}
}
-
-#else
-
-
+#ifndef MODULE
void __init dmascc_setup(char *str, int *ints) {
int i;
for (i = 0; i < MAX_NUM_DEVS && i < ints[0]; i++)
io[i] = ints[i+1];
}
-
-
#endif
-
-/* Initialization functions */
-
-int __init dmascc_init(void) {
+static int __init dmascc_init(void) {
int h, i, j, n;
int base[MAX_NUM_DEVS], tcmd[MAX_NUM_DEVS], t0[MAX_NUM_DEVS],
t1[MAX_NUM_DEVS];
@@ -461,6 +440,9 @@
return -EIO;
}
+module_init(dmascc_init);
+module_exit(dmascc_exit);
+
int __init setup_adapter(int card_base, int type, int n) {
int i, irq, chip;
@@ -580,6 +562,7 @@
if (sizeof(dev->name) == sizeof(char *)) dev->name = priv->name;
#endif
sprintf(dev->name, "dmascc%i", 2*n+i);
+ SET_MODULE_OWNER(dev);
dev->base_addr = card_base;
dev->irq = irq;
dev->open = scc_open;
@@ -707,12 +690,9 @@
struct scc_info *info = priv->info;
int card_base = priv->card_base;
- MOD_INC_USE_COUNT;
-
/* Request IRQ if not already used by other channel */
if (!info->irq_used) {
if (request_irq(dev->irq, scc_isr, 0, "dmascc", info)) {
- MOD_DEC_USE_COUNT;
return -EAGAIN;
}
}
@@ -722,7 +702,6 @@
if (priv->param.dma >= 0) {
if (request_dma(priv->param.dma, "dmascc")) {
if (--info->irq_used == 0) free_irq(dev->irq, info);
- MOD_DEC_USE_COUNT;
return -EAGAIN;
} else {
unsigned long flags = claim_dma_lock();
@@ -866,7 +845,6 @@
}
if (--info->irq_used == 0) free_irq(dev->irq, info);
- MOD_DEC_USE_COUNT;
return 0;
}
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-06-04 5:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-03 8:23 [PATCH] move dmascc away from setup.c Christoph Hellwig
2003-06-04 5:13 ` David S. Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).