diff options
-rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k.h | 10 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k_main.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 9 |
4 files changed, 11 insertions, 18 deletions
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k.h b/drivers/net/ethernet/intel/fm10k/fm10k.h index 7d42582ed48d..b14441944b4b 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k.h +++ b/drivers/net/ethernet/intel/fm10k/fm10k.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright(c) 2013 - 2018 Intel Corporation. */ | 2 | /* Copyright(c) 2013 - 2019 Intel Corporation. */ |
3 | 3 | ||
4 | #ifndef _FM10K_H_ | 4 | #ifndef _FM10K_H_ |
5 | #define _FM10K_H_ | 5 | #define _FM10K_H_ |
@@ -177,14 +177,10 @@ static inline struct netdev_queue *txring_txq(const struct fm10k_ring *ring) | |||
177 | #define MIN_Q_VECTORS 1 | 177 | #define MIN_Q_VECTORS 1 |
178 | enum fm10k_non_q_vectors { | 178 | enum fm10k_non_q_vectors { |
179 | FM10K_MBX_VECTOR, | 179 | FM10K_MBX_VECTOR, |
180 | #define NON_Q_VECTORS_VF NON_Q_VECTORS_PF | 180 | NON_Q_VECTORS |
181 | NON_Q_VECTORS_PF | ||
182 | }; | 181 | }; |
183 | 182 | ||
184 | #define NON_Q_VECTORS(hw) (((hw)->mac.type == fm10k_mac_pf) ? \ | 183 | #define MIN_MSIX_COUNT(hw) (MIN_Q_VECTORS + NON_Q_VECTORS) |
185 | NON_Q_VECTORS_PF : \ | ||
186 | NON_Q_VECTORS_VF) | ||
187 | #define MIN_MSIX_COUNT(hw) (MIN_Q_VECTORS + NON_Q_VECTORS(hw)) | ||
188 | 184 | ||
189 | struct fm10k_q_vector { | 185 | struct fm10k_q_vector { |
190 | struct fm10k_intfc *interface; | 186 | struct fm10k_intfc *interface; |
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c index 1f7e4a8f4557..c681d2d28107 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | |||
@@ -1114,13 +1114,12 @@ static void fm10k_get_channels(struct net_device *dev, | |||
1114 | struct ethtool_channels *ch) | 1114 | struct ethtool_channels *ch) |
1115 | { | 1115 | { |
1116 | struct fm10k_intfc *interface = netdev_priv(dev); | 1116 | struct fm10k_intfc *interface = netdev_priv(dev); |
1117 | struct fm10k_hw *hw = &interface->hw; | ||
1118 | 1117 | ||
1119 | /* report maximum channels */ | 1118 | /* report maximum channels */ |
1120 | ch->max_combined = fm10k_max_channels(dev); | 1119 | ch->max_combined = fm10k_max_channels(dev); |
1121 | 1120 | ||
1122 | /* report info for other vector */ | 1121 | /* report info for other vector */ |
1123 | ch->max_other = NON_Q_VECTORS(hw); | 1122 | ch->max_other = NON_Q_VECTORS; |
1124 | ch->other_count = ch->max_other; | 1123 | ch->other_count = ch->max_other; |
1125 | 1124 | ||
1126 | /* record RSS queues */ | 1125 | /* record RSS queues */ |
@@ -1132,14 +1131,13 @@ static int fm10k_set_channels(struct net_device *dev, | |||
1132 | { | 1131 | { |
1133 | struct fm10k_intfc *interface = netdev_priv(dev); | 1132 | struct fm10k_intfc *interface = netdev_priv(dev); |
1134 | unsigned int count = ch->combined_count; | 1133 | unsigned int count = ch->combined_count; |
1135 | struct fm10k_hw *hw = &interface->hw; | ||
1136 | 1134 | ||
1137 | /* verify they are not requesting separate vectors */ | 1135 | /* verify they are not requesting separate vectors */ |
1138 | if (!count || ch->rx_count || ch->tx_count) | 1136 | if (!count || ch->rx_count || ch->tx_count) |
1139 | return -EINVAL; | 1137 | return -EINVAL; |
1140 | 1138 | ||
1141 | /* verify other_count has not changed */ | 1139 | /* verify other_count has not changed */ |
1142 | if (ch->other_count != NON_Q_VECTORS(hw)) | 1140 | if (ch->other_count != NON_Q_VECTORS) |
1143 | return -EINVAL; | 1141 | return -EINVAL; |
1144 | 1142 | ||
1145 | /* verify the number of channels does not exceed hardware limits */ | 1143 | /* verify the number of channels does not exceed hardware limits */ |
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c index 17a96a49174b..e0a2be534b20 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c | |||
@@ -1824,7 +1824,7 @@ static int fm10k_init_msix_capability(struct fm10k_intfc *interface) | |||
1824 | v_budget = min_t(u16, v_budget, num_online_cpus()); | 1824 | v_budget = min_t(u16, v_budget, num_online_cpus()); |
1825 | 1825 | ||
1826 | /* account for vectors not related to queues */ | 1826 | /* account for vectors not related to queues */ |
1827 | v_budget += NON_Q_VECTORS(hw); | 1827 | v_budget += NON_Q_VECTORS; |
1828 | 1828 | ||
1829 | /* At the same time, hardware can only support a maximum of | 1829 | /* At the same time, hardware can only support a maximum of |
1830 | * hw.mac->max_msix_vectors vectors. With features | 1830 | * hw.mac->max_msix_vectors vectors. With features |
@@ -1856,7 +1856,7 @@ static int fm10k_init_msix_capability(struct fm10k_intfc *interface) | |||
1856 | } | 1856 | } |
1857 | 1857 | ||
1858 | /* record the number of queues available for q_vectors */ | 1858 | /* record the number of queues available for q_vectors */ |
1859 | interface->num_q_vectors = v_budget - NON_Q_VECTORS(hw); | 1859 | interface->num_q_vectors = v_budget - NON_Q_VECTORS; |
1860 | 1860 | ||
1861 | return 0; | 1861 | return 0; |
1862 | } | 1862 | } |
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c index 73928dbe714f..bb236fa44048 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c | |||
@@ -898,7 +898,7 @@ static void fm10k_configure_tx_ring(struct fm10k_intfc *interface, | |||
898 | 898 | ||
899 | /* Map interrupt */ | 899 | /* Map interrupt */ |
900 | if (ring->q_vector) { | 900 | if (ring->q_vector) { |
901 | txint = ring->q_vector->v_idx + NON_Q_VECTORS(hw); | 901 | txint = ring->q_vector->v_idx + NON_Q_VECTORS; |
902 | txint |= FM10K_INT_MAP_TIMER0; | 902 | txint |= FM10K_INT_MAP_TIMER0; |
903 | } | 903 | } |
904 | 904 | ||
@@ -1037,7 +1037,7 @@ static void fm10k_configure_rx_ring(struct fm10k_intfc *interface, | |||
1037 | 1037 | ||
1038 | /* Map interrupt */ | 1038 | /* Map interrupt */ |
1039 | if (ring->q_vector) { | 1039 | if (ring->q_vector) { |
1040 | rxint = ring->q_vector->v_idx + NON_Q_VECTORS(hw); | 1040 | rxint = ring->q_vector->v_idx + NON_Q_VECTORS; |
1041 | rxint |= FM10K_INT_MAP_TIMER1; | 1041 | rxint |= FM10K_INT_MAP_TIMER1; |
1042 | } | 1042 | } |
1043 | 1043 | ||
@@ -1720,10 +1720,9 @@ int fm10k_mbx_request_irq(struct fm10k_intfc *interface) | |||
1720 | void fm10k_qv_free_irq(struct fm10k_intfc *interface) | 1720 | void fm10k_qv_free_irq(struct fm10k_intfc *interface) |
1721 | { | 1721 | { |
1722 | int vector = interface->num_q_vectors; | 1722 | int vector = interface->num_q_vectors; |
1723 | struct fm10k_hw *hw = &interface->hw; | ||
1724 | struct msix_entry *entry; | 1723 | struct msix_entry *entry; |
1725 | 1724 | ||
1726 | entry = &interface->msix_entries[NON_Q_VECTORS(hw) + vector]; | 1725 | entry = &interface->msix_entries[NON_Q_VECTORS + vector]; |
1727 | 1726 | ||
1728 | while (vector) { | 1727 | while (vector) { |
1729 | struct fm10k_q_vector *q_vector; | 1728 | struct fm10k_q_vector *q_vector; |
@@ -1760,7 +1759,7 @@ int fm10k_qv_request_irq(struct fm10k_intfc *interface) | |||
1760 | unsigned int ri = 0, ti = 0; | 1759 | unsigned int ri = 0, ti = 0; |
1761 | int vector, err; | 1760 | int vector, err; |
1762 | 1761 | ||
1763 | entry = &interface->msix_entries[NON_Q_VECTORS(hw)]; | 1762 | entry = &interface->msix_entries[NON_Q_VECTORS]; |
1764 | 1763 | ||
1765 | for (vector = 0; vector < interface->num_q_vectors; vector++) { | 1764 | for (vector = 0; vector < interface->num_q_vectors; vector++) { |
1766 | struct fm10k_q_vector *q_vector = interface->q_vector[vector]; | 1765 | struct fm10k_q_vector *q_vector = interface->q_vector[vector]; |