mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 14:46:47 +07:00
net: hns: bug fix about setting coalsecs-usecs to 0
When set rx/tx coalesce usecs to 0, the interrupt coalesce will be disabled, but there is a interrupt rate limit which set to 1us, it will cause no interrupt occurs. This patch disable interrupt limit when sets coalsecs usecs to 0, and restores it to 1 in other case. Signed-off-by: Daode Huang <huangdaode@hisilicon.com> Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
0e97cd4e46
commit
6771cbf944
@ -543,6 +543,22 @@ int hns_rcb_set_coalesce_usecs(
|
|||||||
"error: coalesce_usecs setting supports 0~1023us\n");
|
"error: coalesce_usecs setting supports 0~1023us\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver)) {
|
||||||
|
if (timeout == 0)
|
||||||
|
/* set timeout to 0, Disable gap time */
|
||||||
|
dsaf_set_reg_field(rcb_common->io_base,
|
||||||
|
RCB_INT_GAP_TIME_REG + port_idx * 4,
|
||||||
|
PPE_INT_GAPTIME_M, PPE_INT_GAPTIME_B,
|
||||||
|
0);
|
||||||
|
else
|
||||||
|
/* set timeout non 0, restore gap time to 1 */
|
||||||
|
dsaf_set_reg_field(rcb_common->io_base,
|
||||||
|
RCB_INT_GAP_TIME_REG + port_idx * 4,
|
||||||
|
PPE_INT_GAPTIME_M, PPE_INT_GAPTIME_B,
|
||||||
|
1);
|
||||||
|
}
|
||||||
|
|
||||||
hns_rcb_set_port_timeout(rcb_common, port_idx, timeout);
|
hns_rcb_set_port_timeout(rcb_common, port_idx, timeout);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -417,6 +417,7 @@
|
|||||||
#define RCB_CFG_OVERTIME_REG 0x9300
|
#define RCB_CFG_OVERTIME_REG 0x9300
|
||||||
#define RCB_CFG_PKTLINE_INT_NUM_REG 0x9304
|
#define RCB_CFG_PKTLINE_INT_NUM_REG 0x9304
|
||||||
#define RCB_CFG_OVERTIME_INT_NUM_REG 0x9308
|
#define RCB_CFG_OVERTIME_INT_NUM_REG 0x9308
|
||||||
|
#define RCB_INT_GAP_TIME_REG 0x9400
|
||||||
#define RCB_PORT_CFG_OVERTIME_REG 0x9430
|
#define RCB_PORT_CFG_OVERTIME_REG 0x9430
|
||||||
|
|
||||||
#define RCB_RING_RX_RING_BASEADDR_L_REG 0x00000
|
#define RCB_RING_RX_RING_BASEADDR_L_REG 0x00000
|
||||||
@ -898,6 +899,9 @@
|
|||||||
#define PPE_CNT_CLR_CE_B 0
|
#define PPE_CNT_CLR_CE_B 0
|
||||||
#define PPE_CNT_CLR_SNAP_EN_B 1
|
#define PPE_CNT_CLR_SNAP_EN_B 1
|
||||||
|
|
||||||
|
#define PPE_INT_GAPTIME_B 0
|
||||||
|
#define PPE_INT_GAPTIME_M 0x3ff
|
||||||
|
|
||||||
#define PPE_COMMON_CNT_CLR_CE_B 0
|
#define PPE_COMMON_CNT_CLR_CE_B 0
|
||||||
#define PPE_COMMON_CNT_CLR_SNAP_EN_B 1
|
#define PPE_COMMON_CNT_CLR_SNAP_EN_B 1
|
||||||
#define RCB_COM_TSO_MODE_B 0
|
#define RCB_COM_TSO_MODE_B 0
|
||||||
|
Loading…
Reference in New Issue
Block a user