#include <asm/parisc-device.h>
#include <asm/delay.h>
-#include "scsi.h"
-#include "hosts.h"
+#include <scsi/scsi_host.h>
+#include <scsi/scsi_device.h>
+#include <scsi/scsi_transport.h>
+#include <scsi/scsi_transport_spi.h>
-#include "lasi700.h"
#include "53c700.h"
MODULE_AUTHOR("James Bottomley");
MODULE_DESCRIPTION("lasi700 SCSI Driver");
MODULE_LICENSE("GPL");
+#define LASI_700_SVERSION 0x00071
+#define LASI_710_SVERSION 0x00082
+
+#define LASI700_ID_TABLE { \
+ .hw_type = HPHW_FIO, \
+ .sversion = LASI_700_SVERSION, \
+ .hversion = HVERSION_ANY_ID, \
+ .hversion_rev = HVERSION_REV_ANY_ID, \
+}
+
+#define LASI710_ID_TABLE { \
+ .hw_type = HPHW_FIO, \
+ .sversion = LASI_710_SVERSION, \
+ .hversion = HVERSION_ANY_ID, \
+ .hversion_rev = HVERSION_REV_ANY_ID, \
+}
+
+#define LASI700_CLOCK 25
+#define LASI710_CLOCK 40
+#define LASI_SCSI_CORE_OFFSET 0x100
+
static struct parisc_device_id lasi700_ids[] = {
LASI700_ID_TABLE,
LASI710_ID_TABLE,
{ 0 }
};
-static Scsi_Host_Template lasi700_template = {
+static struct scsi_host_template lasi700_template = {
.name = "LASI SCSI 53c700",
.proc_name = "lasi700",
.this_id = 7,
NCR_700_set_mem_mapped(hostdata);
- host = NCR_700_detect(&lasi700_template, hostdata);
+ host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev,
+ dev->irq, 7);
if (!host)
goto out_kfree;
- host->irq = dev->irq;
- if (request_irq(dev->irq, NCR_700_intr, SA_SHIRQ,
- dev->dev.bus_id, host)) {
- printk(KERN_ERR "%s: irq problem, detaching\n",
- dev->dev.bus_id);
- goto out_put_host;
- }
-
- if (scsi_add_host(host, &dev->dev))
- goto out_free_irq;
dev_set_drvdata(&dev->dev, host);
scsi_scan_host(host);
return 0;
- out_free_irq:
- free_irq(host->irq, host);
- out_put_host:
- scsi_host_put(host);
out_kfree:
kfree(hostdata);
return -ENODEV;