diff options
Diffstat (limited to 'src/drivers/net/marvell/aqc1xx.c')
| -rw-r--r-- | src/drivers/net/marvell/aqc1xx.c | 154 |
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 +}; |
