#else
#include <linux/blk.h>
#include "scsi.h"
-#include "hosts.h"
+#include <scsi/scsi_host.h>
#include "sd.h"
#endif
* Returns:
* 0 = success, was able to issue command.
*/
+#ifdef QLA_64BIT_PTR
static int
qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
{
sp->flags |= SRB_SENT;
ha->actthreads++;
WRT_REG_WORD(®->mailbox4, ha->req_ring_index);
+ (void) RD_REG_WORD(®->mailbox4); /* PCI posted write flush */
out:
if (status)
return status;
}
+#else /* !QLA_64BIT_PTR */
-
-#ifndef QLA_64BIT_PTR
/*
* qla1280_32bit_start_scsi
* The start SCSI is responsible for building request packets on
sp->flags |= SRB_SENT;
ha->actthreads++;
WRT_REG_WORD(®->mailbox4, ha->req_ring_index);
+ (void) RD_REG_WORD(®->mailbox4); /* PCI posted write flush */
out:
if (status)
/* Set chip new ring index. */
WRT_REG_WORD(®->mailbox4, ha->req_ring_index);
+ (void) RD_REG_WORD(®->mailbox4); /* PCI posted write flush */
LEAVE("qla1280_isp_cmd");
}
/* Check for mailbox interrupt. */
- mailbox[0] = RD_REG_WORD(®->semaphore);
+ mailbox[0] = RD_REG_WORD_dmasync(®->semaphore);
if (mailbox[0] & BIT_0) {
/* Get mailbox data. */