Commit b08866f4 authored by David S. Miller's avatar David S. Miller

Merge branch 'net-atlantic-various-non-functional-changes'

Igor Russkikh says:

====================
net: atlantic: various non-functional changes

This patchset contains several non-functional changes, which were made in
out of tree driver over the time.
Mostly typos, checkpatch findings and comment fixes.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents e562d086 4378b882
...@@ -124,21 +124,21 @@ static const char aq_macsec_stat_names[][ETH_GSTRING_LEN] = { ...@@ -124,21 +124,21 @@ static const char aq_macsec_stat_names[][ETH_GSTRING_LEN] = {
"MACSec OutUnctrlHitDropRedir", "MACSec OutUnctrlHitDropRedir",
}; };
static const char *aq_macsec_txsc_stat_names[] = { static const char * const aq_macsec_txsc_stat_names[] = {
"MACSecTXSC%d ProtectedPkts", "MACSecTXSC%d ProtectedPkts",
"MACSecTXSC%d EncryptedPkts", "MACSecTXSC%d EncryptedPkts",
"MACSecTXSC%d ProtectedOctets", "MACSecTXSC%d ProtectedOctets",
"MACSecTXSC%d EncryptedOctets", "MACSecTXSC%d EncryptedOctets",
}; };
static const char *aq_macsec_txsa_stat_names[] = { static const char * const aq_macsec_txsa_stat_names[] = {
"MACSecTXSC%dSA%d HitDropRedirect", "MACSecTXSC%dSA%d HitDropRedirect",
"MACSecTXSC%dSA%d Protected2Pkts", "MACSecTXSC%dSA%d Protected2Pkts",
"MACSecTXSC%dSA%d ProtectedPkts", "MACSecTXSC%dSA%d ProtectedPkts",
"MACSecTXSC%dSA%d EncryptedPkts", "MACSecTXSC%dSA%d EncryptedPkts",
}; };
static const char *aq_macsec_rxsa_stat_names[] = { static const char * const aq_macsec_rxsa_stat_names[] = {
"MACSecRXSC%dSA%d UntaggedHitPkts", "MACSecRXSC%dSA%d UntaggedHitPkts",
"MACSecRXSC%dSA%d CtrlHitDrpRedir", "MACSecRXSC%dSA%d CtrlHitDrpRedir",
"MACSecRXSC%dSA%d NotUsingSa", "MACSecRXSC%dSA%d NotUsingSa",
...@@ -607,7 +607,9 @@ static int aq_ethtool_get_ts_info(struct net_device *ndev, ...@@ -607,7 +607,9 @@ static int aq_ethtool_get_ts_info(struct net_device *ndev,
BIT(HWTSTAMP_FILTER_PTP_V2_L2_EVENT) | BIT(HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |
BIT(HWTSTAMP_FILTER_PTP_V2_EVENT); BIT(HWTSTAMP_FILTER_PTP_V2_EVENT);
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
info->phc_index = ptp_clock_index(aq_ptp_get_ptp_clock(aq_nic->aq_ptp)); info->phc_index = ptp_clock_index(aq_ptp_get_ptp_clock(aq_nic->aq_ptp));
#endif
return 0; return 0;
} }
...@@ -716,13 +718,12 @@ static void aq_ethtool_get_pauseparam(struct net_device *ndev, ...@@ -716,13 +718,12 @@ static void aq_ethtool_get_pauseparam(struct net_device *ndev,
struct ethtool_pauseparam *pause) struct ethtool_pauseparam *pause)
{ {
struct aq_nic_s *aq_nic = netdev_priv(ndev); struct aq_nic_s *aq_nic = netdev_priv(ndev);
u32 fc = aq_nic->aq_nic_cfg.fc.req; int fc = aq_nic->aq_nic_cfg.fc.req;
pause->autoneg = 0; pause->autoneg = 0;
pause->rx_pause = !!(fc & AQ_NIC_FC_RX); pause->rx_pause = !!(fc & AQ_NIC_FC_RX);
pause->tx_pause = !!(fc & AQ_NIC_FC_TX); pause->tx_pause = !!(fc & AQ_NIC_FC_TX);
} }
static int aq_ethtool_set_pauseparam(struct net_device *ndev, static int aq_ethtool_set_pauseparam(struct net_device *ndev,
......
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /* Atlantic Network Driver
* aQuantia Corporation Network Driver *
* Copyright (C) 2014-2019 aQuantia Corporation. All rights reserved * Copyright (C) 2014-2019 aQuantia Corporation
* Copyright (C) 2019-2020 Marvell International Ltd.
*/ */
/* File aq_main.c: Main file for aQuantia Linux driver. */ /* File aq_main.c: Main file for aQuantia Linux driver. */
...@@ -98,6 +99,7 @@ static int aq_ndev_start_xmit(struct sk_buff *skb, struct net_device *ndev) ...@@ -98,6 +99,7 @@ static int aq_ndev_start_xmit(struct sk_buff *skb, struct net_device *ndev)
{ {
struct aq_nic_s *aq_nic = netdev_priv(ndev); struct aq_nic_s *aq_nic = netdev_priv(ndev);
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
if (unlikely(aq_utils_obj_test(&aq_nic->flags, AQ_NIC_PTP_DPATH_UP))) { if (unlikely(aq_utils_obj_test(&aq_nic->flags, AQ_NIC_PTP_DPATH_UP))) {
/* Hardware adds the Timestamp for PTPv2 802.AS1 /* Hardware adds the Timestamp for PTPv2 802.AS1
* and PTPv2 IPv4 UDP. * and PTPv2 IPv4 UDP.
...@@ -114,6 +116,7 @@ static int aq_ndev_start_xmit(struct sk_buff *skb, struct net_device *ndev) ...@@ -114,6 +116,7 @@ static int aq_ndev_start_xmit(struct sk_buff *skb, struct net_device *ndev)
unlikely(eth_hdr(skb)->h_proto == htons(ETH_P_1588))) unlikely(eth_hdr(skb)->h_proto == htons(ETH_P_1588)))
return aq_ptp_xmit(aq_nic, skb); return aq_ptp_xmit(aq_nic, skb);
} }
#endif
skb_tx_timestamp(skb); skb_tx_timestamp(skb);
return aq_nic_xmit(aq_nic, skb); return aq_nic_xmit(aq_nic, skb);
...@@ -222,6 +225,7 @@ static void aq_ndev_set_multicast_settings(struct net_device *ndev) ...@@ -222,6 +225,7 @@ static void aq_ndev_set_multicast_settings(struct net_device *ndev)
(void)aq_nic_set_multicast_list(aq_nic, ndev); (void)aq_nic_set_multicast_list(aq_nic, ndev);
} }
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
static int aq_ndev_config_hwtstamp(struct aq_nic_s *aq_nic, static int aq_ndev_config_hwtstamp(struct aq_nic_s *aq_nic,
struct hwtstamp_config *config) struct hwtstamp_config *config)
{ {
...@@ -256,26 +260,31 @@ static int aq_ndev_config_hwtstamp(struct aq_nic_s *aq_nic, ...@@ -256,26 +260,31 @@ static int aq_ndev_config_hwtstamp(struct aq_nic_s *aq_nic,
return aq_ptp_hwtstamp_config_set(aq_nic->aq_ptp, config); return aq_ptp_hwtstamp_config_set(aq_nic->aq_ptp, config);
} }
#endif
static int aq_ndev_hwtstamp_set(struct aq_nic_s *aq_nic, struct ifreq *ifr) static int aq_ndev_hwtstamp_set(struct aq_nic_s *aq_nic, struct ifreq *ifr)
{ {
struct hwtstamp_config config; struct hwtstamp_config config;
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
int ret_val; int ret_val;
#endif
if (!aq_nic->aq_ptp) if (!aq_nic->aq_ptp)
return -EOPNOTSUPP; return -EOPNOTSUPP;
if (copy_from_user(&config, ifr->ifr_data, sizeof(config))) if (copy_from_user(&config, ifr->ifr_data, sizeof(config)))
return -EFAULT; return -EFAULT;
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
ret_val = aq_ndev_config_hwtstamp(aq_nic, &config); ret_val = aq_ndev_config_hwtstamp(aq_nic, &config);
if (ret_val) if (ret_val)
return ret_val; return ret_val;
#endif
return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ?
-EFAULT : 0; -EFAULT : 0;
} }
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
static int aq_ndev_hwtstamp_get(struct aq_nic_s *aq_nic, struct ifreq *ifr) static int aq_ndev_hwtstamp_get(struct aq_nic_s *aq_nic, struct ifreq *ifr)
{ {
struct hwtstamp_config config; struct hwtstamp_config config;
...@@ -287,6 +296,7 @@ static int aq_ndev_hwtstamp_get(struct aq_nic_s *aq_nic, struct ifreq *ifr) ...@@ -287,6 +296,7 @@ static int aq_ndev_hwtstamp_get(struct aq_nic_s *aq_nic, struct ifreq *ifr)
return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ?
-EFAULT : 0; -EFAULT : 0;
} }
#endif
static int aq_ndev_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) static int aq_ndev_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
{ {
...@@ -296,8 +306,10 @@ static int aq_ndev_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) ...@@ -296,8 +306,10 @@ static int aq_ndev_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
case SIOCSHWTSTAMP: case SIOCSHWTSTAMP:
return aq_ndev_hwtstamp_set(aq_nic, ifr); return aq_ndev_hwtstamp_set(aq_nic, ifr);
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
case SIOCGHWTSTAMP: case SIOCGHWTSTAMP:
return aq_ndev_hwtstamp_get(aq_nic, ifr); return aq_ndev_hwtstamp_get(aq_nic, ifr);
#endif
} }
return -EOPNOTSUPP; return -EOPNOTSUPP;
......
...@@ -1188,7 +1188,7 @@ int aq_nic_set_loopback(struct aq_nic_s *self) ...@@ -1188,7 +1188,7 @@ int aq_nic_set_loopback(struct aq_nic_s *self)
if (!self->aq_hw_ops->hw_set_loopback || if (!self->aq_hw_ops->hw_set_loopback ||
!self->aq_fw_ops->set_phyloopback) !self->aq_fw_ops->set_phyloopback)
return -ENOTSUPP; return -EOPNOTSUPP;
mutex_lock(&self->fwreq_mutex); mutex_lock(&self->fwreq_mutex);
self->aq_hw_ops->hw_set_loopback(self->aq_hw, self->aq_hw_ops->hw_set_loopback(self->aq_hw,
......
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /* Atlantic Network Driver
* aQuantia Corporation Network Driver *
* Copyright (C) 2014-2019 aQuantia Corporation. All rights reserved * Copyright (C) 2014-2019 aQuantia Corporation
* Copyright (C) 2019-2020 Marvell International Ltd.
*/ */
/* File aq_nic.h: Declaration of common code for NIC. */ /* File aq_nic.h: Declaration of common code for NIC. */
...@@ -111,7 +112,7 @@ struct aq_hw_rx_fltrs_s { ...@@ -111,7 +112,7 @@ struct aq_hw_rx_fltrs_s {
u16 active_filters; u16 active_filters;
struct aq_hw_rx_fl2 fl2; struct aq_hw_rx_fl2 fl2;
struct aq_hw_rx_fl3l4 fl3l4; struct aq_hw_rx_fl3l4 fl3l4;
/*filter ether type */ /* filter ether type */
u8 fet_reserved_count; u8 fet_reserved_count;
}; };
......
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /* Atlantic Network Driver
* aQuantia Corporation Network Driver *
* Copyright (C) 2014-2019 aQuantia Corporation. All rights reserved * Copyright (C) 2014-2019 aQuantia Corporation
* Copyright (C) 2019-2020 Marvell International Ltd.
*/ */
/* File aq_pci_func.c: Definition of PCI functions. */ /* File aq_pci_func.c: Definition of PCI functions. */
...@@ -114,7 +115,7 @@ static int aq_pci_probe_get_hw_by_id(struct pci_dev *pdev, ...@@ -114,7 +115,7 @@ static int aq_pci_probe_get_hw_by_id(struct pci_dev *pdev,
return 0; return 0;
} }
int aq_pci_func_init(struct pci_dev *pdev) static int aq_pci_func_init(struct pci_dev *pdev)
{ {
int err; int err;
......
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /* Atlantic Network Driver
* aQuantia Corporation Network Driver *
* Copyright (C) 2014-2017 aQuantia Corporation. All rights reserved * Copyright (C) 2014-2019 aQuantia Corporation
* Copyright (C) 2019-2020 Marvell International Ltd.
*/ */
/* File aq_pci_func.h: Declaration of PCI functions. */ /* File aq_pci_func.h: Declaration of PCI functions. */
...@@ -19,7 +20,6 @@ struct aq_board_revision_s { ...@@ -19,7 +20,6 @@ struct aq_board_revision_s {
const struct aq_hw_caps_s *caps; const struct aq_hw_caps_s *caps;
}; };
int aq_pci_func_init(struct pci_dev *pdev);
int aq_pci_func_alloc_irq(struct aq_nic_s *self, unsigned int i, int aq_pci_func_alloc_irq(struct aq_nic_s *self, unsigned int i,
char *name, irq_handler_t irq_handler, char *name, irq_handler_t irq_handler,
void *irq_arg, cpumask_t *affinity_mask); void *irq_arg, cpumask_t *affinity_mask);
......
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* Aquantia Corporation Network Driver /* Atlantic Network Driver
* Copyright (C) 2014-2019 Aquantia Corporation. All rights reserved *
* Copyright (C) 2014-2019 aQuantia Corporation
* Copyright (C) 2019-2020 Marvell International Ltd.
*/ */
/* File aq_ptp.c: /* File aq_ptp.c:
...@@ -18,6 +20,8 @@ ...@@ -18,6 +20,8 @@
#include "aq_phy.h" #include "aq_phy.h"
#include "aq_filters.h" #include "aq_filters.h"
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
#define AQ_PTP_TX_TIMEOUT (HZ * 10) #define AQ_PTP_TX_TIMEOUT (HZ * 10)
#define POLL_SYNC_TIMER_MS 15 #define POLL_SYNC_TIMER_MS 15
...@@ -1389,3 +1393,4 @@ static void aq_ptp_poll_sync_work_cb(struct work_struct *w) ...@@ -1389,3 +1393,4 @@ static void aq_ptp_poll_sync_work_cb(struct work_struct *w)
schedule_delayed_work(&aq_ptp->poll_sync, timeout); schedule_delayed_work(&aq_ptp->poll_sync, timeout);
} }
} }
#endif
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /* Atlantic Network Driver
* aQuantia Corporation Network Driver *
* Copyright (C) 2014-2019 aQuantia Corporation. All rights reserved * Copyright (C) 2014-2019 aQuantia Corporation
* Copyright (C) 2019-2020 Marvell International Ltd.
*/ */
/* File aq_ring.c: Definition of functions for Rx/Tx rings. */ /* File aq_ring.c: Definition of functions for Rx/Tx rings. */
...@@ -279,7 +280,7 @@ bool aq_ring_tx_clean(struct aq_ring_s *self) ...@@ -279,7 +280,7 @@ bool aq_ring_tx_clean(struct aq_ring_s *self)
} }
if (unlikely(buff->is_eop)) { if (unlikely(buff->is_eop)) {
++self->stats.rx.packets; ++self->stats.tx.packets;
self->stats.tx.bytes += buff->skb->len; self->stats.tx.bytes += buff->skb->len;
dev_kfree_skb_any(buff->skb); dev_kfree_skb_any(buff->skb);
...@@ -489,6 +490,7 @@ int aq_ring_rx_clean(struct aq_ring_s *self, ...@@ -489,6 +490,7 @@ int aq_ring_rx_clean(struct aq_ring_s *self,
void aq_ring_hwts_rx_clean(struct aq_ring_s *self, struct aq_nic_s *aq_nic) void aq_ring_hwts_rx_clean(struct aq_ring_s *self, struct aq_nic_s *aq_nic)
{ {
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
while (self->sw_head != self->hw_head) { while (self->sw_head != self->hw_head) {
u64 ns; u64 ns;
...@@ -500,6 +502,7 @@ void aq_ring_hwts_rx_clean(struct aq_ring_s *self, struct aq_nic_s *aq_nic) ...@@ -500,6 +502,7 @@ void aq_ring_hwts_rx_clean(struct aq_ring_s *self, struct aq_nic_s *aq_nic)
self->sw_head = aq_ring_next_dx(self, self->sw_head); self->sw_head = aq_ring_next_dx(self, self->sw_head);
} }
#endif
} }
int aq_ring_rx_fill(struct aq_ring_s *self) int aq_ring_rx_fill(struct aq_ring_s *self)
......
...@@ -217,7 +217,7 @@ static int hw_atl_utils_soft_reset_rbl(struct aq_hw_s *self) ...@@ -217,7 +217,7 @@ static int hw_atl_utils_soft_reset_rbl(struct aq_hw_s *self)
if (rbl_status == 0xF1A7) { if (rbl_status == 0xF1A7) {
aq_pr_err("No FW detected. Dynamic FW load not implemented\n"); aq_pr_err("No FW detected. Dynamic FW load not implemented\n");
return -ENOTSUPP; return -EOPNOTSUPP;
} }
for (k = 0; k < 1000; k++) { for (k = 0; k < 1000; k++) {
......
...@@ -16,15 +16,29 @@ ...@@ -16,15 +16,29 @@
#define AQ_A2_FW_READ_TRY_MAX 1000 #define AQ_A2_FW_READ_TRY_MAX 1000
#define hw_atl2_shared_buffer_write(HW, ITEM, VARIABLE) \ #define hw_atl2_shared_buffer_write(HW, ITEM, VARIABLE) \
{\
BUILD_BUG_ON_MSG((offsetof(struct fw_interface_in, ITEM) % \
sizeof(u32)) != 0,\
"Unaligned write " # ITEM);\
BUILD_BUG_ON_MSG((sizeof(VARIABLE) % sizeof(u32)) != 0,\
"Unaligned write length " # ITEM);\
hw_atl2_mif_shared_buf_write(HW,\ hw_atl2_mif_shared_buf_write(HW,\
(offsetof(struct fw_interface_in, ITEM) / sizeof(u32)),\ (offsetof(struct fw_interface_in, ITEM) / sizeof(u32)),\
(u32 *)&(VARIABLE), sizeof(VARIABLE) / sizeof(u32)) (u32 *)&(VARIABLE), sizeof(VARIABLE) / sizeof(u32));\
}
#define hw_atl2_shared_buffer_get(HW, ITEM, VARIABLE) \ #define hw_atl2_shared_buffer_get(HW, ITEM, VARIABLE) \
{\
BUILD_BUG_ON_MSG((offsetof(struct fw_interface_in, ITEM) % \
sizeof(u32)) != 0,\
"Unaligned get " # ITEM);\
BUILD_BUG_ON_MSG((sizeof(VARIABLE) % sizeof(u32)) != 0,\
"Unaligned get length " # ITEM);\
hw_atl2_mif_shared_buf_get(HW, \ hw_atl2_mif_shared_buf_get(HW, \
(offsetof(struct fw_interface_in, ITEM) / sizeof(u32)),\ (offsetof(struct fw_interface_in, ITEM) / sizeof(u32)),\
(u32 *)&(VARIABLE), \ (u32 *)&(VARIABLE), \
sizeof(VARIABLE) / sizeof(u32)) sizeof(VARIABLE) / sizeof(u32));\
}
/* This should never be used on non atomic fields, /* This should never be used on non atomic fields,
* treat any > u32 read as non atomic. * treat any > u32 read as non atomic.
...@@ -33,7 +47,9 @@ ...@@ -33,7 +47,9 @@
{\ {\
BUILD_BUG_ON_MSG((offsetof(struct fw_interface_out, ITEM) % \ BUILD_BUG_ON_MSG((offsetof(struct fw_interface_out, ITEM) % \
sizeof(u32)) != 0,\ sizeof(u32)) != 0,\
"Non aligned read " # ITEM);\ "Unaligned read " # ITEM);\
BUILD_BUG_ON_MSG((sizeof(VARIABLE) % sizeof(u32)) != 0,\
"Unaligned read length " # ITEM);\
BUILD_BUG_ON_MSG(sizeof(VARIABLE) > sizeof(u32),\ BUILD_BUG_ON_MSG(sizeof(VARIABLE) > sizeof(u32),\
"Non atomic read " # ITEM);\ "Non atomic read " # ITEM);\
hw_atl2_mif_shared_buf_read(HW, \ hw_atl2_mif_shared_buf_read(HW, \
...@@ -42,10 +58,18 @@ ...@@ -42,10 +58,18 @@
} }
#define hw_atl2_shared_buffer_read_safe(HW, ITEM, DATA) \ #define hw_atl2_shared_buffer_read_safe(HW, ITEM, DATA) \
({\
BUILD_BUG_ON_MSG((offsetof(struct fw_interface_out, ITEM) % \
sizeof(u32)) != 0,\
"Unaligned read_safe " # ITEM);\
BUILD_BUG_ON_MSG((sizeof(((struct fw_interface_out *)0)->ITEM) % \
sizeof(u32)) != 0,\
"Unaligned read_safe length " # ITEM);\
hw_atl2_shared_buffer_read_block((HW), \ hw_atl2_shared_buffer_read_block((HW), \
(offsetof(struct fw_interface_out, ITEM) / sizeof(u32)),\ (offsetof(struct fw_interface_out, ITEM) / sizeof(u32)),\
sizeof(((struct fw_interface_out *)0)->ITEM) / sizeof(u32),\ sizeof(((struct fw_interface_out *)0)->ITEM) / sizeof(u32),\
(DATA)) (DATA));\
})
static int hw_atl2_shared_buffer_read_block(struct aq_hw_s *self, static int hw_atl2_shared_buffer_read_block(struct aq_hw_s *self,
u32 offset, u32 dwords, void *data) u32 offset, u32 dwords, void *data)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment