diff options
| -rw-r--r-- | drivers/net/smc911x.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 0fff82080..648c94cbb 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -57,6 +57,11 @@ static inline void reg_write(u32 addr, u32 val)  #error "SMC911X: undefined bus width"  #endif /* CONFIG_DRIVER_SMC911X_16_BIT */ +u32 pkt_data_pull(u32 addr) \ +	__attribute__ ((weak, alias ("reg_read"))); +void pkt_data_push(u32 addr, u32 val) \ +	__attribute__ ((weak, alias ("reg_write"))); +  #define mdelay(n)       udelay((n)*1000)  /* Below are the register offsets and bit definitions @@ -641,7 +646,7 @@ int eth_send(volatile void *packet, int length)  	tmplen = (length + 3) / 4;  	while (tmplen--) -		reg_write(TX_DATA_FIFO, *data++); +		pkt_data_push(TX_DATA_FIFO, *data++);  	/* wait for transmission */  	while (!((reg_read(TX_FIFO_INF) & TX_FIFO_INF_TSUSED) >> 16)); @@ -684,7 +689,7 @@ int eth_rx(void)  		tmplen = (pktlen + 2+ 3) / 4;  		while (tmplen--) -			*data++ = reg_read(RX_DATA_FIFO); +			*data++ = pkt_data_pull(RX_DATA_FIFO);  		if (status & RX_STS_ES)  			printf(DRIVERNAME |