git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
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]
/
drivers
/
scsi
/
sim710.c
diff --git
a/drivers/scsi/sim710.c
b/drivers/scsi/sim710.c
index
add007a
..
255886a
100644
(file)
--- a/
drivers/scsi/sim710.c
+++ b/
drivers/scsi/sim710.c
@@
-47,7
+47,7
@@
#define MAX_SLOTS 8
static __u8 __initdata id_array[MAX_SLOTS] = { [0 ... MAX_SLOTS-1] = 7 };
#define MAX_SLOTS 8
static __u8 __initdata id_array[MAX_SLOTS] = { [0 ... MAX_SLOTS-1] = 7 };
-
char *sim710;
/* command line passed by insmod */
+
static char *sim710;
/* command line passed by insmod */
MODULE_AUTHOR("Richard Hirst");
MODULE_DESCRIPTION("Simple NCR53C710 driver");
MODULE_AUTHOR("Richard Hirst");
MODULE_DESCRIPTION("Simple NCR53C710 driver");
@@
-61,7
+61,7
@@
module_param(sim710, charp, 0);
#define ARG_SEP ','
#endif
#define ARG_SEP ','
#endif
-__init int
+
static
__init int
param_setup(char *str)
{
char *pos = str, *next;
param_setup(char *str)
{
char *pos = str, *next;
@@
-75,7
+75,7
@@
param_setup(char *str)
else if(!strncmp(pos, "id:", 3)) {
if(slot == -1) {
printk(KERN_WARNING "sim710: Must specify slot for id parameter\n");
else if(!strncmp(pos, "id:", 3)) {
if(slot == -1) {
printk(KERN_WARNING "sim710: Must specify slot for id parameter\n");
- } else if(slot > MAX_SLOTS) {
+ } else if(slot >
=
MAX_SLOTS) {
printk(KERN_WARNING "sim710: Illegal slot %d for id %d\n", slot, val);
} else {
id_array[slot] = val;
printk(KERN_WARNING "sim710: Illegal slot %d for id %d\n", slot, val);
} else {
id_array[slot] = val;
@@
-120,25
+120,33
@@
sim710_probe_common(struct device *dev, unsigned long base_addr,
}
/* Fill in the three required pieces of hostdata */
}
/* Fill in the three required pieces of hostdata */
- hostdata->base =
base_addr
;
+ hostdata->base =
ioport_map(base_addr, 64)
;
hostdata->differential = differential;
hostdata->clock = clock;
hostdata->chip710 = 1;
hostdata->differential = differential;
hostdata->clock = clock;
hostdata->chip710 = 1;
- NCR_700_set_io_mapped(hostdata);
/* and register the chip */
/* and register the chip */
- if((host = NCR_700_detect(&sim710_driver_template, hostdata, dev
, irq,
-
scsi_id))
== NULL) {
+ if((host = NCR_700_detect(&sim710_driver_template, hostdata, dev
))
+ == NULL) {
printk(KERN_ERR "sim710: No host detected; card configuration problem?\n");
goto out_release;
}
printk(KERN_ERR "sim710: No host detected; card configuration problem?\n");
goto out_release;
}
+ host->this_id = scsi_id;
+ host->base = base_addr;
+ host->irq = irq;
+ if (request_irq(irq, NCR_700_intr, SA_SHIRQ, "sim710", host)) {
+ printk(KERN_ERR "sim710: request_irq failed\n");
+ goto out_put_host;
+ }
scsi_scan_host(host);
return 0;
scsi_scan_host(host);
return 0;
+ out_put_host:
+ scsi_host_put(host);
out_release:
out_release:
- release_region(
host->base
, 64);
+ release_region(
base_addr
, 64);
out_free:
kfree(hostdata);
out:
out_free:
kfree(hostdata);
out:
@@
-156,6
+164,7
@@
sim710_device_remove(struct device *dev)
NCR_700_release(host);
kfree(hostdata);
free_irq(host->irq, host);
NCR_700_release(host);
kfree(hostdata);
free_irq(host->irq, host);
+ release_region(host->base, 64);
return 0;
}
return 0;
}
@@
-314,7
+323,7
@@
sim710_eisa_probe(struct device *dev)
differential, scsi_id);
}
differential, scsi_id);
}
-struct eisa_driver sim710_eisa_driver = {
+st
atic st
ruct eisa_driver sim710_eisa_driver = {
.id_table = sim710_eisa_ids,
.driver = {
.name = "sim710",
.id_table = sim710_eisa_ids,
.driver = {
.name = "sim710",