scsi: arcmsr: waiting for iop firmware ready before issue get_config command to iop

Waiting for iop firmware ready before issue get_config command to iop
for adapter type A and D.

Signed-off-by: Ching Huang <ching2048@areca.com.tw>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Ching Huang 2017-12-12 18:48:24 +08:00 коммит произвёл Martin K. Petersen
Родитель df9f0ee9d5
Коммит b6b3084acb
1 изменённых файлов: 2 добавлений и 0 удалений

Просмотреть файл

@ -2966,6 +2966,7 @@ static bool arcmsr_hbaA_get_config(struct AdapterControlBlock *acb)
char __iomem *iop_firm_version = (char __iomem *)(&reg->message_rwbuffer[17]); char __iomem *iop_firm_version = (char __iomem *)(&reg->message_rwbuffer[17]);
char __iomem *iop_device_map = (char __iomem *)(&reg->message_rwbuffer[21]); char __iomem *iop_device_map = (char __iomem *)(&reg->message_rwbuffer[21]);
int count; int count;
arcmsr_wait_firmware_ready(acb);
writel(ARCMSR_INBOUND_MESG0_GET_CONFIG, &reg->inbound_msgaddr0); writel(ARCMSR_INBOUND_MESG0_GET_CONFIG, &reg->inbound_msgaddr0);
if (!arcmsr_hbaA_wait_msgint_ready(acb)) { if (!arcmsr_hbaA_wait_msgint_ready(acb)) {
printk(KERN_NOTICE "arcmsr%d: wait 'get adapter firmware \ printk(KERN_NOTICE "arcmsr%d: wait 'get adapter firmware \
@ -3149,6 +3150,7 @@ static bool arcmsr_hbaD_get_config(struct AdapterControlBlock *acb)
writel(ARCMSR_ARC1214_IOP2DRV_MESSAGE_CMD_DONE, writel(ARCMSR_ARC1214_IOP2DRV_MESSAGE_CMD_DONE,
acb->pmuD->outbound_doorbell);/*clear interrupt*/ acb->pmuD->outbound_doorbell);/*clear interrupt*/
} }
arcmsr_wait_firmware_ready(acb);
/* post "get config" instruction */ /* post "get config" instruction */
writel(ARCMSR_INBOUND_MESG0_GET_CONFIG, reg->inbound_msgaddr0); writel(ARCMSR_INBOUND_MESG0_GET_CONFIG, reg->inbound_msgaddr0);
/* wait message ready */ /* wait message ready */