[SCSI] qla2xxx: Add acquiring of risc semaphore before doing ISP reset.
Try to acquire the semaphore; if semaphore is hung then acquire it by force. The ISP reset clears the semaphore, thereby implicitly releasing it. Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com> Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
committed by
James Bottomley
parent
807fb6d8af
commit
4ea2c9c7b3
@@ -1092,6 +1092,27 @@ struct device_reg_24xx {
|
||||
uint32_t unused_6[2]; /* Gap. */
|
||||
uint32_t iobase_sdata;
|
||||
};
|
||||
/* RISC-RISC semaphore register PCI offet */
|
||||
#define RISC_REGISTER_BASE_OFFSET 0x7010
|
||||
#define RISC_REGISTER_WINDOW_OFFET 0x6
|
||||
|
||||
/* RISC-RISC semaphore/flag register (risc address 0x7016) */
|
||||
|
||||
#define RISC_SEMAPHORE 0x1UL
|
||||
#define RISC_SEMAPHORE_WE (RISC_SEMAPHORE << 16)
|
||||
#define RISC_SEMAPHORE_CLR (RISC_SEMAPHORE_WE | 0x0UL)
|
||||
#define RISC_SEMAPHORE_SET (RISC_SEMAPHORE_WE | RISC_SEMAPHORE)
|
||||
|
||||
#define RISC_SEMAPHORE_FORCE 0x8000UL
|
||||
#define RISC_SEMAPHORE_FORCE_WE (RISC_SEMAPHORE_FORCE << 16)
|
||||
#define RISC_SEMAPHORE_FORCE_CLR (RISC_SEMAPHORE_FORCE_WE | 0x0UL)
|
||||
#define RISC_SEMAPHORE_FORCE_SET \
|
||||
(RISC_SEMAPHORE_FORCE_WE | RISC_SEMAPHORE_FORCE)
|
||||
|
||||
/* RISC semaphore timeouts (ms) */
|
||||
#define TIMEOUT_SEMAPHORE 2500
|
||||
#define TIMEOUT_SEMAPHORE_FORCE 2000
|
||||
#define TIMEOUT_TOTAL_ELAPSED 4500
|
||||
|
||||
/* Trace Control *************************************************************/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user