diff options
author | Peng Li <lipeng321@huawei.com> | 2018-08-27 04:59:29 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-08-30 04:08:20 +0300 |
commit | 31fabbee8f5c658c3fa1603c66e9e4f51ea8c2c6 (patch) | |
tree | 8b13f4154dca21073b6416a4d185e7e98a9a9b4f /drivers/net/ethernet/hisilicon/hns/hnae.h | |
parent | 05212ba8132b42047ab5d63d759c6f9c28e7eab5 (diff) | |
download | linux-31fabbee8f5c658c3fa1603c66e9e4f51ea8c2c6.tar.xz |
net: hns: add the code for cleaning pkt in chip
If there are packets in hardware when changing the speed
or duplex, it may cause hardware hang up.
This patch adds the code for waiting chip to clean the all
pkts(TX & RX) in chip when the driver uses the function named
"adjust link".
This patch cleans the pkts as follows:
1) close rx of chip, close tx of protocol stack.
2) wait rcb, ppe, mac to clean.
3) adjust link
4) open rx of chip, open tx of protocol stack.
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/hisilicon/hns/hnae.h')
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns/hnae.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.h b/drivers/net/ethernet/hisilicon/hns/hnae.h index cad52bd331f7..08a750fb60c4 100644 --- a/drivers/net/ethernet/hisilicon/hns/hnae.h +++ b/drivers/net/ethernet/hisilicon/hns/hnae.h @@ -486,6 +486,8 @@ struct hnae_ae_ops { u8 *auto_neg, u16 *speed, u8 *duplex); void (*toggle_ring_irq)(struct hnae_ring *ring, u32 val); void (*adjust_link)(struct hnae_handle *handle, int speed, int duplex); + bool (*need_adjust_link)(struct hnae_handle *handle, + int speed, int duplex); int (*set_loopback)(struct hnae_handle *handle, enum hnae_loop loop_mode, int en); void (*get_ring_bdnum_limit)(struct hnae_queue *queue, |