Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1703ecc7 authored by Jeff Garzik's avatar Jeff Garzik
Browse files

/spare/repo/netdev-2.6 branch 'uli-tulip'

parents bf4e70e5 945a7876
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -135,6 +135,18 @@ config DM9102
	  <file:Documentation/networking/net-modules.txt>.  The module will
	  be called dmfe.

config ULI526X
	tristate "ULi M526x controller support"
	depends on NET_TULIP && PCI
	select CRC32
	---help---
	  This driver is for ULi M5261/M5263 10/100M Ethernet Controller
	  (<http://www.uli.com.tw/>).

	  To compile this driver as a module, choose M here and read
	  <file:Documentation/networking/net-modules.txt>.  The module will
	  be called uli526x.
	  
config PCMCIA_XIRCOM
	tristate "Xircom CardBus support (new driver)"
	depends on NET_TULIP && CARDBUS
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ obj-$(CONFIG_WINBOND_840) += winbond-840.o
obj-$(CONFIG_DE2104X)		+= de2104x.o
obj-$(CONFIG_TULIP)		+= tulip.o
obj-$(CONFIG_DE4X5)		+= de4x5.o
obj-$(CONFIG_ULI526X)		+= uli526x.o

# Declare multi-part drivers.

+0 −36
Original line number Diff line number Diff line
@@ -81,25 +81,6 @@ int tulip_mdio_read(struct net_device *dev, int phy_id, int location)
		return retval & 0xffff;
	}

	if(tp->chip_id == ULI526X && tp->revision >= 0x40) {
		int value;
		int i = 1000;
		
		value = ioread32(ioaddr + CSR9);
		iowrite32(value & 0xFFEFFFFF, ioaddr + CSR9);
		
		value = (phy_id << 21) | (location << 16) | 0x08000000;
		iowrite32(value, ioaddr + CSR10);
		
		while(--i > 0) {
			mdio_delay();
			if(ioread32(ioaddr + CSR10) & 0x10000000)
				break;
		}
		retval = ioread32(ioaddr + CSR10);
		spin_unlock_irqrestore(&tp->mii_lock, flags);
		return retval & 0xFFFF;
	}
	/* Establish sync by sending at least 32 logic ones. */
	for (i = 32; i >= 0; i--) {
		iowrite32(MDIO_ENB | MDIO_DATA_WRITE1, mdio_addr);
@@ -159,23 +140,6 @@ void tulip_mdio_write(struct net_device *dev, int phy_id, int location, int val)
		spin_unlock_irqrestore(&tp->mii_lock, flags);
		return;
	}
	if (tp->chip_id == ULI526X && tp->revision >= 0x40) {
		int value;
		int i = 1000;
		
		value = ioread32(ioaddr + CSR9);
		iowrite32(value & 0xFFEFFFFF, ioaddr + CSR9);
		
		value = (phy_id << 21) | (location << 16) | 0x04000000 | (val & 0xFFFF);
		iowrite32(value, ioaddr + CSR10);
		
		while(--i > 0) {
			if (ioread32(ioaddr + CSR10) & 0x10000000)
				break;
		}
		spin_unlock_irqrestore(&tp->mii_lock, flags);
		return;
	}
		
	/* Establish sync by sending 32 logic ones. */
	for (i = 32; i >= 0; i--) {
+0 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ void tulip_timer(unsigned long data)
	case MX98713:
	case COMPEX9881:
	case DM910X:
	case ULI526X:
	default: {
		struct medialeaf *mleaf;
		unsigned char *p;
+2 −6
Original line number Diff line number Diff line
@@ -88,7 +88,6 @@ enum chips {
	I21145,
	DM910X,
	CONEXANT,
	ULI526X
};


@@ -482,11 +481,8 @@ static inline void tulip_stop_rxtx(struct tulip_private *tp)

static inline void tulip_restart_rxtx(struct tulip_private *tp)
{
	if(!(tp->chip_id == ULI526X && 
		(tp->revision == 0x40 || tp->revision == 0x50))) {
	tulip_stop_rxtx(tp);
	udelay(5);
	}
	tulip_start_rxtx(tp);
}

Loading