mirror of https://gitee.com/openkylin/linux.git
atl1c: update right threshold for TSO
atl1c_configure_tx used a wrong value of MAX_TX_OFFLOAD_THRESH(9KB) for TSO threshold. the right value should be 7KB Fast Ethernet controller doesn't support Jumbo frame. Signed-off-by: xiong <xiong@qca.qualcomm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
969a7ee2a8
commit
c08b9b2a5b
|
@ -74,8 +74,6 @@
|
|||
|
||||
#define AT_RX_BUF_SIZE (ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN)
|
||||
#define MAX_JUMBO_FRAME_SIZE (6*1024)
|
||||
#define MAX_TSO_FRAME_SIZE (7*1024)
|
||||
#define MAX_TX_OFFLOAD_THRESH (9*1024)
|
||||
|
||||
#define AT_MAX_RECEIVE_QUEUE 4
|
||||
#define AT_DEF_RECEIVE_QUEUE 1
|
||||
|
|
|
@ -500,6 +500,7 @@ int atl1c_phy_power_saving(struct atl1c_hw *hw);
|
|||
/* Jumbo packet Threshold for task offload */
|
||||
#define REG_TX_TSO_OFFLOAD_THRESH 0x1594 /* In 8-bytes */
|
||||
#define TX_TSO_OFFLOAD_THRESH_MASK 0x07FF
|
||||
#define MAX_TSO_FRAME_SIZE (7*1024)
|
||||
|
||||
#define REG_TXF_WATER_MARK 0x1598 /* In 8-bytes */
|
||||
#define TXF_WATER_MARK_MASK 0x0FFF
|
||||
|
|
|
@ -501,11 +501,16 @@ static int atl1c_set_features(struct net_device *netdev,
|
|||
static int atl1c_change_mtu(struct net_device *netdev, int new_mtu)
|
||||
{
|
||||
struct atl1c_adapter *adapter = netdev_priv(netdev);
|
||||
struct atl1c_hw *hw = &adapter->hw;
|
||||
int old_mtu = netdev->mtu;
|
||||
int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
|
||||
|
||||
if ((max_frame < ETH_ZLEN + ETH_FCS_LEN) ||
|
||||
(max_frame > MAX_JUMBO_FRAME_SIZE)) {
|
||||
/* Fast Ethernet controller doesn't support jumbo packet */
|
||||
if (((hw->nic_type == athr_l2c ||
|
||||
hw->nic_type == athr_l2c_b ||
|
||||
hw->nic_type == athr_l2c_b2) && new_mtu > ETH_DATA_LEN) ||
|
||||
max_frame < ETH_ZLEN + ETH_FCS_LEN ||
|
||||
max_frame > MAX_JUMBO_FRAME_SIZE) {
|
||||
if (netif_msg_link(adapter))
|
||||
dev_warn(&adapter->pdev->dev, "invalid MTU setting\n");
|
||||
return -EINVAL;
|
||||
|
@ -1049,7 +1054,7 @@ static void atl1c_configure_tx(struct atl1c_adapter *adapter)
|
|||
u16 tx_offload_thresh;
|
||||
u32 txq_ctrl_data;
|
||||
|
||||
tx_offload_thresh = MAX_TX_OFFLOAD_THRESH;
|
||||
tx_offload_thresh = MAX_TSO_FRAME_SIZE;
|
||||
AT_WRITE_REG(hw, REG_TX_TSO_OFFLOAD_THRESH,
|
||||
(tx_offload_thresh >> 3) & TX_TSO_OFFLOAD_THRESH_MASK);
|
||||
max_pay_load = pcie_get_readrq(adapter->pdev) >> 8;
|
||||
|
|
Loading…
Reference in New Issue