| 
				
			 | 
			
			
				
				@@ -279,10 +279,10 @@ static void rtl_init_eeprom ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				279
			 | 
			
				279
			 | 
			
			
				
				 	/* Detect EEPROM type and initialise three-wire device */ 
			 | 
		
		
	
		
			
			| 
				280
			 | 
			
				280
			 | 
			
			
				
				 	ee9356 = ( inw ( rtl->ioaddr + RxConfig ) & Eeprom9356 ); 
			 | 
		
		
	
		
			
			| 
				281
			 | 
			
				281
			 | 
			
			
				
				 	if ( ee9356 ) { 
			 | 
		
		
	
		
			
			| 
				282
			 | 
			
				
			 | 
			
			
				
				-		DBG ( "EEPROM is an AT93C56\n" ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				282
			 | 
			
			
				
				+		DBGC ( rtl, "rtl8139 %p EEPROM is an AT93C56\n", rtl ); 
			 | 
		
		
	
		
			
			| 
				283
			 | 
			
				283
			 | 
			
			
				
				 		init_at93c56 ( &rtl->eeprom, 16 ); 
			 | 
		
		
	
		
			
			| 
				284
			 | 
			
				284
			 | 
			
			
				
				 	} else { 
			 | 
		
		
	
		
			
			| 
				285
			 | 
			
				
			 | 
			
			
				
				-		DBG ( "EEPROM is an AT93C46\n" ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				285
			 | 
			
			
				
				+		DBGC ( rtl, "rtl8139 %p EEPROM is an AT93C46\n", rtl ); 
			 | 
		
		
	
		
			
			| 
				286
			 | 
			
				286
			 | 
			
			
				
				 		init_at93c46 ( &rtl->eeprom, 16 ); 
			 | 
		
		
	
		
			
			| 
				287
			 | 
			
				287
			 | 
			
			
				
				 	} 
			 | 
		
		
	
		
			
			| 
				288
			 | 
			
				288
			 | 
			
			
				
				 	rtl->eeprom.bus = &rtl->spibit.bus; 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -290,7 +290,8 @@ static void rtl_init_eeprom ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				290
			 | 
			
				290
			 | 
			
			
				
				 	/* Initialise space for non-volatile options, if available */ 
			 | 
		
		
	
		
			
			| 
				291
			 | 
			
				291
			 | 
			
			
				
				 	vpd = ( inw ( rtl->ioaddr + Config1 ) & VPDEnable ); 
			 | 
		
		
	
		
			
			| 
				292
			 | 
			
				292
			 | 
			
			
				
				 	if ( vpd ) { 
			 | 
		
		
	
		
			
			| 
				293
			 | 
			
				
			 | 
			
			
				
				-		DBG ( "EEPROM in use for VPD; cannot use for options\n" ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				293
			 | 
			
			
				
				+		DBGC ( rtl, "rtl8139 %p EEPROM in use for VPD; cannot use " 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				294
			 | 
			
			
				
				+		       "for options\n", rtl ); 
			 | 
		
		
	
		
			
			| 
				294
			 | 
			
				295
			 | 
			
			
				
				 	} else { 
			 | 
		
		
	
		
			
			| 
				295
			 | 
			
				296
			 | 
			
			
				
				 		nvo_init ( &rtl->nvo, &rtl->eeprom.nvs, rtl_nvo_fragments, 
			 | 
		
		
	
		
			
			| 
				296
			 | 
			
				297
			 | 
			
			
				
				 			   &netdev->refcnt ); 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -333,7 +334,8 @@ static int rtl_open ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				333
			 | 
			
				334
			 | 
			
			
				
				 	if ( ! rtl->rx.ring ) 
			 | 
		
		
	
		
			
			| 
				334
			 | 
			
				335
			 | 
			
			
				
				 		return -ENOMEM; 
			 | 
		
		
	
		
			
			| 
				335
			 | 
			
				336
			 | 
			
			
				
				 	outl ( virt_to_bus ( rtl->rx.ring ), rtl->ioaddr + RxBuf ); 
			 | 
		
		
	
		
			
			| 
				336
			 | 
			
				
			 | 
			
			
				
				-	DBG ( "RX ring at %lx\n", virt_to_bus ( rtl->rx.ring ) ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				337
			 | 
			
			
				
				+	DBGC ( rtl, "rtl8139 %p RX ring at %lx\n", 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				338
			 | 
			
			
				
				+	       rtl, virt_to_bus ( rtl->rx.ring ) ); 
			 | 
		
		
	
		
			
			| 
				337
			 | 
			
				339
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				338
			 | 
			
				340
			 | 
			
			
				
				 	/* Enable TX and RX */ 
			 | 
		
		
	
		
			
			| 
				339
			 | 
			
				341
			 | 
			
			
				
				 	outb ( ( CmdRxEnb | CmdTxEnb ), rtl->ioaddr + ChipCmd ); 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -377,7 +379,7 @@ static int rtl_transmit ( struct net_device *netdev, 
			 | 
		
		
	
		
			
			| 
				377
			 | 
			
				379
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				378
			 | 
			
				380
			 | 
			
			
				
				 	/* Check for space in TX ring */ 
			 | 
		
		
	
		
			
			| 
				379
			 | 
			
				381
			 | 
			
			
				
				 	if ( rtl->tx.iobuf[rtl->tx.next] != NULL ) { 
			 | 
		
		
	
		
			
			| 
				380
			 | 
			
				
			 | 
			
			
				
				-		DBG ( "TX overflow\n" ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				382
			 | 
			
			
				
				+		DBGC ( rtl, "rtl8139 %p TX overflow\n", rtl ); 
			 | 
		
		
	
		
			
			| 
				381
			 | 
			
				383
			 | 
			
			
				
				 		return -ENOBUFS; 
			 | 
		
		
	
		
			
			| 
				382
			 | 
			
				384
			 | 
			
			
				
				 	} 
			 | 
		
		
	
		
			
			| 
				383
			 | 
			
				385
			 | 
			
			
				
				  
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -385,8 +387,8 @@ static int rtl_transmit ( struct net_device *netdev, 
			 | 
		
		
	
		
			
			| 
				385
			 | 
			
				387
			 | 
			
			
				
				 	iob_pad ( iobuf, ETH_ZLEN ); 
			 | 
		
		
	
		
			
			| 
				386
			 | 
			
				388
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				387
			 | 
			
				389
			 | 
			
			
				
				 	/* Add to TX ring */ 
			 | 
		
		
	
		
			
			| 
				388
			 | 
			
				
			 | 
			
			
				
				-	DBG ( "TX id %d at %lx+%zx\n", rtl->tx.next, 
			 | 
		
		
	
		
			
			| 
				389
			 | 
			
				
			 | 
			
			
				
				-	      virt_to_bus ( iobuf->data ), iob_len ( iobuf ) ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				390
			 | 
			
			
				
				+	DBGC2 ( rtl, "rtl8139 %p TX id %d at %lx+%zx\n", rtl, rtl->tx.next, 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				391
			 | 
			
			
				
				+		virt_to_bus ( iobuf->data ), iob_len ( iobuf ) ); 
			 | 
		
		
	
		
			
			| 
				390
			 | 
			
				392
			 | 
			
			
				
				 	rtl->tx.iobuf[rtl->tx.next] = iobuf; 
			 | 
		
		
	
		
			
			| 
				391
			 | 
			
				393
			 | 
			
			
				
				 	outl ( virt_to_bus ( iobuf->data ), 
			 | 
		
		
	
		
			
			| 
				392
			 | 
			
				394
			 | 
			
			
				
				 	       rtl->ioaddr + TxAddr0 + 4 * rtl->tx.next ); 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -422,7 +424,8 @@ static void rtl_poll ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				422
			 | 
			
				424
			 | 
			
			
				
				 	tsad = inw ( rtl->ioaddr + TxSummary ); 
			 | 
		
		
	
		
			
			| 
				423
			 | 
			
				425
			 | 
			
			
				
				 	for ( i = 0 ; i < TX_RING_SIZE ; i++ ) { 
			 | 
		
		
	
		
			
			| 
				424
			 | 
			
				426
			 | 
			
			
				
				 		if ( ( rtl->tx.iobuf[i] != NULL ) && ( tsad & ( 1 << i ) ) ) { 
			 | 
		
		
	
		
			
			| 
				425
			 | 
			
				
			 | 
			
			
				
				-			DBG ( "TX id %d complete\n", i ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				427
			 | 
			
			
				
				+			DBGC2 ( rtl, "rtl8139 %p TX id %d complete\n", 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				428
			 | 
			
			
				
				+				rtl, i ); 
			 | 
		
		
	
		
			
			| 
				426
			 | 
			
				429
			 | 
			
			
				
				 			netdev_tx_complete ( netdev, rtl->tx.iobuf[i] ); 
			 | 
		
		
	
		
			
			| 
				427
			 | 
			
				430
			 | 
			
			
				
				 			rtl->tx.iobuf[i] = NULL; 
			 | 
		
		
	
		
			
			| 
				428
			 | 
			
				431
			 | 
			
			
				
				 		} 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -435,8 +438,8 @@ static void rtl_poll ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				435
			 | 
			
				438
			 | 
			
			
				
				 		rx_len = * ( ( uint16_t * ) 
			 | 
		
		
	
		
			
			| 
				436
			 | 
			
				439
			 | 
			
			
				
				 			     ( rtl->rx.ring + rtl->rx.offset + 2 ) ); 
			 | 
		
		
	
		
			
			| 
				437
			 | 
			
				440
			 | 
			
			
				
				 		if ( rx_status & RxOK ) { 
			 | 
		
		
	
		
			
			| 
				438
			 | 
			
				
			 | 
			
			
				
				-			DBG ( "RX packet at offset %x+%x\n", rtl->rx.offset, 
			 | 
		
		
	
		
			
			| 
				439
			 | 
			
				
			 | 
			
			
				
				-			      rx_len ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				441
			 | 
			
			
				
				+			DBGC2 ( rtl, "rtl8139 %p RX packet at offset " 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				442
			 | 
			
			
				
				+				"%x+%x\n", rtl, rtl->rx.offset, rx_len ); 
			 | 
		
		
	
		
			
			| 
				440
			 | 
			
				443
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				441
			 | 
			
				444
			 | 
			
			
				
				 			rx_iob = alloc_iob ( rx_len ); 
			 | 
		
		
	
		
			
			| 
				442
			 | 
			
				445
			 | 
			
			
				
				 			if ( ! rx_iob ) { 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -458,8 +461,8 @@ static void rtl_poll ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				458
			 | 
			
				461
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				459
			 | 
			
				462
			 | 
			
			
				
				 			netdev_rx ( netdev, rx_iob ); 
			 | 
		
		
	
		
			
			| 
				460
			 | 
			
				463
			 | 
			
			
				
				 		} else { 
			 | 
		
		
	
		
			
			| 
				461
			 | 
			
				
			 | 
			
			
				
				-			DBG ( "RX bad packet (status %#04x len %d)\n", 
			 | 
		
		
	
		
			
			| 
				462
			 | 
			
				
			 | 
			
			
				
				-			      rx_status, rx_len ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				464
			 | 
			
			
				
				+			DBGC ( rtl, "rtl8139 %p RX bad packet (status %#04x " 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				465
			 | 
			
			
				
				+			       "len %d)\n", rtl, rx_status, rx_len ); 
			 | 
		
		
	
		
			
			| 
				463
			 | 
			
				466
			 | 
			
			
				
				 			netdev_rx_err ( netdev, NULL, -EINVAL ); 
			 | 
		
		
	
		
			
			| 
				464
			 | 
			
				467
			 | 
			
			
				
				 		} 
			 | 
		
		
	
		
			
			| 
				465
			 | 
			
				468
			 | 
			
			
				
				 		rtl->rx.offset = ( ( ( rtl->rx.offset + 4 + rx_len + 3 ) & ~3 ) 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -476,7 +479,9 @@ static void rtl_poll ( struct net_device *netdev ) { 
			 | 
		
		
	
		
			
			| 
				476
			 | 
			
				479
			 | 
			
			
				
				  */ 
			 | 
		
		
	
		
			
			| 
				477
			 | 
			
				480
			 | 
			
			
				
				 static void rtl_irq ( struct net_device *netdev, int enable ) { 
			 | 
		
		
	
		
			
			| 
				478
			 | 
			
				481
			 | 
			
			
				
				 	struct rtl8139_nic *rtl = netdev->priv; 
			 | 
		
		
	
		
			
			| 
				479
			 | 
			
				
			 | 
			
			
				
				-	 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				482
			 | 
			
			
				
				+ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				483
			 | 
			
			
				
				+	DBGC ( rtl, "rtl8139 %p interrupts %s\n", 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				484
			 | 
			
			
				
				+	       rtl, ( enable ? "enabled" : "disabled" ) ); 
			 | 
		
		
	
		
			
			| 
				480
			 | 
			
				485
			 | 
			
			
				
				 	outw ( ( enable ? ( ROK | RER | TOK | TER ) : 0 ), 
			 | 
		
		
	
		
			
			| 
				481
			 | 
			
				486
			 | 
			
			
				
				 	       rtl->ioaddr + IntrMask ); 
			 | 
		
		
	
		
			
			| 
				482
			 | 
			
				487
			 | 
			
			
				
				 } 
			 |