mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
The old way to do LAN reset is sending reset command to firmware. Once firmware performs reset, it reconfigures what it needs. In the new firmware versions, veto bit is introduced for NCSI/LLDP to block PHY domain in LAN reset. At this point, writing register of LAN reset directly makes the same effect as the old way. And it does not reset MNG domain, so that veto bit does not change. Since veto bit was never used, the old firmware is compatible with the driver before and after this change. The new firmware needs to use with the driver after this change if it wants to implement the new feature, otherwise it is the same as the old firmware. Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Link: https://lore.kernel.org/r/20230717021333.94181-1-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
39 lines
1.6 KiB
C
39 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2015 - 2022 Beijing WangXun Technology Co., Ltd. */
|
|
|
|
#ifndef _WX_HW_H_
|
|
#define _WX_HW_H_
|
|
|
|
void wx_intr_enable(struct wx *wx, u64 qmask);
|
|
void wx_irq_disable(struct wx *wx);
|
|
int wx_check_flash_load(struct wx *wx, u32 check_bit);
|
|
void wx_control_hw(struct wx *wx, bool drv);
|
|
int wx_mng_present(struct wx *wx);
|
|
int wx_host_interface_command(struct wx *wx, u32 *buffer,
|
|
u32 length, u32 timeout, bool return_data);
|
|
int wx_read_ee_hostif(struct wx *wx, u16 offset, u16 *data);
|
|
int wx_read_ee_hostif_buffer(struct wx *wx,
|
|
u16 offset, u16 words, u16 *data);
|
|
void wx_init_eeprom_params(struct wx *wx);
|
|
void wx_get_mac_addr(struct wx *wx, u8 *mac_addr);
|
|
void wx_init_rx_addrs(struct wx *wx);
|
|
void wx_mac_set_default_filter(struct wx *wx, u8 *addr);
|
|
void wx_flush_sw_mac_table(struct wx *wx);
|
|
int wx_set_mac(struct net_device *netdev, void *p);
|
|
void wx_disable_rx(struct wx *wx);
|
|
void wx_set_rx_mode(struct net_device *netdev);
|
|
int wx_change_mtu(struct net_device *netdev, int new_mtu);
|
|
void wx_disable_rx_queue(struct wx *wx, struct wx_ring *ring);
|
|
void wx_configure_rx(struct wx *wx);
|
|
void wx_configure(struct wx *wx);
|
|
void wx_start_hw(struct wx *wx);
|
|
int wx_disable_pcie_master(struct wx *wx);
|
|
int wx_stop_adapter(struct wx *wx);
|
|
void wx_reset_misc(struct wx *wx);
|
|
int wx_get_pcie_msix_counts(struct wx *wx, u16 *msix_count, u16 max_msix_count);
|
|
int wx_sw_init(struct wx *wx);
|
|
int wx_vlan_rx_add_vid(struct net_device *netdev, __be16 proto, u16 vid);
|
|
int wx_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto, u16 vid);
|
|
|
|
#endif /* _WX_HW_H_ */
|