diff options
Diffstat (limited to 'drivers/message/fusion/mptscsih.h')
-rw-r--r-- | drivers/message/fusion/mptscsih.h | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/drivers/message/fusion/mptscsih.h b/drivers/message/fusion/mptscsih.h index 187c8af0890b..843c01a6aa0e 100644 --- a/drivers/message/fusion/mptscsih.h +++ b/drivers/message/fusion/mptscsih.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * running LSI Logic Fusion MPT (Message Passing Technology) firmware. | 6 | * running LSI Logic Fusion MPT (Message Passing Technology) firmware. |
7 | * | 7 | * |
8 | * Copyright (c) 1999-2007 LSI Logic Corporation | 8 | * Copyright (c) 1999-2007 LSI Logic Corporation |
9 | * (mailto:mpt_linux_developer@lsil.com) | 9 | * (mailto:mpt_linux_developer@lsi.com) |
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 12 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
@@ -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 | ||
92 | typedef 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 | |||
75 | extern void mptscsih_remove(struct pci_dev *); | 106 | extern void mptscsih_remove(struct pci_dev *); |
76 | extern void mptscsih_shutdown(struct pci_dev *); | 107 | extern 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); | |||
81 | extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func); | 112 | extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func); |
82 | extern const char * mptscsih_info(struct Scsi_Host *SChost); | 113 | extern const char * mptscsih_info(struct Scsi_Host *SChost); |
83 | extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)); | 114 | extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)); |
84 | extern int mptscsih_target_alloc(struct scsi_target *starget); | ||
85 | extern int mptscsih_slave_alloc(struct scsi_device *device); | ||
86 | extern void mptscsih_target_destroy(struct scsi_target *starget); | ||
87 | extern void mptscsih_slave_destroy(struct scsi_device *device); | 115 | extern void mptscsih_slave_destroy(struct scsi_device *device); |
88 | extern int mptscsih_slave_configure(struct scsi_device *device); | 116 | extern int mptscsih_slave_configure(struct scsi_device *device); |
89 | extern int mptscsih_abort(struct scsi_cmnd * SCpnt); | 117 | extern int mptscsih_abort(struct scsi_cmnd * SCpnt); |
@@ -98,6 +126,6 @@ extern int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pE | |||
98 | extern int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); | 126 | extern int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); |
99 | extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth); | 127 | extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth); |
100 | extern void mptscsih_timer_expired(unsigned long data); | 128 | extern void mptscsih_timer_expired(unsigned long data); |
101 | extern int mptscsih_TMHandler(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 target, u8 lun, int ctx2abort, ulong timeout); | 129 | extern int mptscsih_TMHandler(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun, int ctx2abort, ulong timeout); |
102 | extern int mptscsih_raid_id_to_num(MPT_SCSI_HOST *hd, uint physdiskid); | 130 | extern u8 mptscsih_raid_id_to_num(MPT_ADAPTER *ioc, u8 channel, u8 id); |
103 | extern int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id); | 131 | extern int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, u8 channel, u8 id); |