Commit c9f9d638 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by James Bottomley

[PATCH] zalon & ncr53c8xx cleanups

I don't actually have a zalon machine to test these on, but they seem
right to me, and compile fine.

Some cleanups for ncr53c8xx & zalon:

 - Inline zalon.h into zalon.c
 - Rationalise (a little) ncr53c8xx.c's includes
 - Remove all the version checks
 - Stop using remap_pci_mem & unmap_pci_mem & delete their definitions.
 - Use mb() instead of custom inline asm for MEMORY_BARRIER.
parent 989fbbee
...@@ -115,64 +115,32 @@ ...@@ -115,64 +115,32 @@
**========================================================== **==========================================================
*/ */
#include <linux/version.h> #include <linux/blkdev.h>
#include <linux/module.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/system.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,17)
#include <linux/spinlock.h>
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,93)
#include <asm/spinlock.h>
#endif
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/errno.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/spinlock.h>
#include <linux/stat.h>
#include <linux/string.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/stat.h> #include <linux/types.h>
#include <linux/blkdev.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,35)
#include <linux/init.h>
#endif
#ifndef __init
#define __init
#endif
#ifndef __initdata
#define __initdata
#endif
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,1,92) #include <asm/dma.h>
#include <linux/bios32.h> #include <asm/io.h>
#endif #include <asm/system.h>
#include "scsi.h" #include "scsi.h"
#include "hosts.h" #include "hosts.h"
#include <linux/types.h>
/*
** Define BITS_PER_LONG for earlier linux versions.
*/
#ifndef BITS_PER_LONG
#if (~0UL) == 0xffffffffUL
#define BITS_PER_LONG 32
#else
#define BITS_PER_LONG 64
#endif
#endif
#include "ncr53c8xx.h" #include "ncr53c8xx.h"
/* /*
...@@ -1028,9 +996,7 @@ struct ncb { ...@@ -1028,9 +996,7 @@ struct ncb {
/* when lcb is not allocated. */ /* when lcb is not allocated. */
Scsi_Cmnd *done_list; /* Commands waiting for done() */ Scsi_Cmnd *done_list; /* Commands waiting for done() */
/* callback to be invoked. */ /* callback to be invoked. */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,93)
spinlock_t smp_lock; /* Lock for SMP threading */ spinlock_t smp_lock; /* Lock for SMP threading */
#endif
/*---------------------------------------------------------------- /*----------------------------------------------------------------
** Chip and controller indentification. ** Chip and controller indentification.
...@@ -3739,7 +3705,7 @@ ncr_attach (Scsi_Host_Template *tpnt, int unit, ncr_device *device) ...@@ -3739,7 +3705,7 @@ ncr_attach (Scsi_Host_Template *tpnt, int unit, ncr_device *device)
if(device->slot.base_v) if(device->slot.base_v)
np->vaddr = device->slot.base_v; np->vaddr = device->slot.base_v;
else else
np->vaddr = remap_pci_mem(device->slot.base_c, (u_long) 128); np->vaddr = (unsigned long)ioremap(device->slot.base_c, 128);
if (!np->vaddr) { if (!np->vaddr) {
printk(KERN_ERR printk(KERN_ERR
...@@ -3809,11 +3775,7 @@ ncr_attach (Scsi_Host_Template *tpnt, int unit, ncr_device *device) ...@@ -3809,11 +3775,7 @@ ncr_attach (Scsi_Host_Template *tpnt, int unit, ncr_device *device)
instance->max_id = np->maxwide ? 16 : 8; instance->max_id = np->maxwide ? 16 : 8;
instance->max_lun = SCSI_NCR_MAX_LUN; instance->max_lun = SCSI_NCR_MAX_LUN;
#ifndef SCSI_NCR_IOMAPPED #ifndef SCSI_NCR_IOMAPPED
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,29)
instance->base = (unsigned long) np->reg; instance->base = (unsigned long) np->reg;
#else
instance->base = (char *) np->reg;
#endif
#endif #endif
instance->irq = device->slot.irq; instance->irq = device->slot.irq;
instance->unique_id = device->slot.io_port; instance->unique_id = device->slot.io_port;
...@@ -9197,19 +9159,6 @@ printk("ncr53c8xx_proc_info: hostno=%d, func=%d\n", host->host_no, func); ...@@ -9197,19 +9159,6 @@ printk("ncr53c8xx_proc_info: hostno=%d, func=%d\n", host->host_no, func);
#endif #endif
/*==========================================================
**
** /proc directory entry.
**
**==========================================================
*/
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,27)
static struct proc_dir_entry proc_scsi_ncr53c8xx = {
PROC_SCSI_NCR53C8XX, 9, NAME53C8XX,
S_IFDIR | S_IRUGO | S_IXUGO, 2
};
#endif
/*========================================================== /*==========================================================
** **
** Boot command line. ** Boot command line.
...@@ -9218,9 +9167,7 @@ static struct proc_dir_entry proc_scsi_ncr53c8xx = { ...@@ -9218,9 +9167,7 @@ static struct proc_dir_entry proc_scsi_ncr53c8xx = {
*/ */
#ifdef MODULE #ifdef MODULE
char *ncr53c8xx = 0; /* command line passed by insmod */ char *ncr53c8xx = 0; /* command line passed by insmod */
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,30)
MODULE_PARM(ncr53c8xx, "s"); MODULE_PARM(ncr53c8xx, "s");
# endif
#endif #endif
int __init ncr53c8xx_setup(char *str) int __init ncr53c8xx_setup(char *str)
...@@ -9228,11 +9175,9 @@ int __init ncr53c8xx_setup(char *str) ...@@ -9228,11 +9175,9 @@ int __init ncr53c8xx_setup(char *str)
return sym53c8xx__setup(str); return sym53c8xx__setup(str);
} }
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,13)
#ifndef MODULE #ifndef MODULE
__setup("ncr53c8xx=", ncr53c8xx_setup); __setup("ncr53c8xx=", ncr53c8xx_setup);
#endif #endif
#endif
/*=================================================================== /*===================================================================
** **
......
...@@ -74,9 +74,7 @@ ...@@ -74,9 +74,7 @@
**========================================================== **==========================================================
*/ */
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,3,47)
#define SCSI_NCR_DYNAMIC_DMA_MAPPING #define SCSI_NCR_DYNAMIC_DMA_MAPPING
#endif
/*========================================================== /*==========================================================
** **
...@@ -262,8 +260,6 @@ static inline struct xpt_quehead *xpt_remque_tail(struct xpt_quehead *head) ...@@ -262,8 +260,6 @@ static inline struct xpt_quehead *xpt_remque_tail(struct xpt_quehead *head)
**========================================================== **==========================================================
*/ */
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,2,0)
typedef struct pci_dev *pcidev_t; typedef struct pci_dev *pcidev_t;
typedef struct device *device_t; typedef struct device *device_t;
#define PCIDEV_NULL (0) #define PCIDEV_NULL (0)
...@@ -276,17 +272,7 @@ typedef struct device *device_t; ...@@ -276,17 +272,7 @@ typedef struct device *device_t;
static u_long __init static u_long __init
pci_get_base_cookie(struct pci_dev *pdev, int index) pci_get_base_cookie(struct pci_dev *pdev, int index)
{ {
u_long base; u_long base = pdev->resource[index].start;
#if LINUX_VERSION_CODE > LinuxVersionCode(2,3,12)
base = pdev->resource[index].start;
#else
base = pdev->base_address[index];
#if BITS_PER_LONG > 32
if ((base & 0x7) == 0x4)
*base |= (((u_long)pdev->base_address[++index]) << 32);
#endif
#endif
return (base & ~0x7ul); return (base & ~0x7ul);
} }
...@@ -310,102 +296,6 @@ pci_get_base_address(struct pci_dev *pdev, int index, u_long *base) ...@@ -310,102 +296,6 @@ pci_get_base_address(struct pci_dev *pdev, int index, u_long *base)
#undef PCI_BAR_OFFSET #undef PCI_BAR_OFFSET
} }
#else /* Incomplete emulation of current PCI code for pre-2.2 kernels */
typedef unsigned int pcidev_t;
typedef unsinged int device_t;
#define PCIDEV_NULL (~0u)
#define PciBusNumber(d) ((d)>>8)
#define PciDeviceFn(d) ((d)&0xff)
#define __PciDev(busn, devfn) (((busn)<<8)+(devfn))
#define pci_read_config_byte(d, w, v) \
pcibios_read_config_byte(PciBusNumber(d), PciDeviceFn(d), w, v)
#define pci_read_config_word(d, w, v) \
pcibios_read_config_word(PciBusNumber(d), PciDeviceFn(d), w, v)
#define pci_read_config_dword(d, w, v) \
pcibios_read_config_dword(PciBusNumber(d), PciDeviceFn(d), w, v)
#define pci_write_config_byte(d, w, v) \
pcibios_write_config_byte(PciBusNumber(d), PciDeviceFn(d), w, v)
#define pci_write_config_word(d, w, v) \
pcibios_write_config_word(PciBusNumber(d), PciDeviceFn(d), w, v)
#define pci_write_config_dword(d, w, v) \
pcibios_write_config_dword(PciBusNumber(d), PciDeviceFn(d), w, v)
static pcidev_t __init
pci_find_device(unsigned int vendor, unsigned int device, pcidev_t prev)
{
static unsigned short pci_index;
int retv;
unsigned char bus_number, device_fn;
if (prev == PCIDEV_NULL)
pci_index = 0;
else
++pci_index;
retv = pcibios_find_device (vendor, device, pci_index,
&bus_number, &device_fn);
return retv ? PCIDEV_NULL : __PciDev(bus_number, device_fn);
}
static u_short __init PciVendorId(pcidev_t dev)
{
u_short vendor_id;
pci_read_config_word(dev, PCI_VENDOR_ID, &vendor_id);
return vendor_id;
}
static u_short __init PciDeviceId(pcidev_t dev)
{
u_short device_id;
pci_read_config_word(dev, PCI_DEVICE_ID, &device_id);
return device_id;
}
static u_int __init PciIrqLine(pcidev_t dev)
{
u_char irq;
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
return irq;
}
static int __init
pci_get_base_address(pcidev_t dev, int offset, u_long *base)
{
u_int32 tmp;
pci_read_config_dword(dev, PCI_BASE_ADDRESS_0 + offset, &tmp);
*base = tmp;
offset += sizeof(u_int32);
if ((tmp & 0x7) == 0x4) {
#if BITS_PER_LONG > 32
pci_read_config_dword(dev, PCI_BASE_ADDRESS_0 + offset, &tmp);
*base |= (((u_long)tmp) << 32);
#endif
offset += sizeof(u_int32);
}
return offset;
}
static u_long __init
pci_get_base_cookie(struct pci_dev *pdev, int offset)
{
u_long base;
(void) pci_get_base_address(dev, offset, &base);
return base;
}
#endif /* LINUX_VERSION_CODE >= LinuxVersionCode(2,2,0) */
/* Does not make sense in earlier kernels */
#if LINUX_VERSION_CODE < LinuxVersionCode(2,4,0)
#define pci_enable_device(pdev) (0)
#endif
#if LINUX_VERSION_CODE < LinuxVersionCode(2,4,4)
#define scsi_set_pci_device(inst, pdev) (0)
#endif
/*========================================================== /*==========================================================
** **
...@@ -428,7 +318,6 @@ pci_get_base_cookie(struct pci_dev *pdev, int offset) ...@@ -428,7 +318,6 @@ pci_get_base_cookie(struct pci_dev *pdev, int offset)
**========================================================== **==========================================================
*/ */
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,1,93)
spinlock_t DRIVER_SMP_LOCK = SPIN_LOCK_UNLOCKED; spinlock_t DRIVER_SMP_LOCK = SPIN_LOCK_UNLOCKED;
#define NCR_LOCK_DRIVER(flags) spin_lock_irqsave(&DRIVER_SMP_LOCK, flags) #define NCR_LOCK_DRIVER(flags) spin_lock_irqsave(&DRIVER_SMP_LOCK, flags)
#define NCR_UNLOCK_DRIVER(flags) \ #define NCR_UNLOCK_DRIVER(flags) \
...@@ -443,20 +332,6 @@ spinlock_t DRIVER_SMP_LOCK = SPIN_LOCK_UNLOCKED; ...@@ -443,20 +332,6 @@ spinlock_t DRIVER_SMP_LOCK = SPIN_LOCK_UNLOCKED;
#define NCR_UNLOCK_SCSI_DONE(host, flags) \ #define NCR_UNLOCK_SCSI_DONE(host, flags) \
spin_unlock_irqrestore(((host)->host_lock), flags) spin_unlock_irqrestore(((host)->host_lock), flags)
#else
#define NCR_LOCK_DRIVER(flags) do { save_flags(flags); cli(); } while (0)
#define NCR_UNLOCK_DRIVER(flags) do { restore_flags(flags); } while (0)
#define NCR_INIT_LOCK_NCB(np) do { } while (0)
#define NCR_LOCK_NCB(np, flags) do { save_flags(flags); cli(); } while (0)
#define NCR_UNLOCK_NCB(np, flags) do { restore_flags(flags); } while (0)
#define NCR_LOCK_SCSI_DONE(host, flags) do {;} while (0)
#define NCR_UNLOCK_SCSI_DONE(host, flags) do {;} while (0)
#endif
/*========================================================== /*==========================================================
** **
** Memory mapped IO ** Memory mapped IO
...@@ -472,37 +347,11 @@ spinlock_t DRIVER_SMP_LOCK = SPIN_LOCK_UNLOCKED; ...@@ -472,37 +347,11 @@ spinlock_t DRIVER_SMP_LOCK = SPIN_LOCK_UNLOCKED;
**========================================================== **==========================================================
*/ */
#if LINUX_VERSION_CODE < LinuxVersionCode(2,1,0)
#define ioremap vremap
#define iounmap vfree
#endif
#ifdef __sparc__ #ifdef __sparc__
# include <asm/irq.h> #include <asm/irq.h>
# define memcpy_to_pci(a, b, c) memcpy_toio((a), (b), (c))
#elif defined(__alpha__)
# define memcpy_to_pci(a, b, c) memcpy_toio((a), (b), (c))
#else /* others */
# define memcpy_to_pci(a, b, c) memcpy_toio((a), (b), (c))
#endif #endif
#ifndef SCSI_NCR_PCI_MEM_NOT_SUPPORTED #define memcpy_to_pci(a, b, c) memcpy_toio((a), (b), (c))
static u_long __init remap_pci_mem(u_long base, u_long size)
{
u_long page_base = ((u_long) base) & PAGE_MASK;
u_long page_offs = ((u_long) base) - page_base;
u_long page_remapped = (u_long) ioremap(page_base, page_offs+size);
return page_remapped? (page_remapped + page_offs) : 0UL;
}
static void __init unmap_pci_mem(u_long vaddr, u_long size)
{
if (vaddr)
iounmap((void *) (vaddr & PAGE_MASK));
}
#endif /* not def SCSI_NCR_PCI_MEM_NOT_SUPPORTED */
/*========================================================== /*==========================================================
** **
...@@ -518,13 +367,8 @@ static void __init unmap_pci_mem(u_long vaddr, u_long size) ...@@ -518,13 +367,8 @@ static void __init unmap_pci_mem(u_long vaddr, u_long size)
**========================================================== **==========================================================
*/ */
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,1,105)
#define UDELAY udelay #define UDELAY udelay
#define MDELAY mdelay #define MDELAY mdelay
#else
static void UDELAY(long us) { udelay(us); }
static void MDELAY(long ms) { while (ms--) UDELAY(1000); }
#endif
/*========================================================== /*==========================================================
** **
...@@ -544,11 +388,7 @@ static void MDELAY(long ms) { while (ms--) UDELAY(1000); } ...@@ -544,11 +388,7 @@ static void MDELAY(long ms) { while (ms--) UDELAY(1000); }
**========================================================== **==========================================================
*/ */
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,1,0)
#define __GetFreePages(flags, order) __get_free_pages(flags, order) #define __GetFreePages(flags, order) __get_free_pages(flags, order)
#else
#define __GetFreePages(flags, order) __get_free_pages(flags, order, 0)
#endif
#define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */ #define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */
#if PAGE_SIZE >= 8192 #if PAGE_SIZE >= 8192
...@@ -2253,39 +2093,11 @@ sym53c8xx_pci_init(Scsi_Host_Template *tpnt, pcidev_t pdev, ncr_device *device) ...@@ -2253,39 +2093,11 @@ sym53c8xx_pci_init(Scsi_Host_Template *tpnt, pcidev_t pdev, ncr_device *device)
command |= (PCI_COMMAND_IO | PCI_COMMAND_MEMORY); command |= (PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
pci_write_config_word(pdev, PCI_COMMAND, command); pci_write_config_word(pdev, PCI_COMMAND, command);
} }
#if LINUX_VERSION_CODE < LinuxVersionCode(2,2,0)
if ( is_prep ) {
if (io_port >= 0x10000000) {
printk(NAME53C8XX ": reallocating io_port (Wacky IBM)");
io_port = (io_port & 0x00FFFFFF) | 0x01000000;
pci_write_config_dword(pdev,
PCI_BASE_ADDRESS_0, io_port);
}
if (base >= 0x10000000) {
printk(NAME53C8XX ": reallocating base (Wacky IBM)");
base = (base & 0x00FFFFFF) | 0x01000000;
pci_write_config_dword(pdev,
PCI_BASE_ADDRESS_1, base);
}
if (base_2 >= 0x10000000) {
printk(NAME53C8XX ": reallocating base2 (Wacky IBM)");
base_2 = (base_2 & 0x00FFFFFF) | 0x01000000;
pci_write_config_dword(pdev,
PCI_BASE_ADDRESS_2, base_2);
}
}
#endif
#endif /* __powerpc__ */ #endif /* __powerpc__ */
#if defined(__i386__) && !defined(MODULE) #if defined(__i386__) && !defined(MODULE)
if (!cache_line_size) { if (!cache_line_size) {
#if LINUX_VERSION_CODE < LinuxVersionCode(2,1,75)
extern char x86;
switch(x86) {
#else
switch(boot_cpu_data.x86) { switch(boot_cpu_data.x86) {
#endif
case 4: suggested_cache_line_size = 4; break; case 4: suggested_cache_line_size = 4; break;
case 6: case 6:
case 5: suggested_cache_line_size = 8; break; case 5: suggested_cache_line_size = 8; break;
......
...@@ -68,13 +68,8 @@ ...@@ -68,13 +68,8 @@
** Check supported Linux versions ** Check supported Linux versions
*/ */
#if !defined(LINUX_VERSION_CODE)
#include <linux/version.h>
#endif
#include <linux/config.h> #include <linux/config.h>
#define LinuxVersionCode(v, p, s) (((v)<<16)+((p)<<8)+(s))
/* /*
* NCR PQS/PDS special device support. * NCR PQS/PDS special device support.
*/ */
...@@ -183,11 +178,6 @@ ...@@ -183,11 +178,6 @@
#define SCSI_NCR_IOMAPPED #define SCSI_NCR_IOMAPPED
#elif defined(__alpha__) #elif defined(__alpha__)
#define SCSI_NCR_IOMAPPED #define SCSI_NCR_IOMAPPED
#elif defined(__powerpc__)
#if LINUX_VERSION_CODE <= LinuxVersionCode(2,4,3)
#define SCSI_NCR_IOMAPPED
#define SCSI_NCR_PCI_MEM_NOT_SUPPORTED
#endif
#endif #endif
/* /*
...@@ -363,10 +353,6 @@ ...@@ -363,10 +353,6 @@
#ifdef __BIG_ENDIAN #ifdef __BIG_ENDIAN
#if LINUX_VERSION_CODE < LinuxVersionCode(2,1,0)
#error "BIG ENDIAN byte ordering needs kernel version >= 2.1.0"
#endif
#define inw_l2b inw #define inw_l2b inw
#define inl_l2b inl #define inl_l2b inl
#define outw_b2l outw #define outw_b2l outw
...@@ -437,18 +423,9 @@ ...@@ -437,18 +423,9 @@
* Other architectures implement a weaker ordering that * Other architectures implement a weaker ordering that
* requires memory barriers (and also IO barriers when they * requires memory barriers (and also IO barriers when they
* make sense) to be used. * make sense) to be used.
* We want to be paranoid for ppc and ia64. :)
*/ */
#if defined(__i386__) || defined(__x86_64__)
#define MEMORY_BARRIER() do { ; } while(0)
#elif defined __powerpc__
#define MEMORY_BARRIER() __asm__ volatile("eieio; sync" : : : "memory")
#elif defined __ia64__
#define MEMORY_BARRIER() __asm__ volatile("mf.a; mf" : : : "memory")
#else
#define MEMORY_BARRIER() mb() #define MEMORY_BARRIER() mb()
#endif
/* /*
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/module.h> #include <linux/module.h>
#include <scsi/scsicam.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/irq.h> #include <asm/irq.h>
...@@ -26,12 +28,28 @@ ...@@ -26,12 +28,28 @@
#include "ncr53c8xx.h" #include "ncr53c8xx.h"
#include "zalon.h"
MODULE_AUTHOR("Richard Hirst"); MODULE_AUTHOR("Richard Hirst");
MODULE_DESCRIPTION("Bluefish/Zalon 720 SCSI Driver"); MODULE_DESCRIPTION("Bluefish/Zalon 720 SCSI Driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#define GSC_SCSI_ZALON_OFFSET 0x800
#define IO_MODULE_EIM (1*4)
#define IO_MODULE_DC_ADATA (2*4)
#define IO_MODULE_II_CDATA (3*4)
#define IO_MODULE_IO_COMMAND (12*4)
#define IO_MODULE_IO_STATUS (13*4)
#define IOSTATUS_RY 0x40
#define IOSTATUS_FE 0x80
#define IOIIDATA_SMINT5L 0x40000000
#define IOIIDATA_MINT5EN 0x20000000
#define IOIIDATA_PACKEN 0x10000000
#define IOIIDATA_PREFETCHEN 0x08000000
#define IOIIDATA_IOII 0x00000020
#define CMD_RESET 5
static ncr_chip zalon720_chip __initdata = { static ncr_chip zalon720_chip __initdata = {
.device_id = PSEUDO_720_ID, .device_id = PSEUDO_720_ID,
.revision_id = 0x0f, .revision_id = 0x0f,
......
#ifndef ZALON7XX_H
#define ZALON7XX_H
#include <linux/types.h>
#include <scsi/scsicam.h>
#define GSC_SCSI_ZALON_OFFSET 0x800
#define IO_MODULE_EIM (1*4)
#define IO_MODULE_DC_ADATA (2*4)
#define IO_MODULE_II_CDATA (3*4)
#define IO_MODULE_IO_COMMAND (12*4)
#define IO_MODULE_IO_STATUS (13*4)
#define IOSTATUS_RY 0x40
#define IOSTATUS_FE 0x80
#define IOIIDATA_SMINT5L 0x40000000
#define IOIIDATA_MINT5EN 0x20000000
#define IOIIDATA_PACKEN 0x10000000
#define IOIIDATA_PREFETCHEN 0x08000000
#define IOIIDATA_IOII 0x00000020
#define CMD_RESET 5
#endif /* ZALON7XX_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment