12 #include <linux/module.h>
16 #include <linux/slab.h>
32 .proc_name =
"zorro7xx",
37 static struct zorro_driver_data {
42 { .name =
"PowerUP 603e+", .offset = 0xf40000, .absolute = 1 },
43 { .name =
"WarpEngine 40xx", .offset = 0x40000 },
44 { .name =
"A4091", .offset = 0x800000 },
45 { .name =
"GForce 040/060", .offset = 0x40000 },
52 .driver_data = (
unsigned long)&zorro7xx_driver_data[0],
56 .driver_data = (
unsigned long)&zorro7xx_driver_data[1],
60 .driver_data = (
unsigned long)&zorro7xx_driver_data[2],
64 .driver_data = (
unsigned long)&zorro7xx_driver_data[2],
68 .driver_data = (
unsigned long)&zorro7xx_driver_data[3],
74 static int __devinit zorro7xx_init_one(
struct zorro_dev *z,
79 struct zorro_driver_data *zdd;
80 unsigned long board, ioaddr;
82 board = zorro_resource_start(z);
88 ioaddr = board + zdd->offset;
91 if (!zorro_request_device(z, zdd->name)) {
104 if (ioaddr > 0x01000000)
105 hostdata->
base =
ioremap(ioaddr, zorro_resource_len(z));
109 hostdata->
clock = 50;
115 zorro7xx_scsi_driver_template.
name = zdd->name;
122 "board configuration problem?\n");
136 zorro_set_drvdata(z, host);
144 if (ioaddr > 0x01000000)
148 zorro_release_device(z);
153 static __devexit void zorro7xx_remove_one(
struct zorro_dev *z)
155 struct Scsi_Host *host = zorro_get_drvdata(z);
163 zorro_release_device(z);
166 static struct zorro_driver zorro7xx_driver = {
167 .name =
"zorro7xx-scsi",
168 .id_table = zorro7xx_zorro_tbl,
169 .probe = zorro7xx_init_one,
173 static int __init zorro7xx_scsi_init(
void)
178 static void __exit zorro7xx_scsi_exit(
void)