[U-Boot] [PATCH 3/6] net: macb: use bit access macro from header file

Anup Patel Anup.Patel at wdc.com
Wed Jul 3 03:35:29 UTC 2019



> -----Original Message-----
> From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Ramon Fried
> Sent: Tuesday, June 11, 2019 8:49 PM
> To: u-boot at lists.denx.de
> Cc: Joe Hershberger <joe.hershberger at ni.com>
> Subject: [U-Boot] [PATCH 3/6] net: macb: use bit access macro from header
> file
> 
> macb.h provides macros for reading/setting bitfields, in macb registers and
> descriptors. use that instead of redefining them in the source file.
> 
> Signed-off-by: Ramon Fried <rfried.dev at gmail.com>
> ---
> 
>  drivers/net/macb.c | 48 +++++++++++++++-------------------------------
>  1 file changed, 15 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/net/macb.c b/drivers/net/macb.c index
> 6885da9c38..d957afe21a 100644
> --- a/drivers/net/macb.c
> +++ b/drivers/net/macb.c
> @@ -77,27 +77,8 @@ struct macb_dma_desc {
>  #define MACB_RX_DMA_DESC_SIZE
> 	(DMA_DESC_BYTES(MACB_RX_RING_SIZE))
>  #define MACB_TX_DUMMY_DMA_DESC_SIZE	(DMA_DESC_BYTES(1))
> 
> -#define RXADDR_USED		0x00000001
> -#define RXADDR_WRAP		0x00000002
> -
>  #define RXBUF_FRMLEN_MASK	0x00000fff
> -#define RXBUF_FRAME_START	0x00004000
> -#define RXBUF_FRAME_END		0x00008000
> -#define RXBUF_TYPEID_MATCH	0x00400000
> -#define RXBUF_ADDR4_MATCH	0x00800000
> -#define RXBUF_ADDR3_MATCH	0x01000000
> -#define RXBUF_ADDR2_MATCH	0x02000000
> -#define RXBUF_ADDR1_MATCH	0x04000000
> -#define RXBUF_BROADCAST		0x80000000
> -
>  #define TXBUF_FRMLEN_MASK	0x000007ff
> -#define TXBUF_FRAME_END		0x00008000
> -#define TXBUF_NOCRC		0x00010000
> -#define TXBUF_EXHAUSTED		0x08000000
> -#define TXBUF_UNDERRUN		0x10000000
> -#define TXBUF_MAXRETRY		0x20000000
> -#define TXBUF_WRAP		0x40000000
> -#define TXBUF_USED		0x80000000
> 
>  struct macb_device {
>  	void			*regs;
> @@ -316,9 +297,9 @@ static int _macb_send(struct macb_device *macb,
> const char *name, void *packet,
>  	paddr = dma_map_single(packet, length, DMA_TO_DEVICE);
> 
>  	ctrl = length & TXBUF_FRMLEN_MASK;
> -	ctrl |= TXBUF_FRAME_END;
> +	ctrl |= MACB_BIT(TX_LAST);
>  	if (tx_head == (MACB_TX_RING_SIZE - 1)) {
> -		ctrl |= TXBUF_WRAP;
> +		ctrl |= MACB_BIT(TX_WRAP);
>  		macb->tx_head = 0;
>  	} else {
>  		macb->tx_head++;
> @@ -340,7 +321,7 @@ static int _macb_send(struct macb_device *macb,
> const char *name, void *packet,
>  		barrier();
>  		macb_invalidate_ring_desc(macb, TX);
>  		ctrl = macb->tx_ring[tx_head].ctrl;
> -		if (ctrl & TXBUF_USED)
> +		if (ctrl & MACB_BIT(TX_USED))
>  			break;
>  		udelay(1);
>  	}
> @@ -348,9 +329,9 @@ static int _macb_send(struct macb_device *macb,
> const char *name, void *packet,
>  	dma_unmap_single(packet, length, paddr);
> 
>  	if (i <= MACB_TX_TIMEOUT) {
> -		if (ctrl & TXBUF_UNDERRUN)
> +		if (ctrl & MACB_BIT(TX_UNDERRUN))
>  			printf("%s: TX underrun\n", name);
> -		if (ctrl & TXBUF_EXHAUSTED)
> +		if (ctrl & MACB_BIT(TX_BUF_EXHAUSTED))
>  			printf("%s: TX buffers exhausted in mid frame\n",
> name);
>  	} else {
>  		printf("%s: TX timeout\n", name);
> @@ -369,14 +350,14 @@ static void reclaim_rx_buffers(struct macb_device
> *macb,
> 
>  	macb_invalidate_ring_desc(macb, RX);
>  	while (i > new_tail) {
> -		macb->rx_ring[i].addr &= ~RXADDR_USED;
> +		macb->rx_ring[i].addr &= ~MACB_BIT(RX_USED);
>  		i++;
>  		if (i > MACB_RX_RING_SIZE)
>  			i = 0;
>  	}
> 
>  	while (i < new_tail) {
> -		macb->rx_ring[i].addr &= ~RXADDR_USED;
> +		macb->rx_ring[i].addr &= ~MACB_BIT(RX_USED);
>  		i++;
>  	}
> 
> @@ -396,17 +377,17 @@ static int _macb_recv(struct macb_device *macb,
> uchar **packetp)
>  	for (;;) {
>  		macb_invalidate_ring_desc(macb, RX);
> 
> -		if (!(macb->rx_ring[next_rx_tail].addr & RXADDR_USED))
> +		if (!(macb->rx_ring[next_rx_tail].addr &
> MACB_BIT(RX_USED)))
>  			return -EAGAIN;
> 
>  		status = macb->rx_ring[next_rx_tail].ctrl;
> -		if (status & RXBUF_FRAME_START) {
> +		if (status & MACB_BIT(RX_SOF)) {
>  			if (next_rx_tail != macb->rx_tail)
>  				reclaim_rx_buffers(macb, next_rx_tail);
>  			macb->wrapped = false;
>  		}
> 
> -		if (status & RXBUF_FRAME_END) {
> +		if (status & MACB_BIT(RX_EOF)) {
>  			buffer = macb->rx_buffer + 128 * macb->rx_tail;
>  			length = status & RXBUF_FRMLEN_MASK;
> 
> @@ -697,7 +678,7 @@ static int gmac_init_multi_queues(struct
> macb_device *macb)
>  		if (queue_mask & (1 << i))
>  			num_queues++;
> 
> -	macb->dummy_desc->ctrl = TXBUF_USED;
> +	macb->dummy_desc->ctrl = MACB_BIT(TX_USED);
>  	macb->dummy_desc->addr = 0;
>  	flush_dcache_range(macb->dummy_desc_dma, macb-
> >dummy_desc_dma +
>  			ALIGN(MACB_TX_DUMMY_DMA_DESC_SIZE,
> PKTALIGN)); @@ -730,7 +711,7 @@ static int _macb_init(struct macb_device
> *macb, const char *name)
>  	paddr = macb->rx_buffer_dma;
>  	for (i = 0; i < MACB_RX_RING_SIZE; i++) {
>  		if (i == (MACB_RX_RING_SIZE - 1))
> -			paddr |= RXADDR_WRAP;
> +			paddr |= MACB_BIT(RX_WRAP);
>  		macb->rx_ring[i].addr = paddr;
>  		macb->rx_ring[i].ctrl = 0;
>  		paddr += 128;
> @@ -741,9 +722,10 @@ static int _macb_init(struct macb_device *macb,
> const char *name)
>  	for (i = 0; i < MACB_TX_RING_SIZE; i++) {
>  		macb->tx_ring[i].addr = 0;
>  		if (i == (MACB_TX_RING_SIZE - 1))
> -			macb->tx_ring[i].ctrl = TXBUF_USED | TXBUF_WRAP;
> +			macb->tx_ring[i].ctrl = MACB_BIT(TX_USED) |
> +				MACB_BIT(TX_WRAP);
>  		else
> -			macb->tx_ring[i].ctrl = TXBUF_USED;
> +			macb->tx_ring[i].ctrl = MACB_BIT(TX_USED);
>  	}
>  	macb_flush_ring_desc(macb, TX);
> 
> --
> 2.21.0
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Reviewed-by: Anup Patel <anup.patel at wdc.com>
Tested-by: Anup Patel <anup.patel at wdc.com>

Regards,
Anup


More information about the U-Boot mailing list