1*fb38d839Srin /* $NetBSD: igc_mac.h,v 1.2 2023/10/04 07:35:27 rin Exp $ */ 2d0d8f2a5Srin /* $OpenBSD: igc_mac.h,v 1.1 2021/10/31 14:52:57 patrick Exp $ */ 3d0d8f2a5Srin /*- 4d0d8f2a5Srin * Copyright 2021 Intel Corp 5d0d8f2a5Srin * Copyright 2021 Rubicon Communications, LLC (Netgate) 6d0d8f2a5Srin * SPDX-License-Identifier: BSD-3-Clause 7d0d8f2a5Srin * 8d0d8f2a5Srin * $FreeBSD$ 9d0d8f2a5Srin */ 10d0d8f2a5Srin 11d0d8f2a5Srin #ifndef _IGC_MAC_H_ 12d0d8f2a5Srin #define _IGC_MAC_H_ 13d0d8f2a5Srin 14d0d8f2a5Srin void igc_init_mac_ops_generic(struct igc_hw *); 15d0d8f2a5Srin int igc_null_ops_generic(struct igc_hw *); 16d0d8f2a5Srin int igc_null_link_info(struct igc_hw *, uint16_t *, uint16_t *); 17d0d8f2a5Srin bool igc_null_mng_mode(struct igc_hw *); 18d0d8f2a5Srin void igc_null_update_mc(struct igc_hw *, uint8_t *h, uint32_t); 19d0d8f2a5Srin void igc_null_write_vfta(struct igc_hw *, uint32_t a, uint32_t); 20d0d8f2a5Srin int igc_check_for_copper_link_generic(struct igc_hw *); 21d0d8f2a5Srin int igc_config_fc_after_link_up_generic(struct igc_hw *); 22d0d8f2a5Srin int igc_disable_pcie_master_generic(struct igc_hw *); 23d0d8f2a5Srin int igc_force_mac_fc_generic(struct igc_hw *); 24d0d8f2a5Srin int igc_get_auto_rd_done_generic(struct igc_hw *); 25d0d8f2a5Srin int igc_get_bus_info_pcie_generic(struct igc_hw *); 26d0d8f2a5Srin void igc_set_lan_id_single_port(struct igc_hw *); 27d0d8f2a5Srin int igc_get_speed_and_duplex_copper_generic(struct igc_hw *, uint16_t *, 28d0d8f2a5Srin uint16_t *); 29d0d8f2a5Srin void igc_update_mc_addr_list_generic(struct igc_hw *, uint8_t *, uint32_t); 30d0d8f2a5Srin int igc_rar_set_generic(struct igc_hw *, uint8_t *, uint32_t); 31d0d8f2a5Srin int igc_set_fc_watermarks_generic(struct igc_hw *); 32d0d8f2a5Srin int igc_setup_link_generic(struct igc_hw *); 33d0d8f2a5Srin int igc_validate_mdi_setting_crossover_generic(struct igc_hw *); 34d0d8f2a5Srin 35d0d8f2a5Srin int igc_hash_mc_addr_generic(struct igc_hw *, uint8_t *); 36d0d8f2a5Srin 37d0d8f2a5Srin void igc_clear_hw_cntrs_base_generic(struct igc_hw *); 38d0d8f2a5Srin void igc_clear_vfta_generic(struct igc_hw *); 39d0d8f2a5Srin void igc_init_rx_addrs_generic(struct igc_hw *, uint16_t); 40d0d8f2a5Srin void igc_pcix_mmrbc_workaround_generic(struct igc_hw *); 41d0d8f2a5Srin void igc_put_hw_semaphore_generic(struct igc_hw *); 42d0d8f2a5Srin int igc_check_alt_mac_addr_generic(struct igc_hw *); 43d0d8f2a5Srin void igc_set_pcie_no_snoop_generic(struct igc_hw *, uint32_t); 44d0d8f2a5Srin void igc_write_vfta_generic(struct igc_hw *, uint32_t, uint32_t); 45d0d8f2a5Srin void igc_config_collision_dist_generic(struct igc_hw *); 46d0d8f2a5Srin 47d0d8f2a5Srin #endif /* _IGC_MAC_H_ */ 48