summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/marvell/aqc1xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/net/marvell/aqc1xx.c')
-rw-r--r--src/drivers/net/marvell/aqc1xx.c154
1 files changed, 70 insertions, 84 deletions
diff --git a/src/drivers/net/marvell/aqc1xx.c b/src/drivers/net/marvell/aqc1xx.c
index 42b8164ac..b108bf75d 100644
--- a/src/drivers/net/marvell/aqc1xx.c
+++ b/src/drivers/net/marvell/aqc1xx.c
@@ -2,7 +2,7 @@
*
* Marvell AQtion family network card driver.
*
- * Copyright(C) 2017-2021 Marvell
+ * Copyright(C) 2017-2024 Marvell
*
* SPDX-License-Identifier: BSD-2-Clause
*
@@ -56,8 +56,7 @@ extern struct atl_hw_ops atl2_hw;
*/
static int atl_ring_alloc ( const struct atl_nic *nic, struct atl_ring *ring,
- uint32_t desc_size, uint32_t reg_base )
-{
+ uint32_t desc_size, uint32_t reg_base ) {
physaddr_t phy_addr;
/* Allocate ring buffer.*/
@@ -75,8 +74,8 @@ static int atl_ring_alloc ( const struct atl_nic *nic, struct atl_ring *ring,
phy_addr = dma ( &ring->map, ring->ring );
/* Write ring address (hi & low parts).*/
- ATL_WRITE_REG ( (uint32_t)phy_addr, reg_base );
- ATL_WRITE_REG ( (uint32_t)(((uint64_t)phy_addr) >> 32), reg_base + 4 );
+ ATL_WRITE_REG ( ( uint32_t )phy_addr, reg_base );
+ ATL_WRITE_REG ( ( uint32_t ) ( ( ( uint64_t )phy_addr ) >> 32 ), reg_base + 4 );
/* Write ring length.*/
ATL_WRITE_REG ( ATL_RING_SIZE, reg_base + 8 );
@@ -84,35 +83,31 @@ static int atl_ring_alloc ( const struct atl_nic *nic, struct atl_ring *ring,
ring->sw_head = ring->sw_tail = 0;
DBGC ( nic, "AQUANTIA: %p ring is at [%08llx,%08llx), reg base %#x\n",
- nic, ((unsigned long long)phy_addr),
- ((unsigned long long) phy_addr + ring->length), reg_base );
+ nic, ( ( unsigned long long )phy_addr ),
+ ( ( unsigned long long ) phy_addr + ring->length ), reg_base );
return 0;
}
-static void atl_ring_free ( struct atl_ring *ring )
-{
+static void atl_ring_free ( struct atl_ring *ring ) {
dma_free ( &ring->map, ring->ring, ring->length );
ring->ring = NULL;
ring->length = 0;
}
-static void atl_ring_next_dx ( unsigned int *val )
-{
+static void atl_ring_next_dx ( unsigned int *val ) {
++( *val );
if ( *val == ATL_RING_SIZE )
*val = 0;
}
-int atl_ring_full ( const struct atl_ring *ring )
-{
+int atl_ring_full ( const struct atl_ring *ring ) {
unsigned int tail = ring->sw_tail;
atl_ring_next_dx ( &tail );
return tail == ring->sw_head;
}
-void atl_rx_ring_fill ( struct atl_nic *nic )
-{
+void atl_rx_ring_fill ( struct atl_nic *nic ) {
struct atl_desc_rx *rx;
struct io_buffer *iobuf;
physaddr_t address;
@@ -143,8 +138,8 @@ void atl_rx_ring_fill ( struct atl_nic *nic )
DBGC( nic, "AQUANTIA: RX[%d] is [%llx,%llx)\n",
nic->rx_ring.sw_tail,
- ( (unsigned long long)address),
- ( (unsigned long long)address + ATL_RX_MAX_LEN) );
+ ( ( unsigned long long )address ),
+ ( ( unsigned long long )address + ATL_RX_MAX_LEN ) );
atl_ring_next_dx ( &nic->rx_ring.sw_tail );
refilled++;
@@ -163,23 +158,22 @@ void atl_rx_ring_fill ( struct atl_nic *nic )
* @v netdev Network device
* @ret rc Return status code
*/
-static int atl_open ( struct net_device *netdev )
-{
+static int atl_open ( struct net_device *netdev ) {
struct atl_nic *nic = netdev->priv;
uint32_t ctrl = 0;
/* Tx ring */
- if ( atl_ring_alloc ( nic, &nic->tx_ring, sizeof(struct atl_desc_tx),
+ if ( atl_ring_alloc ( nic, &nic->tx_ring, sizeof ( struct atl_desc_tx ),
ATL_TX_DMA_DESC_ADDR ) != 0 )
goto err_tx_alloc;
/* Rx ring */
- if ( atl_ring_alloc ( nic, &nic->rx_ring, sizeof(struct atl_desc_rx),
+ if ( atl_ring_alloc ( nic, &nic->rx_ring, sizeof ( struct atl_desc_rx ),
ATL_RX_DMA_DESC_ADDR ) != 0 )
goto err_rx_alloc;
/* Allocate interrupt vectors */
- ATL_WRITE_REG ( (ATL_IRQ_CTRL_COR_EN | ATL_IRQ_CTRL_REG_RST_DIS),
+ ATL_WRITE_REG ( ( ATL_IRQ_CTRL_COR_EN | ATL_IRQ_CTRL_REG_RST_DIS ),
ATL_IRQ_CTRL );
/*TX & RX Interruprt Mapping*/
@@ -197,7 +191,7 @@ static int atl_open ( struct net_device *netdev )
ctrl = ATL_IRQ_TX | ATL_IRQ_RX;
/* itr mask */
ATL_WRITE_REG ( ctrl, ATL_ITR_MSKS );
- ATL_WRITE_REG ( (uint32_t)ATL_RX_MAX_LEN / 1024U,
+ ATL_WRITE_REG ( ( uint32_t )ATL_RX_MAX_LEN / 1024U,
ATL_RX_DMA_DESC_BUF_SIZE );
/*filter global ctrl */
@@ -219,8 +213,8 @@ static int atl_open ( struct net_device *netdev )
ATL_WRITE_REG ( ctrl, ATL_RPB0_CTRL2 );
/*RPB global ctrl*/
- ctrl = ATL_READ_REG(ATL_RPB_CTRL);
- ctrl |= (ATL_RPB_CTRL_EN | ATL_RPB_CTRL_FC);
+ ctrl = ATL_READ_REG ( ATL_RPB_CTRL );
+ ctrl |= ( ATL_RPB_CTRL_EN | ATL_RPB_CTRL_FC );
ATL_WRITE_REG ( ctrl, ATL_RPB_CTRL );
/*TX data path*/
@@ -266,8 +260,7 @@ err_tx_alloc:
*
* @v netdev Network device
*/
-static void atl_close ( struct net_device *netdev )
-{
+static void atl_close ( struct net_device *netdev ) {
struct atl_nic *nic = netdev->priv;
nic->hw_ops->stop ( nic );
@@ -276,9 +269,9 @@ static void atl_close ( struct net_device *netdev )
/* tgb global ctrl */
ATL_WRITE_REG ( ATL_TPB_CTRL_DIS, ATL_TPB_CTRL);
- ATL_WRITE_REG ( ATL_READ_REG(ATL_RING_TX_CTRL) | (~ATL_RING_TX_CTRL_EN),
+ ATL_WRITE_REG ( ATL_READ_REG ( ATL_RING_TX_CTRL ) | ( ~ATL_RING_TX_CTRL_EN ),
ATL_RING_TX_CTRL );
- ATL_WRITE_REG ( ATL_READ_REG(ATL_RING_RX_CTRL) | (~ATL_RING_RX_CTRL_EN),
+ ATL_WRITE_REG ( ATL_READ_REG ( ATL_RING_RX_CTRL ) | ( ~ATL_RING_RX_CTRL_EN ),
ATL_RING_RX_CTRL );
/* clear itr mask */
@@ -298,8 +291,7 @@ static void atl_close ( struct net_device *netdev )
* @v iobuf I/O buffer
* @ret rc Return status code
*/
-int atl_transmit ( struct net_device *netdev, struct io_buffer *iobuf )
-{
+int atl_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) {
struct atl_nic *nic = netdev->priv;
struct atl_desc_tx *tx;
physaddr_t address;
@@ -311,7 +303,7 @@ int atl_transmit ( struct net_device *netdev, struct io_buffer *iobuf )
return -ENOBUFS;
}
- tx = (struct atl_desc_tx *)nic->tx_ring.ring + nic->tx_ring.sw_tail;
+ tx = ( struct atl_desc_tx * )nic->tx_ring.ring + nic->tx_ring.sw_tail;
/* Populate transmit descriptor */
memset ( tx, 0, sizeof ( *tx ) );
@@ -320,17 +312,17 @@ int atl_transmit ( struct net_device *netdev, struct io_buffer *iobuf )
len = iob_len ( iobuf );
tx->status = 0x1;
- tx->status = ( (tx->status) & ~ATL_DESC_TX_BUF_LEN_MASK) |
- ((len << ATL_DESC_TX_BUF_LEN_OFFSET) &
- ATL_DESC_TX_BUF_LEN_MASK );
- tx->status = ((tx->status) & ~ATL_DESC_TX_EOP_MASK) |
+ tx->status = ( (tx->status) & ~ATL_DESC_TX_BUF_LEN_MASK) |
+ ( (len << ATL_DESC_TX_BUF_LEN_OFFSET) &
+ ATL_DESC_TX_BUF_LEN_MASK );
+ tx->status = ((tx->status) & ~ATL_DESC_TX_EOP_MASK) |
( (ATL_DESC_TX_DX_EOP_VALUE << ATL_DESC_TX_EOP_OFFSET) &
ATL_DESC_TX_EOP_MASK );
- tx->status = ( (tx->status) & ~ATL_DESC_TX_CMD_MASK) |
- ((ATL_DESC_TX_CMD_VALUE << ATL_DESC_TX_CMD_OFFSET) &
- ATL_DESC_TX_CMD_MASK );
- tx->flag = ( (tx->flag) & ~ATL_DESC_TX_PAY_LEN_MASK) |
- ((len << ATL_DESC_TX_PAY_LEN_OFFSET) &
+ tx->status = ( (tx->status) & ~ATL_DESC_TX_CMD_MASK) |
+ ( (ATL_DESC_TX_CMD_VALUE << ATL_DESC_TX_CMD_OFFSET) &
+ ATL_DESC_TX_CMD_MASK );
+ tx->flag = ( (tx->flag) & ~ATL_DESC_TX_PAY_LEN_MASK) |
+ ( (len << ATL_DESC_TX_PAY_LEN_OFFSET) &
ATL_DESC_TX_PAY_LEN_MASK );
wmb();
@@ -345,8 +337,7 @@ int atl_transmit ( struct net_device *netdev, struct io_buffer *iobuf )
return 0;
}
-void atl_check_link ( struct net_device *netdev )
-{
+void atl_check_link ( struct net_device *netdev ) {
struct atl_nic *nic = netdev->priv;
uint32_t link_state;
@@ -372,8 +363,7 @@ void atl_check_link ( struct net_device *netdev )
*
* @v netdev Network device
*/
-void atl_poll_tx ( struct net_device *netdev )
-{
+void atl_poll_tx ( struct net_device *netdev ) {
struct atl_nic *nic = netdev->priv;
struct atl_desc_tx_wb *tx;
@@ -385,7 +375,7 @@ void atl_poll_tx ( struct net_device *netdev )
nic->tx_ring.sw_head;
/* Stop if descriptor is still in use */
- if ( !(tx->status & cpu_to_le32 ( ATL_TX_DESC_STATUS_DD ) ) )
+ if ( !( tx->status & cpu_to_le32 ( ATL_TX_DESC_STATUS_DD ) ) )
return;
DBGC2 ( nic, "AQUANTIA: %p TX[%d] complete\n",
@@ -402,8 +392,7 @@ void atl_poll_tx ( struct net_device *netdev )
*
* @v netdev Network device
*/
-void atl_poll_rx ( struct net_device *netdev )
-{
+void atl_poll_rx ( struct net_device *netdev ) {
struct atl_nic *nic = netdev->priv;
struct atl_desc_rx_wb *rx;
struct io_buffer *iobuf;
@@ -413,11 +402,11 @@ void atl_poll_rx ( struct net_device *netdev )
while ( nic->rx_ring.sw_head != nic->rx_ring.sw_tail ) {
/* Get next receive descriptor */
- rx = (struct atl_desc_rx_wb *)nic->rx_ring.ring +
+ rx = ( struct atl_desc_rx_wb * )nic->rx_ring.ring +
nic->rx_ring.sw_head;
/* Stop if descriptor is still in use */
- if ( !(rx->status & cpu_to_le16(ATL_RX_DESC_STATUS_DD)) )
+ if ( !( rx->status & cpu_to_le16( ATL_RX_DESC_STATUS_DD ) ) )
return;
/* Populate I/O buffer */
@@ -441,8 +430,7 @@ void atl_poll_rx ( struct net_device *netdev )
*
* @v netdev Network device
*/
-static void atl_poll ( struct net_device *netdev )
-{
+static void atl_poll ( struct net_device *netdev ) {
struct atl_nic *nic = netdev->priv;
/* Check link state */
@@ -464,8 +452,7 @@ static void atl_poll ( struct net_device *netdev )
* @v netdev Network device
* @v enable Interrupts should be enabled
*/
-static void atl_irq ( struct net_device *netdev, int enable )
-{
+static void atl_irq ( struct net_device *netdev, int enable ) {
struct atl_nic *nic = netdev->priv;
uint32_t mask;
@@ -498,8 +485,7 @@ static struct net_device_operations atl_operations = {
* @v pci PCI device
* @ret rc Return status code
*/
-static int atl_probe ( struct pci_device *pci )
-{
+static int atl_probe ( struct pci_device *pci ) {
struct net_device *netdev;
struct atl_nic *nic;
int rc = ENOERR;
@@ -515,7 +501,7 @@ static int atl_probe ( struct pci_device *pci )
nic = netdev->priv;
pci_set_drvdata ( pci, netdev );
netdev->dev = &pci->dev;
- memset( nic, 0, sizeof( *nic ) );
+ memset( nic, 0, sizeof ( *nic ) );
nic->flags = pci->id->driver_data;
/* Fix up PCI device */
@@ -580,8 +566,7 @@ err_alloc:
*
* @v pci PCI device
*/
-static void atl_remove ( struct pci_device *pci )
-{
+static void atl_remove ( struct pci_device *pci ) {
struct net_device *netdev = pci_get_drvdata ( pci );
struct atl_nic *nic = netdev->priv;
@@ -601,43 +586,44 @@ static void atl_remove ( struct pci_device *pci )
static struct pci_device_id atl_nics[] = {
/* Atlantic 1 */
/* 10G */
- PCI_ROM(0x1D6A, 0x0001, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0xD107, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x07B1, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x87B1, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1),
+ PCI_ROM ( 0x1D6A, 0x0001, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0xD107, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x07B1, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x87B1, "AQC07", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A1 ),
/* SFP */
- PCI_ROM(0x1D6A, 0xD100, "AQC00", "Felicity Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x00B1, "AQC00", "Felicity Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x80B1, "AQC00", "Felicity Network Adapter", ATL_FLAG_A1),
+ PCI_ROM ( 0x1D6A, 0xD100, "AQC00", "Felicity Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x00B1, "AQC00", "Felicity Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x80B1, "AQC00", "Felicity Network Adapter", ATL_FLAG_A1 ),
/* 5G */
- PCI_ROM(0x1D6A, 0xD108, "AQC08", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x08B1, "AQC08", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x88B1, "AQC08", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x11B1, "AQC11", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x91B1, "AQC11", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1),
+ PCI_ROM ( 0x1D6A, 0xD108, "AQC08", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x08B1, "AQC08", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x88B1, "AQC08", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x11B1, "AQC11", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x91B1, "AQC11", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A1 ),
/* 2.5G */
- PCI_ROM(0x1D6A, 0xD109, "AQC09", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x09B1, "AQC09", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x89B1, "AQC09", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x12B1, "AQC12", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1),
- PCI_ROM(0x1D6A, 0x92B1, "AQC12", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1),
+ PCI_ROM ( 0x1D6A, 0xD109, "AQC09", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x09B1, "AQC09", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x89B1, "AQC09", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x12B1, "AQC12", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1 ),
+ PCI_ROM ( 0x1D6A, 0x92B1, "AQC12", "Marvell AQtion 2.5Gbit Network Adapter", ATL_FLAG_A1 ),
/* Atlantic 2 */
- PCI_ROM(0x1D6A, 0x00C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2),
- PCI_ROM(0x1D6A, 0x94C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2),
- PCI_ROM(0x1D6A, 0x93C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2),
- PCI_ROM(0x1D6A, 0x04C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2),
- PCI_ROM(0x1D6A, 0x14C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2),
- PCI_ROM(0x1D6A, 0x12C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2),
+ PCI_ROM ( 0x1D6A, 0x00C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2 ),
+ PCI_ROM ( 0x1D6A, 0x94C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2 ),
+ PCI_ROM ( 0x1D6A, 0x93C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2 ),
+ PCI_ROM ( 0x1D6A, 0x04C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2 ),
+ PCI_ROM ( 0x1D6A, 0x14C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2 ),
+ PCI_ROM ( 0x1D6A, 0x12C0, "AQC13", "Marvell AQtion 10Gbit Network Adapter", ATL_FLAG_A2 ),
+ PCI_ROM ( 0x1D6A, 0x03C0, "AQC14", "Marvell AQtion 5Gbit Network Adapter", ATL_FLAG_A2 ),
};
/** Marvell PCI driver */
struct pci_driver atl_driver __pci_driver = {
.ids = atl_nics,
- .id_count = (sizeof(atl_nics) / sizeof(atl_nics[0])),
+ .id_count = ( sizeof( atl_nics ) / sizeof ( atl_nics[0] ) ),
.probe = atl_probe,
.remove = atl_remove,
-}; \ No newline at end of file
+};