|
|
@@ -120,12 +120,19 @@ int t4vf_wr_mbox_core(struct adapter *adapter, const void *cmd, int size,
|
|
|
1, 1, 3, 5, 10, 10, 20, 50, 100
|
|
|
};
|
|
|
|
|
|
- u32 v;
|
|
|
+ u32 v, mbox_data;
|
|
|
int i, ms, delay_idx;
|
|
|
const __be64 *p;
|
|
|
- u32 mbox_data = T4VF_MBDATA_BASE_ADDR;
|
|
|
u32 mbox_ctl = T4VF_CIM_BASE_ADDR + CIM_VF_EXT_MAILBOX_CTRL;
|
|
|
|
|
|
+ /* In T6, mailbox size is changed to 128 bytes to avoid
|
|
|
+ * invalidating the entire prefetch buffer.
|
|
|
+ */
|
|
|
+ if (CHELSIO_CHIP_VERSION(adapter->params.chip) <= CHELSIO_T5)
|
|
|
+ mbox_data = T4VF_MBDATA_BASE_ADDR;
|
|
|
+ else
|
|
|
+ mbox_data = T6VF_MBDATA_BASE_ADDR;
|
|
|
+
|
|
|
/*
|
|
|
* Commands must be multiples of 16 bytes in length and may not be
|
|
|
* larger than the size of the Mailbox Data register array.
|