aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/dpti.h
diff options
context:
space:
mode:
authorMiquel van Smoorenburg <miquels@cistron.nl>2008-05-01 19:06:39 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-05-02 14:15:26 -0400
commit67af2b060e027c84b8e48d77e00b2369d997c0d4 (patch)
tree0d56ebdd995415c574bd574c9434da1e8931e104 /drivers/scsi/dpti.h
parentc864cb145dc2218cfad9fe53d323b54b48dbab6c (diff)
[SCSI] dpt_i2o: move from virt_to_bus/bus_to_virt to dma_alloc_coherent
Remove virt_to_bus/bus_to_virt code from dpt_i2o, and use dma_alloc_coherent() / dma_free_coherent(). This is in preparation of 64-bit support, dma_alloc_coherent() can allocate memory in the lower 32 bits of physical memory which is needed because the HBA only supports message blocks under 4GB This code is based in part on the unofficial adaptec 64-bit dpt_i2o driver update that I got from Mark Salyzyn at Adaptec. Signed-off-by: Miquel van Smoorenburg <miquels@cistron.nl> Acked-by: Mark Salyzyn <Mark_Salyzyn@adaptec.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/dpti.h')
-rw-r--r--drivers/scsi/dpti.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/dpti.h b/drivers/scsi/dpti.h
index acc692915b4c..5181b92c9ddb 100644
--- a/drivers/scsi/dpti.h
+++ b/drivers/scsi/dpti.h
@@ -228,14 +228,18 @@ typedef struct _adpt_hba {
228 u32 post_fifo_size; 228 u32 post_fifo_size;
229 u32 reply_fifo_size; 229 u32 reply_fifo_size;
230 u32* reply_pool; 230 u32* reply_pool;
231 dma_addr_t reply_pool_pa;
231 u32 sg_tablesize; // Scatter/Gather List Size. 232 u32 sg_tablesize; // Scatter/Gather List Size.
232 u8 top_scsi_channel; 233 u8 top_scsi_channel;
233 u8 top_scsi_id; 234 u8 top_scsi_id;
234 u8 top_scsi_lun; 235 u8 top_scsi_lun;
235 236
236 i2o_status_block* status_block; 237 i2o_status_block* status_block;
238 dma_addr_t status_block_pa;
237 i2o_hrt* hrt; 239 i2o_hrt* hrt;
240 dma_addr_t hrt_pa;
238 i2o_lct* lct; 241 i2o_lct* lct;
242 dma_addr_t lct_pa;
239 uint lct_size; 243 uint lct_size;
240 struct i2o_device* devices; 244 struct i2o_device* devices;
241 struct adpt_channel channel[MAX_CHANNEL]; 245 struct adpt_channel channel[MAX_CHANNEL];
@@ -271,7 +275,8 @@ static int adpt_i2o_query_scalar(adpt_hba* pHba, int tid,
271static const char *adpt_i2o_get_class_name(int class); 275static const char *adpt_i2o_get_class_name(int class);
272#endif 276#endif
273static int adpt_i2o_issue_params(int cmd, adpt_hba* pHba, int tid, 277static int adpt_i2o_issue_params(int cmd, adpt_hba* pHba, int tid,
274 void *opblk, int oplen, void *resblk, int reslen); 278 void *opblk, dma_addr_t opblk_pa, int oplen,
279 void *resblk, dma_addr_t resblk_pa, int reslen);
275static int adpt_i2o_post_wait(adpt_hba* pHba, u32* msg, int len, int timeout); 280static int adpt_i2o_post_wait(adpt_hba* pHba, u32* msg, int len, int timeout);
276static int adpt_i2o_lct_get(adpt_hba* pHba); 281static int adpt_i2o_lct_get(adpt_hba* pHba);
277static int adpt_i2o_parse_lct(adpt_hba* pHba); 282static int adpt_i2o_parse_lct(adpt_hba* pHba);