// SPDX-License-Identifier: GPL-2.0 /* Copyright(c) 2013 - 2018 Intel Corporation. */ #include "fm10k_common.h" /** * fm10k_get_bus_info_generic - Generic set PCI bus info * @hw: pointer to hardware structure * * Gets the PCI bus info (speed, width, type) then calls helper function to * store this data within the fm10k_hw structure. **/ s32 fm10k_get_bus_info_generic(struct fm10k_hw *hw) { … } static u16 fm10k_get_pcie_msix_count_generic(struct fm10k_hw *hw) { … } /** * fm10k_get_invariants_generic - Inits constant values * @hw: pointer to the hardware structure * * Initialize the common invariants for the device. **/ s32 fm10k_get_invariants_generic(struct fm10k_hw *hw) { … } /** * fm10k_start_hw_generic - Prepare hardware for Tx/Rx * @hw: pointer to hardware structure * * This function sets the Tx ready flag to indicate that the Tx path has * been initialized. **/ s32 fm10k_start_hw_generic(struct fm10k_hw *hw) { … } /** * fm10k_disable_queues_generic - Stop Tx/Rx queues * @hw: pointer to hardware structure * @q_cnt: number of queues to be disabled * **/ s32 fm10k_disable_queues_generic(struct fm10k_hw *hw, u16 q_cnt) { … } /** * fm10k_stop_hw_generic - Stop Tx/Rx units * @hw: pointer to hardware structure * **/ s32 fm10k_stop_hw_generic(struct fm10k_hw *hw) { … } /** * fm10k_read_hw_stats_32b - Reads value of 32-bit registers * @hw: pointer to the hardware structure * @addr: address of register containing a 32-bit value * @stat: pointer to structure holding hw stat information * * Function reads the content of the register and returns the delta * between the base and the current value. * **/ u32 fm10k_read_hw_stats_32b(struct fm10k_hw *hw, u32 addr, struct fm10k_hw_stat *stat) { … } /** * fm10k_read_hw_stats_48b - Reads value of 48-bit registers * @hw: pointer to the hardware structure * @addr: address of register containing the lower 32-bit value * @stat: pointer to structure holding hw stat information * * Function reads the content of 2 registers, combined to represent a 48-bit * statistical value. Extra processing is required to handle overflowing. * Finally, a delta value is returned representing the difference between the * values stored in registers and values stored in the statistic counters. * **/ static u64 fm10k_read_hw_stats_48b(struct fm10k_hw *hw, u32 addr, struct fm10k_hw_stat *stat) { … } /** * fm10k_update_hw_base_48b - Updates 48-bit statistic base value * @stat: pointer to the hardware statistic structure * @delta: value to be updated into the hardware statistic structure * * Function receives a value and determines if an update is required based on * a delta calculation. Only the base value will be updated. **/ static void fm10k_update_hw_base_48b(struct fm10k_hw_stat *stat, u64 delta) { … } /** * fm10k_update_hw_stats_tx_q - Updates TX queue statistics counters * @hw: pointer to the hardware structure * @q: pointer to the ring of hardware statistics queue * @idx: index pointing to the start of the ring iteration * * Function updates the TX queue statistics counters that are related to the * hardware. **/ static void fm10k_update_hw_stats_tx_q(struct fm10k_hw *hw, struct fm10k_hw_stats_q *q, u32 idx) { … } /** * fm10k_update_hw_stats_rx_q - Updates RX queue statistics counters * @hw: pointer to the hardware structure * @q: pointer to the ring of hardware statistics queue * @idx: index pointing to the start of the ring iteration * * Function updates the RX queue statistics counters that are related to the * hardware. **/ static void fm10k_update_hw_stats_rx_q(struct fm10k_hw *hw, struct fm10k_hw_stats_q *q, u32 idx) { … } /** * fm10k_update_hw_stats_q - Updates queue statistics counters * @hw: pointer to the hardware structure * @q: pointer to the ring of hardware statistics queue * @idx: index pointing to the start of the ring iteration * @count: number of queues to iterate over * * Function updates the queue statistics counters that are related to the * hardware. **/ void fm10k_update_hw_stats_q(struct fm10k_hw *hw, struct fm10k_hw_stats_q *q, u32 idx, u32 count) { … } /** * fm10k_unbind_hw_stats_q - Unbind the queue counters from their queues * @q: pointer to the ring of hardware statistics queue * @idx: index pointing to the start of the ring iteration * @count: number of queues to iterate over * * Function invalidates the index values for the queues so any updates that * may have happened are ignored and the base for the queue stats is reset. **/ void fm10k_unbind_hw_stats_q(struct fm10k_hw_stats_q *q, u32 idx, u32 count) { … } /** * fm10k_get_host_state_generic - Returns the state of the host * @hw: pointer to hardware structure * @host_ready: pointer to boolean value that will record host state * * This function will check the health of the mailbox and Tx queue 0 * in order to determine if we should report that the link is up or not. **/ s32 fm10k_get_host_state_generic(struct fm10k_hw *hw, bool *host_ready) { … }