|
@@ -368,9 +368,12 @@ static int xgpu_vi_mailbox_rcv_msg(struct amdgpu_device *adev,
|
|
|
u32 reg;
|
|
u32 reg;
|
|
|
u32 mask = REG_FIELD_MASK(MAILBOX_CONTROL, RCV_MSG_VALID);
|
|
u32 mask = REG_FIELD_MASK(MAILBOX_CONTROL, RCV_MSG_VALID);
|
|
|
|
|
|
|
|
- reg = RREG32_NO_KIQ(mmMAILBOX_CONTROL);
|
|
|
|
|
- if (!(reg & mask))
|
|
|
|
|
- return -ENOENT;
|
|
|
|
|
|
|
+ /* workaround: host driver doesn't set VALID for CMPL now */
|
|
|
|
|
+ if (event != IDH_FLR_NOTIFICATION_CMPL) {
|
|
|
|
|
+ reg = RREG32_NO_KIQ(mmMAILBOX_CONTROL);
|
|
|
|
|
+ if (!(reg & mask))
|
|
|
|
|
+ return -ENOENT;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
reg = RREG32_NO_KIQ(mmMAILBOX_MSGBUF_RCV_DW0);
|
|
reg = RREG32_NO_KIQ(mmMAILBOX_MSGBUF_RCV_DW0);
|
|
|
if (reg != event)
|
|
if (reg != event)
|