|
|
|
@ -641,7 +641,7 @@ static void ql_enable_all_completion_interrupts(struct ql_adapter *qdev) |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int ql_read_flash_word(struct ql_adapter *qdev, int offset, u32 *data) |
|
|
|
|
static int ql_read_flash_word(struct ql_adapter *qdev, int offset, __le32 *data) |
|
|
|
|
{ |
|
|
|
|
int status = 0; |
|
|
|
|
/* wait for reg to come ready */ |
|
|
|
@ -656,8 +656,11 @@ static int ql_read_flash_word(struct ql_adapter *qdev, int offset, u32 *data) |
|
|
|
|
FLASH_ADDR, FLASH_ADDR_RDY, FLASH_ADDR_ERR); |
|
|
|
|
if (status) |
|
|
|
|
goto exit; |
|
|
|
|
/* get the data */ |
|
|
|
|
*data = ql_read32(qdev, FLASH_DATA); |
|
|
|
|
/* This data is stored on flash as an array of
|
|
|
|
|
* __le32. Since ql_read32() returns cpu endian |
|
|
|
|
* we need to swap it back. |
|
|
|
|
*/ |
|
|
|
|
*data = cpu_to_le32(ql_read32(qdev, FLASH_DATA)); |
|
|
|
|
exit: |
|
|
|
|
return status; |
|
|
|
|
} |
|
|
|
@ -666,7 +669,7 @@ static int ql_get_flash_params(struct ql_adapter *qdev) |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
int status; |
|
|
|
|
u32 *p = (u32 *)&qdev->flash; |
|
|
|
|
__le32 *p = (__le32 *)&qdev->flash; |
|
|
|
|
|
|
|
|
|
if (ql_sem_spinlock(qdev, SEM_FLASH_MASK)) |
|
|
|
|
return -ETIMEDOUT; |
|
|
|
|