sfc: move a couple more functions
authorAlex Maftei (amaftei) <amaftei@solarflare.com>
Fri, 10 Jan 2020 13:27:50 +0000 (13:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 10 Jan 2020 19:24:37 +0000 (11:24 -0800)
Signed-off-by: Alexandru-Mihai Maftei <amaftei@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/mcdi_port.c
drivers/net/ethernet/sfc/mcdi_port_common.c
drivers/net/ethernet/sfc/mcdi_port_common.h
drivers/net/ethernet/sfc/tx.c
drivers/net/ethernet/sfc/tx_common.c
drivers/net/ethernet/sfc/tx_common.h

index a5785205c32bff2bd2593fbf9a619e5734021a59..ab5227b13ae60aa046a567f29062c50e0d309875 100644 (file)
@@ -675,39 +675,6 @@ u32 efx_mcdi_phy_get_caps(struct efx_nic *efx)
        return phy_data->supported_cap;
 }
 
-static unsigned int efx_mcdi_event_link_speed[] = {
-       [MCDI_EVENT_LINKCHANGE_SPEED_100M] = 100,
-       [MCDI_EVENT_LINKCHANGE_SPEED_1G] = 1000,
-       [MCDI_EVENT_LINKCHANGE_SPEED_10G] = 10000,
-       [MCDI_EVENT_LINKCHANGE_SPEED_40G] = 40000,
-       [MCDI_EVENT_LINKCHANGE_SPEED_25G] = 25000,
-       [MCDI_EVENT_LINKCHANGE_SPEED_50G] = 50000,
-       [MCDI_EVENT_LINKCHANGE_SPEED_100G] = 100000,
-};
-
-void efx_mcdi_process_link_change(struct efx_nic *efx, efx_qword_t *ev)
-{
-       u32 flags, fcntl, speed, lpa;
-
-       speed = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_SPEED);
-       EFX_WARN_ON_PARANOID(speed >= ARRAY_SIZE(efx_mcdi_event_link_speed));
-       speed = efx_mcdi_event_link_speed[speed];
-
-       flags = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_LINK_FLAGS);
-       fcntl = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_FCNTL);
-       lpa = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_LP_CAP);
-
-       /* efx->link_state is only modified by efx_mcdi_phy_get_link(),
-        * which is only run after flushing the event queues. Therefore, it
-        * is safe to modify the link state outside of the mac_lock here.
-        */
-       efx_mcdi_phy_decode_link(efx, &efx->link_state, speed, flags, fcntl);
-
-       efx_mcdi_phy_check_fcntl(efx, lpa);
-
-       efx_link_status_changed(efx);
-}
-
 bool efx_mcdi_mac_check_fault(struct efx_nic *efx)
 {
        MCDI_DECLARE_BUF(outbuf, MC_CMD_GET_LINK_OUT_LEN);
index 0f3237fc68afb814e6253202992c8f7701d3d585..a6a072ba46d3714342fc17008a4d190b8dd1e294 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include "mcdi_port_common.h"
+#include "efx_common.h"
 
 int efx_mcdi_get_phy_cfg(struct efx_nic *efx, struct efx_mcdi_phy_data *cfg)
 {
@@ -532,3 +533,36 @@ int efx_mcdi_port_get_number(struct efx_nic *efx)
 
        return MCDI_DWORD(outbuf, GET_PORT_ASSIGNMENT_OUT_PORT);
 }
+
+static unsigned int efx_mcdi_event_link_speed[] = {
+       [MCDI_EVENT_LINKCHANGE_SPEED_100M] = 100,
+       [MCDI_EVENT_LINKCHANGE_SPEED_1G] = 1000,
+       [MCDI_EVENT_LINKCHANGE_SPEED_10G] = 10000,
+       [MCDI_EVENT_LINKCHANGE_SPEED_40G] = 40000,
+       [MCDI_EVENT_LINKCHANGE_SPEED_25G] = 25000,
+       [MCDI_EVENT_LINKCHANGE_SPEED_50G] = 50000,
+       [MCDI_EVENT_LINKCHANGE_SPEED_100G] = 100000,
+};
+
+void efx_mcdi_process_link_change(struct efx_nic *efx, efx_qword_t *ev)
+{
+       u32 flags, fcntl, speed, lpa;
+
+       speed = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_SPEED);
+       EFX_WARN_ON_PARANOID(speed >= ARRAY_SIZE(efx_mcdi_event_link_speed));
+       speed = efx_mcdi_event_link_speed[speed];
+
+       flags = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_LINK_FLAGS);
+       fcntl = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_FCNTL);
+       lpa = EFX_QWORD_FIELD(*ev, MCDI_EVENT_LINKCHANGE_LP_CAP);
+
+       /* efx->link_state is only modified by efx_mcdi_phy_get_link(),
+        * which is only run after flushing the event queues. Therefore, it
+        * is safe to modify the link state outside of the mac_lock here.
+        */
+       efx_mcdi_phy_decode_link(efx, &efx->link_state, speed, flags, fcntl);
+
+       efx_mcdi_phy_check_fcntl(efx, lpa);
+
+       efx_link_status_changed(efx);
+}
index 6b08a2b7eddf613a1f697513b01558654226038d..b16f11265269891d99ed6cc57abfade670e2d22a 100644 (file)
@@ -52,5 +52,6 @@ int efx_mcdi_phy_get_fecparam(struct efx_nic *efx,
 int efx_mcdi_phy_test_alive(struct efx_nic *efx);
 int efx_mcdi_set_mac(struct efx_nic *efx);
 int efx_mcdi_port_get_number(struct efx_nic *efx);
+void efx_mcdi_process_link_change(struct efx_nic *efx, efx_qword_t *ev);
 
 #endif
index 696e12c1d9e7aaaa62d862e0be7a1009ea1f48db..04d7f41d7ed90c4107a0093718523d57b2a17aa5 100644 (file)
@@ -268,24 +268,6 @@ static int efx_enqueue_skb_pio(struct efx_tx_queue *tx_queue,
 }
 #endif /* EFX_USE_PIO */
 
-/* Remove buffers put into a tx_queue for the current packet.
- * None of the buffers must have an skb attached.
- */
-static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue,
-                              unsigned int insert_count)
-{
-       struct efx_tx_buffer *buffer;
-       unsigned int bytes_compl = 0;
-       unsigned int pkts_compl = 0;
-
-       /* Work backwards until we hit the original insert pointer value */
-       while (tx_queue->insert_count != insert_count) {
-               --tx_queue->insert_count;
-               buffer = __efx_tx_queue_get_insert_buffer(tx_queue);
-               efx_dequeue_buffer(tx_queue, buffer, &pkts_compl, &bytes_compl);
-       }
-}
-
 /*
  * Fallback to software TSO.
  *
index 0ce699ecae5ab6355f01dbbf856bf04c00e4a0e1..b1571e9789d02b94f93902dfeff24386fbabc42f 100644 (file)
@@ -267,6 +267,24 @@ void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index)
        }
 }
 
+/* Remove buffers put into a tx_queue for the current packet.
+ * None of the buffers must have an skb attached.
+ */
+void efx_enqueue_unwind(struct efx_tx_queue *tx_queue,
+                       unsigned int insert_count)
+{
+       struct efx_tx_buffer *buffer;
+       unsigned int bytes_compl = 0;
+       unsigned int pkts_compl = 0;
+
+       /* Work backwards until we hit the original insert pointer value */
+       while (tx_queue->insert_count != insert_count) {
+               --tx_queue->insert_count;
+               buffer = __efx_tx_queue_get_insert_buffer(tx_queue);
+               efx_dequeue_buffer(tx_queue, buffer, &pkts_compl, &bytes_compl);
+       }
+}
+
 struct efx_tx_buffer *efx_tx_map_chunk(struct efx_tx_queue *tx_queue,
                                       dma_addr_t dma_addr, size_t len)
 {
index 58add94ab5005cf54d43e90fe375913f7b29d1cc..f92f1fe3a87ff27baed559478a628fadf2c8818c 100644 (file)
@@ -23,6 +23,9 @@ void efx_dequeue_buffer(struct efx_tx_queue *tx_queue,
 
 void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
 
+void efx_enqueue_unwind(struct efx_tx_queue *tx_queue,
+                       unsigned int insert_count);
+
 struct efx_tx_buffer *efx_tx_map_chunk(struct efx_tx_queue *tx_queue,
                                       dma_addr_t dma_addr, size_t len);
 int efx_tx_map_data(struct efx_tx_queue *tx_queue, struct sk_buff *skb,