Commit 2d978494 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] Add ATP88x support to the ATP870U driver (Vendor patch)

Patch-by: ARTOP Corp.

Basically this adds the small bits for the new card and makes one set of items
an array because the new card is multi-channel.
Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f2f33312
...@@ -273,8 +273,8 @@ config SCSI_ACARD ...@@ -273,8 +273,8 @@ config SCSI_ACARD
tristate "ACARD SCSI support" tristate "ACARD SCSI support"
depends on PCI && SCSI depends on PCI && SCSI
help help
This driver supports the ACARD 870U/W SCSI host adapter. This driver supports the ACARD SCSI host adapter.
Support Chip <ATP870 ATP876 ATP880 ATP885>
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called atp870u. module will be called atp870u.
......
This diff is collapsed.
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#define _ATP870U_H #define _ATP870U_H
#include <linux/types.h> #include <linux/types.h>
#include <linux/kdev_t.h>
/* I/O Port */ /* I/O Port */
...@@ -11,39 +12,52 @@ ...@@ -11,39 +12,52 @@
#define ATP870U_SCATTER 128 #define ATP870U_SCATTER 128
#define ATP870U_CMDLUN 1 #define ATP870U_CMDLUN 1
struct atp_unit { #define MAX_ADAPTER 8
unsigned long ioport; #define MAX_SCSI_ID 16
unsigned long pciport; #define ATP870U_MAX_SECTORS 128
unsigned char last_cmd;
unsigned char in_snd; #define ATP885_DEVID 0x808A
unsigned char in_int; #define ATP880_DEVID1 0x8080
unsigned char quhdu; #define ATP880_DEVID2 0x8081
unsigned char quendu;
//#define ED_DBGP
struct atp_unit
{
unsigned long baseport;
unsigned long ioport[2];
unsigned long pciport[2];
unsigned long irq;
unsigned char last_cmd[2];
unsigned char in_snd[2];
unsigned char in_int[2];
unsigned char quhd[2];
unsigned char quend[2];
unsigned char global_map[2];
unsigned char chip_ver;
unsigned char scam_on; unsigned char scam_on;
unsigned char global_map; unsigned char host_id[2];
unsigned char chip_veru; unsigned int working[2];
unsigned char host_idu; unsigned short wide_id[2];
volatile int working; unsigned short active_id[2];
unsigned short wide_idu; unsigned short ultra_map[2];
unsigned short active_idu; unsigned short async[2];
unsigned short ultra_map; unsigned short dev_id;
unsigned short async; unsigned char sp[2][16];
unsigned short deviceid; unsigned char r1f[2][16];
unsigned char ata_cdbu[16]; struct scsi_cmnd *quereq[2][qcnt];
unsigned char sp[16]; struct atp_id
struct scsi_cmnd *querequ[qcnt]; {
struct atp_id { unsigned char dirct;
unsigned char dirctu; unsigned char devsp;
unsigned char devspu; unsigned char devtype;
unsigned char devtypeu; unsigned long tran_len;
unsigned long prdaddru; unsigned long last_len;
unsigned long tran_lenu; unsigned char *prd_pos;
unsigned long last_lenu; unsigned char *prd_table;
unsigned char *prd_posu; dma_addr_t prdaddr;
unsigned char *prd_tableu;
dma_addr_t prd_phys;
struct scsi_cmnd *curr_req; struct scsi_cmnd *curr_req;
} id[16]; } id[2][16];
struct Scsi_Host *host; struct Scsi_Host *host;
struct pci_dev *pdev; struct pci_dev *pdev;
unsigned int unit; unsigned int unit;
......
...@@ -1497,6 +1497,9 @@ ...@@ -1497,6 +1497,9 @@
#define PCI_DEVICE_ID_ARTOP_AEC7612D 0x8040 #define PCI_DEVICE_ID_ARTOP_AEC7612D 0x8040
#define PCI_DEVICE_ID_ARTOP_AEC7612SUW 0x8050 #define PCI_DEVICE_ID_ARTOP_AEC7612SUW 0x8050
#define PCI_DEVICE_ID_ARTOP_8060 0x8060 #define PCI_DEVICE_ID_ARTOP_8060 0x8060
#define PCI_DEVICE_ID_ARTOP_AEC67160 0x8080
#define PCI_DEVICE_ID_ARTOP_AEC67160_2 0x8081
#define PCI_DEVICE_ID_ARTOP_AEC67162 0x808a
#define PCI_VENDOR_ID_ZEITNET 0x1193 #define PCI_VENDOR_ID_ZEITNET 0x1193
#define PCI_DEVICE_ID_ZEITNET_1221 0x0001 #define PCI_DEVICE_ID_ZEITNET_1221 0x0001
......
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