|  | @@ -294,10 +294,10 @@ static int intel_reset ( struct intel_nic *intel ) {
 | 
		
	
		
			
			| 294 | 294 |  	/* Force RX and TX packet buffer allocation, to work around an
 | 
		
	
		
			
			| 295 | 295 |  	 * errata in ICH devices.
 | 
		
	
		
			
			| 296 | 296 |  	 */
 | 
		
	
		
			
			| 297 |  | -	pbs = readl ( intel->regs + INTEL_PBS );
 | 
		
	
		
			
			| 298 |  | -	if ( ( pbs == 0x14 ) || ( pbs == 0x18 ) ) {
 | 
		
	
		
			
			|  | 297 | +	if ( intel->flags & INTEL_PBS_ERRATA ) {
 | 
		
	
		
			
			| 299 | 298 |  		DBGC ( intel, "INTEL %p WARNING: applying ICH PBS/PBA errata\n",
 | 
		
	
		
			
			| 300 | 299 |  		       intel );
 | 
		
	
		
			
			|  | 300 | +		pbs = readl ( intel->regs + INTEL_PBS );
 | 
		
	
		
			
			| 301 | 301 |  		pba = readl ( intel->regs + INTEL_PBA );
 | 
		
	
		
			
			| 302 | 302 |  		writel ( 0x08, intel->regs + INTEL_PBA );
 | 
		
	
		
			
			| 303 | 303 |  		writel ( 0x10, intel->regs + INTEL_PBS );
 | 
		
	
	
		
			
			|  | @@ -816,6 +816,7 @@ static int intel_probe ( struct pci_device *pci ) {
 | 
		
	
		
			
			| 816 | 816 |  	netdev->dev = &pci->dev;
 | 
		
	
		
			
			| 817 | 817 |  	memset ( intel, 0, sizeof ( *intel ) );
 | 
		
	
		
			
			| 818 | 818 |  	intel->port = PCI_FUNC ( pci->busdevfn );
 | 
		
	
		
			
			|  | 819 | +	intel->flags = pci->id->driver_data;
 | 
		
	
		
			
			| 819 | 820 |  	intel_init_ring ( &intel->tx, INTEL_NUM_TX_DESC, INTEL_TD );
 | 
		
	
		
			
			| 820 | 821 |  	intel_init_ring ( &intel->rx, INTEL_NUM_RX_DESC, INTEL_RD );
 | 
		
	
		
			
			| 821 | 822 |  
 | 
		
	
	
		
			
			|  | @@ -911,11 +912,11 @@ static struct pci_device_id intel_nics[] = {
 | 
		
	
		
			
			| 911 | 912 |  	PCI_ROM ( 0x8086, 0x1026, "82545gm", "82545GM", 0 ),
 | 
		
	
		
			
			| 912 | 913 |  	PCI_ROM ( 0x8086, 0x1027, "82545gm-1", "82545GM", 0 ),
 | 
		
	
		
			
			| 913 | 914 |  	PCI_ROM ( 0x8086, 0x1028, "82545gm-2", "82545GM", 0 ),
 | 
		
	
		
			
			| 914 |  | -	PCI_ROM ( 0x8086, 0x1049, "82566mm", "82566MM", 0 ),
 | 
		
	
		
			
			| 915 |  | -	PCI_ROM ( 0x8086, 0x104a, "82566dm", "82566DM", 0 ),
 | 
		
	
		
			
			| 916 |  | -	PCI_ROM ( 0x8086, 0x104b, "82566dc", "82566DC", 0 ),
 | 
		
	
		
			
			| 917 |  | -	PCI_ROM ( 0x8086, 0x104c, "82562v", "82562V 10/100", 0 ),
 | 
		
	
		
			
			| 918 |  | -	PCI_ROM ( 0x8086, 0x104d, "82566mc", "82566MC", 0 ),
 | 
		
	
		
			
			|  | 915 | +	PCI_ROM ( 0x8086, 0x1049, "82566mm", "82566MM", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			|  | 916 | +	PCI_ROM ( 0x8086, 0x104a, "82566dm", "82566DM", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			|  | 917 | +	PCI_ROM ( 0x8086, 0x104b, "82566dc", "82566DC", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			|  | 918 | +	PCI_ROM ( 0x8086, 0x104c, "82562v", "82562V", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			|  | 919 | +	PCI_ROM ( 0x8086, 0x104d, "82566mc", "82566MC", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			| 919 | 920 |  	PCI_ROM ( 0x8086, 0x105e, "82571eb", "82571EB", 0 ),
 | 
		
	
		
			
			| 920 | 921 |  	PCI_ROM ( 0x8086, 0x105f, "82571eb-1", "82571EB", 0 ),
 | 
		
	
		
			
			| 921 | 922 |  	PCI_ROM ( 0x8086, 0x1060, "82571eb-2", "82571EB", 0 ),
 | 
		
	
	
		
			
			|  | @@ -948,11 +949,11 @@ static struct pci_device_id intel_nics[] = {
 | 
		
	
		
			
			| 948 | 949 |  	PCI_ROM ( 0x8086, 0x10bc, "82571eb", "82571EB (Copper)", 0 ),
 | 
		
	
		
			
			| 949 | 950 |  	PCI_ROM ( 0x8086, 0x10bd, "82566dm-2", "82566DM-2", 0 ),
 | 
		
	
		
			
			| 950 | 951 |  	PCI_ROM ( 0x8086, 0x10bf, "82567lf", "82567LF", 0 ),
 | 
		
	
		
			
			| 951 |  | -	PCI_ROM ( 0x8086, 0x10c0, "82562v-2", "82562V-2 10/100", 0 ),
 | 
		
	
		
			
			| 952 |  | -	PCI_ROM ( 0x8086, 0x10c2, "82562g-2", "82562G-2 10/100", 0 ),
 | 
		
	
		
			
			| 953 |  | -	PCI_ROM ( 0x8086, 0x10c3, "82562gt-2", "82562GT-2 10/100", 0 ),
 | 
		
	
		
			
			| 954 |  | -	PCI_ROM ( 0x8086, 0x10c4, "82562gt", "82562GT 10/100", 0 ),
 | 
		
	
		
			
			| 955 |  | -	PCI_ROM ( 0x8086, 0x10c5, "82562g", "82562G 10/100", 0 ),
 | 
		
	
		
			
			|  | 952 | +	PCI_ROM ( 0x8086, 0x10c0, "82562v-2", "82562V-2", 0 ),
 | 
		
	
		
			
			|  | 953 | +	PCI_ROM ( 0x8086, 0x10c2, "82562g-2", "82562G-2", 0 ),
 | 
		
	
		
			
			|  | 954 | +	PCI_ROM ( 0x8086, 0x10c3, "82562gt-2", "82562GT-2", 0 ),
 | 
		
	
		
			
			|  | 955 | +	PCI_ROM ( 0x8086, 0x10c4, "82562gt", "82562GT", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			|  | 956 | +	PCI_ROM ( 0x8086, 0x10c5, "82562g", "82562G", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			| 956 | 957 |  	PCI_ROM ( 0x8086, 0x10c9, "82576", "82576", 0 ),
 | 
		
	
		
			
			| 957 | 958 |  	PCI_ROM ( 0x8086, 0x10cb, "82567v", "82567V", 0 ),
 | 
		
	
		
			
			| 958 | 959 |  	PCI_ROM ( 0x8086, 0x10cc, "82567lm-2", "82567LM-2", 0 ),
 | 
		
	
	
		
			
			|  | @@ -975,7 +976,7 @@ static struct pci_device_id intel_nics[] = {
 | 
		
	
		
			
			| 975 | 976 |  	PCI_ROM ( 0x8086, 0x10f0, "82578dc", "82578DC", 0 ),
 | 
		
	
		
			
			| 976 | 977 |  	PCI_ROM ( 0x8086, 0x10f5, "82567lm", "82567LM", 0 ),
 | 
		
	
		
			
			| 977 | 978 |  	PCI_ROM ( 0x8086, 0x10f6, "82574l", "82574L", 0 ),
 | 
		
	
		
			
			| 978 |  | -	PCI_ROM ( 0x8086, 0x1501, "82567v-3", "82567V-3", 0 ),
 | 
		
	
		
			
			|  | 979 | +	PCI_ROM ( 0x8086, 0x1501, "82567v-3", "82567V-3", INTEL_PBS_ERRATA ),
 | 
		
	
		
			
			| 979 | 980 |  	PCI_ROM ( 0x8086, 0x1502, "82579lm", "82579LM", 0 ),
 | 
		
	
		
			
			| 980 | 981 |  	PCI_ROM ( 0x8086, 0x1503, "82579v", "82579V", 0 ),
 | 
		
	
		
			
			| 981 | 982 |  	PCI_ROM ( 0x8086, 0x150a, "82576ns", "82576NS", 0 ),
 |