diff options
| author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2008-04-24 07:57:17 +0200 | 
|---|---|---|
| committer | Ben Warren <biggerbadderben@gmail.com> | 2008-04-28 22:26:36 -0700 | 
| commit | 2ef7503a593c77a80c2a054011970227c4b62774 (patch) | |
| tree | cdfe8216b34d41da37332efe6a816d5c0a281fce /drivers/net/ne2000.h | |
| parent | 40cb90ee2b97db1f697e1b54f19a548ffc96d71b (diff) | |
| download | olio-uboot-2014.01-2ef7503a593c77a80c2a054011970227c4b62774.tar.xz olio-uboot-2014.01-2ef7503a593c77a80c2a054011970227c4b62774.zip | |
NE2000: Fix regresssion introduced by e710185aae90 on non AX88796
Move non-inlied functions into specific drivers file
Set get_prom as weak
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Vlad Lungu <vlad@comsys.ro>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'drivers/net/ne2000.h')
| -rw-r--r-- | drivers/net/ne2000.h | 87 | 
1 files changed, 1 insertions, 86 deletions
| diff --git a/drivers/net/ne2000.h b/drivers/net/ne2000.h index 604948286..2cde6be43 100644 --- a/drivers/net/ne2000.h +++ b/drivers/net/ne2000.h @@ -81,6 +81,7 @@ are GPL, so this is, of course, GPL.  #define DP_DATA		0x10  #define START_PG	0x50	/* First page of TX buffer */ +#define START_PG2	0x48  #define STOP_PG		0x80	/* Last page +1 of RX ring */  #define RX_START	0x50 @@ -90,90 +91,4 @@ are GPL, so this is, of course, GPL.  #define DP_OUT(_b_, _o_, _d_)	*( (vu_char *) ((_b_)+(_o_))) = (_d_)  #define DP_IN_DATA(_b_, _d_)	(_d_) = *( (vu_char *) ((_b_)))  #define DP_OUT_DATA(_b_, _d_)	*( (vu_char *) ((_b_))) = (_d_) - -static void pcnet_reset_8390(void) -{ -	int i, r; - -	PRINTK("nic base is %lx\n", nic_base); - -	n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD); -	PRINTK("cmd (at %lx) is %x\n", nic_base+ E8390_CMD, n2k_inb(E8390_CMD)); -	n2k_outb(E8390_NODMA+E8390_PAGE1+E8390_STOP, E8390_CMD); -	PRINTK("cmd (at %lx) is %x\n", nic_base+ E8390_CMD, n2k_inb(E8390_CMD)); -	n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD); -	PRINTK("cmd (at %lx) is %x\n", nic_base+ E8390_CMD, n2k_inb(E8390_CMD)); -	n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD); - -	n2k_outb(n2k_inb(PCNET_RESET), PCNET_RESET); - -	for (i = 0; i < 100; i++) { -		if ((r = (n2k_inb(EN0_ISR) & ENISR_RESET)) != 0) -			break; -		PRINTK("got %x in reset\n", r); -		udelay(100); -	} -	n2k_outb(ENISR_RESET, EN0_ISR); /* Ack intr. */ - -	if (i == 100) -		printf("pcnet_reset_8390() did not complete.\n"); -} /* pcnet_reset_8390 */ - -int get_prom(u8* mac_addr) -{ -	u8 prom[32]; -	int i, j; -	struct { -		u_char value, offset; -	} program_seq[] = { -		{E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD}, /* Select page 0*/ -		{0x48,  EN0_DCFG},		/* Set byte-wide (0x48) access. */ -		{0x00,  EN0_RCNTLO},		/* Clear the count regs. */ -		{0x00,  EN0_RCNTHI}, -		{0x00,  EN0_IMR},		/* Mask completion irq. */ -		{0xFF,  EN0_ISR}, -		{E8390_RXOFF, EN0_RXCR},	/* 0x20  Set to monitor */ -		{E8390_TXOFF, EN0_TXCR},	/* 0x02  and loopback mode. */ -		{32,    EN0_RCNTLO}, -		{0x00,  EN0_RCNTHI}, -		{0x00,  EN0_RSARLO},		/* DMA starting at 0x0000. */ -		{0x00,  EN0_RSARHI}, -		{E8390_RREAD+E8390_START, E8390_CMD}, -	}; - -	PRINTK ("trying to get MAC via prom reading\n"); - -	pcnet_reset_8390 (); - -	mdelay (10); - -	for (i = 0; i < sizeof (program_seq) / sizeof (program_seq[0]); i++) -		n2k_outb (program_seq[i].value, program_seq[i].offset); - -	PRINTK ("PROM:"); -	for (i = 0; i < 32; i++) { -		prom[i] = n2k_inb (PCNET_DATAPORT); -		PRINTK (" %02x", prom[i]); -	} -	PRINTK ("\n"); -	for (i = 0; i < NR_INFO; i++) { -		if ((prom[0] == hw_info[i].a0) && -		    (prom[2] == hw_info[i].a1) && -		    (prom[4] == hw_info[i].a2)) { -			PRINTK ("matched board %d\n", i); -			break; -		} -	} -	if ((i < NR_INFO) || ((prom[28] == 0x57) && (prom[30] == 0x57))) { -		PRINTK ("on exit i is %d/%ld\n", i, NR_INFO); -		PRINTK ("MAC address is "); -		for (j = 0; j < 6; j++) { -			mac_addr[j] = prom[j << 1]; -			PRINTK ("%02x:", mac_addr[i]); -		} -		PRINTK ("\n"); -		return (i < NR_INFO) ? i : 0; -	} -	return NULL; -}  #endif /* __DRIVERS_NE2000_H__ */ |