aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptscsih.h
diff options
context:
space:
mode:
authorEric Moore <eric.moore@lsi.com>2007-01-29 11:42:20 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-02-02 21:48:49 -0500
commit793955f549c710a1b0c18f823d5d710840747b15 (patch)
treeef85a09c1d90404a83f95b35d6fd717c421a4e5b /drivers/message/fusion/mptscsih.h
parent502c62f17aa7daa78d5da963305251b872885ff9 (diff)
[SCSI] fusion - Greater than 255 target and lun support
Add support for greater than 255 target and luns. Kill the hd->Target[] field, and change all references of bus_id/target_id, to channel/id. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/mptscsih.h')
-rw-r--r--drivers/message/fusion/mptscsih.h42
1 files changed, 35 insertions, 7 deletions
diff --git a/drivers/message/fusion/mptscsih.h b/drivers/message/fusion/mptscsih.h
index 187c8af0890b..43b4f236adf9 100644
--- a/drivers/message/fusion/mptscsih.h
+++ b/drivers/message/fusion/mptscsih.h
@@ -53,6 +53,24 @@
53 * SCSI Public stuff... 53 * SCSI Public stuff...
54 */ 54 */
55 55
56#define MPT_SCANDV_GOOD (0x00000000) /* must be 0 */
57#define MPT_SCANDV_DID_RESET (0x00000001)
58#define MPT_SCANDV_SENSE (0x00000002)
59#define MPT_SCANDV_SOME_ERROR (0x00000004)
60#define MPT_SCANDV_SELECTION_TIMEOUT (0x00000008)
61#define MPT_SCANDV_ISSUE_SENSE (0x00000010)
62#define MPT_SCANDV_FALLBACK (0x00000020)
63
64#define MPT_SCANDV_MAX_RETRIES (10)
65
66#define MPT_ICFLAG_BUF_CAP 0x01 /* ReadBuffer Read Capacity format */
67#define MPT_ICFLAG_ECHO 0x02 /* ReadBuffer Echo buffer format */
68#define MPT_ICFLAG_EBOS 0x04 /* ReadBuffer Echo buffer has EBOS */
69#define MPT_ICFLAG_PHYS_DISK 0x08 /* Any SCSI IO but do Phys Disk Format */
70#define MPT_ICFLAG_TAGGED_CMD 0x10 /* Do tagged IO */
71#define MPT_ICFLAG_DID_RESET 0x20 /* Bus Reset occurred with this command */
72#define MPT_ICFLAG_RESERVED 0x40 /* Reserved has been issued */
73
56#define MPT_SCSI_CMD_PER_DEV_HIGH 64 74#define MPT_SCSI_CMD_PER_DEV_HIGH 64
57#define MPT_SCSI_CMD_PER_DEV_LOW 32 75#define MPT_SCSI_CMD_PER_DEV_LOW 32
58 76
@@ -69,9 +87,22 @@
69#define MPTSCSIH_SAF_TE 0 87#define MPTSCSIH_SAF_TE 0
70#define MPTSCSIH_PT_CLEAR 0 88#define MPTSCSIH_PT_CLEAR 0
71 89
72
73#endif 90#endif
74 91
92typedef struct _internal_cmd {
93 char *data; /* data pointer */
94 dma_addr_t data_dma; /* data dma address */
95 int size; /* transfer size */
96 u8 cmd; /* SCSI Op Code */
97 u8 channel; /* bus number */
98 u8 id; /* SCSI ID (virtual) */
99 int lun;
100 u8 flags; /* Bit Field - See above */
101 u8 physDiskNum; /* Phys disk number, -1 else */
102 u8 rsvd2;
103 u8 rsvd;
104} INTERNAL_CMD;
105
75extern void mptscsih_remove(struct pci_dev *); 106extern void mptscsih_remove(struct pci_dev *);
76extern void mptscsih_shutdown(struct pci_dev *); 107extern void mptscsih_shutdown(struct pci_dev *);
77#ifdef CONFIG_PM 108#ifdef CONFIG_PM
@@ -81,9 +112,6 @@ extern int mptscsih_resume(struct pci_dev *pdev);
81extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func); 112extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func);
82extern const char * mptscsih_info(struct Scsi_Host *SChost); 113extern const char * mptscsih_info(struct Scsi_Host *SChost);
83extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)); 114extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *));
84extern int mptscsih_target_alloc(struct scsi_target *starget);
85extern int mptscsih_slave_alloc(struct scsi_device *device);
86extern void mptscsih_target_destroy(struct scsi_target *starget);
87extern void mptscsih_slave_destroy(struct scsi_device *device); 115extern void mptscsih_slave_destroy(struct scsi_device *device);
88extern int mptscsih_slave_configure(struct scsi_device *device); 116extern int mptscsih_slave_configure(struct scsi_device *device);
89extern int mptscsih_abort(struct scsi_cmnd * SCpnt); 117extern int mptscsih_abort(struct scsi_cmnd * SCpnt);
@@ -98,6 +126,6 @@ extern int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pE
98extern int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); 126extern int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
99extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth); 127extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth);
100extern void mptscsih_timer_expired(unsigned long data); 128extern void mptscsih_timer_expired(unsigned long data);
101extern int mptscsih_TMHandler(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 target, u8 lun, int ctx2abort, ulong timeout); 129extern int mptscsih_TMHandler(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun, int ctx2abort, ulong timeout);
102extern int mptscsih_raid_id_to_num(MPT_SCSI_HOST *hd, uint physdiskid); 130extern u8 mptscsih_raid_id_to_num(MPT_ADAPTER *ioc, u8 channel, u8 id);
103extern int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id); 131extern int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, u8 channel, u8 id);