aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tlan.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/tlan.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/tlan.c')
-rw-r--r--drivers/net/tlan.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index 3d31b47332bb..390540c101c7 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -254,7 +254,7 @@ static struct board {
254 { "Compaq NetFlex-3/E", TLAN_ADAPTER_ACTIVITY_LED, 0x83 }, /* EISA card */ 254 { "Compaq NetFlex-3/E", TLAN_ADAPTER_ACTIVITY_LED, 0x83 }, /* EISA card */
255}; 255};
256 256
257static struct pci_device_id tlan_pci_tbl[] = { 257static DEFINE_PCI_DEVICE_TABLE(tlan_pci_tbl) = {
258 { PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_NETEL10, 258 { PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_NETEL10,
259 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 259 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
260 { PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_NETEL100, 260 { PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_NETEL100,
@@ -338,7 +338,7 @@ static int TLan_PhyInternalService( struct net_device * );
338static int TLan_PhyDp83840aCheck( struct net_device * ); 338static int TLan_PhyDp83840aCheck( struct net_device * );
339*/ 339*/
340 340
341static int TLan_MiiReadReg( struct net_device *, u16, u16, u16 * ); 341static bool TLan_MiiReadReg( struct net_device *, u16, u16, u16 * );
342static void TLan_MiiSendData( u16, u32, unsigned ); 342static void TLan_MiiSendData( u16, u32, unsigned );
343static void TLan_MiiSync( u16 ); 343static void TLan_MiiSync( u16 );
344static void TLan_MiiWriteReg( struct net_device *, u16, u16, u16 ); 344static void TLan_MiiWriteReg( struct net_device *, u16, u16, u16 );
@@ -1314,7 +1314,7 @@ static struct net_device_stats *TLan_GetStats( struct net_device *dev )
1314 1314
1315static void TLan_SetMulticastList( struct net_device *dev ) 1315static void TLan_SetMulticastList( struct net_device *dev )
1316{ 1316{
1317 struct dev_mc_list *dmi = dev->mc_list; 1317 struct dev_mc_list *dmi;
1318 u32 hash1 = 0; 1318 u32 hash1 = 0;
1319 u32 hash2 = 0; 1319 u32 hash2 = 0;
1320 int i; 1320 int i;
@@ -1335,7 +1335,8 @@ static void TLan_SetMulticastList( struct net_device *dev )
1335 TLan_DioWrite32( dev->base_addr, TLAN_HASH_1, 0xFFFFFFFF ); 1335 TLan_DioWrite32( dev->base_addr, TLAN_HASH_1, 0xFFFFFFFF );
1336 TLan_DioWrite32( dev->base_addr, TLAN_HASH_2, 0xFFFFFFFF ); 1336 TLan_DioWrite32( dev->base_addr, TLAN_HASH_2, 0xFFFFFFFF );
1337 } else { 1337 } else {
1338 for ( i = 0; i < dev->mc_count; i++ ) { 1338 i = 0;
1339 netdev_for_each_mc_addr(dmi, dev) {
1339 if ( i < 3 ) { 1340 if ( i < 3 ) {
1340 TLan_SetMac( dev, i + 1, 1341 TLan_SetMac( dev, i + 1,
1341 (char *) &dmi->dmi_addr ); 1342 (char *) &dmi->dmi_addr );
@@ -1346,7 +1347,7 @@ static void TLan_SetMulticastList( struct net_device *dev )
1346 else 1347 else
1347 hash2 |= ( 1 << ( offset - 32 ) ); 1348 hash2 |= ( 1 << ( offset - 32 ) );
1348 } 1349 }
1349 dmi = dmi->next; 1350 i++;
1350 } 1351 }
1351 for ( ; i < 3; i++ ) 1352 for ( ; i < 3; i++ )
1352 TLan_SetMac( dev, i + 1, NULL ); 1353 TLan_SetMac( dev, i + 1, NULL );
@@ -1549,7 +1550,8 @@ static u32 TLan_HandleRxEOF( struct net_device *dev, u16 host_int )
1549 if (tmpCStat & TLAN_CSTAT_EOC) 1550 if (tmpCStat & TLAN_CSTAT_EOC)
1550 eoc = 1; 1551 eoc = 1;
1551 1552
1552 new_skb = netdev_alloc_skb(dev, TLAN_MAX_FRAME_SIZE + 7 ); 1553 new_skb = netdev_alloc_skb_ip_align(dev,
1554 TLAN_MAX_FRAME_SIZE + 5);
1553 if ( !new_skb ) 1555 if ( !new_skb )
1554 goto drop_and_reuse; 1556 goto drop_and_reuse;
1555 1557
@@ -1563,7 +1565,6 @@ static u32 TLan_HandleRxEOF( struct net_device *dev, u16 host_int )
1563 skb->protocol = eth_type_trans( skb, dev ); 1565 skb->protocol = eth_type_trans( skb, dev );
1564 netif_rx( skb ); 1566 netif_rx( skb );
1565 1567
1566 skb_reserve( new_skb, NET_IP_ALIGN );
1567 head_list->buffer[0].address = pci_map_single(priv->pciDev, 1568 head_list->buffer[0].address = pci_map_single(priv->pciDev,
1568 new_skb->data, 1569 new_skb->data,
1569 TLAN_MAX_FRAME_SIZE, 1570 TLAN_MAX_FRAME_SIZE,
@@ -1755,8 +1756,8 @@ static u32 TLan_HandleStatusCheck( struct net_device *dev, u16 host_int )
1755 ! ( tlphy_ctl & TLAN_TC_SWAPOL ) ) { 1756 ! ( tlphy_ctl & TLAN_TC_SWAPOL ) ) {
1756 tlphy_ctl |= TLAN_TC_SWAPOL; 1757 tlphy_ctl |= TLAN_TC_SWAPOL;
1757 TLan_MiiWriteReg( dev, phy, TLAN_TLPHY_CTL, tlphy_ctl); 1758 TLan_MiiWriteReg( dev, phy, TLAN_TLPHY_CTL, tlphy_ctl);
1758 } else if ( ( tlphy_sts & TLAN_TS_POLOK ) 1759 } else if ( ( tlphy_sts & TLAN_TS_POLOK ) &&
1759 && ( tlphy_ctl & TLAN_TC_SWAPOL ) ) { 1760 ( tlphy_ctl & TLAN_TC_SWAPOL ) ) {
1760 tlphy_ctl &= ~TLAN_TC_SWAPOL; 1761 tlphy_ctl &= ~TLAN_TC_SWAPOL;
1761 TLan_MiiWriteReg( dev, phy, TLAN_TLPHY_CTL, tlphy_ctl); 1762 TLan_MiiWriteReg( dev, phy, TLAN_TLPHY_CTL, tlphy_ctl);
1762 } 1763 }
@@ -1967,13 +1968,12 @@ static void TLan_ResetLists( struct net_device *dev )
1967 list->cStat = TLAN_CSTAT_READY; 1968 list->cStat = TLAN_CSTAT_READY;
1968 list->frameSize = TLAN_MAX_FRAME_SIZE; 1969 list->frameSize = TLAN_MAX_FRAME_SIZE;
1969 list->buffer[0].count = TLAN_MAX_FRAME_SIZE | TLAN_LAST_BUFFER; 1970 list->buffer[0].count = TLAN_MAX_FRAME_SIZE | TLAN_LAST_BUFFER;
1970 skb = netdev_alloc_skb(dev, TLAN_MAX_FRAME_SIZE + 7 ); 1971 skb = netdev_alloc_skb_ip_align(dev, TLAN_MAX_FRAME_SIZE + 5);
1971 if ( !skb ) { 1972 if ( !skb ) {
1972 pr_err("TLAN: out of memory for received data.\n" ); 1973 pr_err("TLAN: out of memory for received data.\n" );
1973 break; 1974 break;
1974 } 1975 }
1975 1976
1976 skb_reserve( skb, NET_IP_ALIGN );
1977 list->buffer[0].address = pci_map_single(priv->pciDev, 1977 list->buffer[0].address = pci_map_single(priv->pciDev,
1978 skb->data, 1978 skb->data,
1979 TLAN_MAX_FRAME_SIZE, 1979 TLAN_MAX_FRAME_SIZE,
@@ -2205,7 +2205,7 @@ TLan_ResetAdapter( struct net_device *dev )
2205 u32 data; 2205 u32 data;
2206 u8 data8; 2206 u8 data8;
2207 2207
2208 priv->tlanFullDuplex = FALSE; 2208 priv->tlanFullDuplex = false;
2209 priv->phyOnline=0; 2209 priv->phyOnline=0;
2210 netif_carrier_off(dev); 2210 netif_carrier_off(dev);
2211 2211
@@ -2260,7 +2260,7 @@ TLan_ResetAdapter( struct net_device *dev )
2260 TLan_DioWrite8( dev->base_addr, TLAN_ACOMMIT, 0x0a ); 2260 TLan_DioWrite8( dev->base_addr, TLAN_ACOMMIT, 0x0a );
2261 } else if ( priv->duplex == TLAN_DUPLEX_FULL ) { 2261 } else if ( priv->duplex == TLAN_DUPLEX_FULL ) {
2262 TLan_DioWrite8( dev->base_addr, TLAN_ACOMMIT, 0x00 ); 2262 TLan_DioWrite8( dev->base_addr, TLAN_ACOMMIT, 0x00 );
2263 priv->tlanFullDuplex = TRUE; 2263 priv->tlanFullDuplex = true;
2264 } else { 2264 } else {
2265 TLan_DioWrite8( dev->base_addr, TLAN_ACOMMIT, 0x08 ); 2265 TLan_DioWrite8( dev->base_addr, TLAN_ACOMMIT, 0x08 );
2266 } 2266 }
@@ -2652,14 +2652,14 @@ static void TLan_PhyStartLink( struct net_device *dev )
2652 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x0000); 2652 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x0000);
2653 } else if ( priv->speed == TLAN_SPEED_10 && 2653 } else if ( priv->speed == TLAN_SPEED_10 &&
2654 priv->duplex == TLAN_DUPLEX_FULL) { 2654 priv->duplex == TLAN_DUPLEX_FULL) {
2655 priv->tlanFullDuplex = TRUE; 2655 priv->tlanFullDuplex = true;
2656 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x0100); 2656 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x0100);
2657 } else if ( priv->speed == TLAN_SPEED_100 && 2657 } else if ( priv->speed == TLAN_SPEED_100 &&
2658 priv->duplex == TLAN_DUPLEX_HALF) { 2658 priv->duplex == TLAN_DUPLEX_HALF) {
2659 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x2000); 2659 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x2000);
2660 } else if ( priv->speed == TLAN_SPEED_100 && 2660 } else if ( priv->speed == TLAN_SPEED_100 &&
2661 priv->duplex == TLAN_DUPLEX_FULL) { 2661 priv->duplex == TLAN_DUPLEX_FULL) {
2662 priv->tlanFullDuplex = TRUE; 2662 priv->tlanFullDuplex = true;
2663 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x2100); 2663 TLan_MiiWriteReg( dev, phy, MII_GEN_CTL, 0x2100);
2664 } else { 2664 } else {
2665 2665
@@ -2696,7 +2696,7 @@ static void TLan_PhyStartLink( struct net_device *dev )
2696 tctl &= ~TLAN_TC_AUISEL; 2696 tctl &= ~TLAN_TC_AUISEL;
2697 if ( priv->duplex == TLAN_DUPLEX_FULL ) { 2697 if ( priv->duplex == TLAN_DUPLEX_FULL ) {
2698 control |= MII_GC_DUPLEX; 2698 control |= MII_GC_DUPLEX;
2699 priv->tlanFullDuplex = TRUE; 2699 priv->tlanFullDuplex = true;
2700 } 2700 }
2701 if ( priv->speed == TLAN_SPEED_100 ) { 2701 if ( priv->speed == TLAN_SPEED_100 ) {
2702 control |= MII_GC_SPEEDSEL; 2702 control |= MII_GC_SPEEDSEL;
@@ -2751,9 +2751,9 @@ static void TLan_PhyFinishAutoNeg( struct net_device *dev )
2751 TLan_MiiReadReg( dev, phy, MII_AN_LPA, &an_lpa ); 2751 TLan_MiiReadReg( dev, phy, MII_AN_LPA, &an_lpa );
2752 mode = an_adv & an_lpa & 0x03E0; 2752 mode = an_adv & an_lpa & 0x03E0;
2753 if ( mode & 0x0100 ) { 2753 if ( mode & 0x0100 ) {
2754 priv->tlanFullDuplex = TRUE; 2754 priv->tlanFullDuplex = true;
2755 } else if ( ! ( mode & 0x0080 ) && ( mode & 0x0040 ) ) { 2755 } else if ( ! ( mode & 0x0080 ) && ( mode & 0x0040 ) ) {
2756 priv->tlanFullDuplex = TRUE; 2756 priv->tlanFullDuplex = true;
2757 } 2757 }
2758 2758
2759 if ( ( ! ( mode & 0x0180 ) ) && 2759 if ( ( ! ( mode & 0x0180 ) ) &&
@@ -2856,8 +2856,8 @@ void TLan_PhyMonitor( struct net_device *dev )
2856 * TLan_MiiReadReg 2856 * TLan_MiiReadReg
2857 * 2857 *
2858 * Returns: 2858 * Returns:
2859 * 0 if ack received ok 2859 * false if ack received ok
2860 * 1 otherwise. 2860 * true if no ack received or other error
2861 * 2861 *
2862 * Parms: 2862 * Parms:
2863 * dev The device structure containing 2863 * dev The device structure containing
@@ -2876,17 +2876,17 @@ void TLan_PhyMonitor( struct net_device *dev )
2876 * 2876 *
2877 **************************************************************/ 2877 **************************************************************/
2878 2878
2879static int TLan_MiiReadReg( struct net_device *dev, u16 phy, u16 reg, u16 *val ) 2879static bool TLan_MiiReadReg( struct net_device *dev, u16 phy, u16 reg, u16 *val )
2880{ 2880{
2881 u8 nack; 2881 u8 nack;
2882 u16 sio, tmp; 2882 u16 sio, tmp;
2883 u32 i; 2883 u32 i;
2884 int err; 2884 bool err;
2885 int minten; 2885 int minten;
2886 TLanPrivateInfo *priv = netdev_priv(dev); 2886 TLanPrivateInfo *priv = netdev_priv(dev);
2887 unsigned long flags = 0; 2887 unsigned long flags = 0;
2888 2888
2889 err = FALSE; 2889 err = false;
2890 outw(TLAN_NET_SIO, dev->base_addr + TLAN_DIO_ADR); 2890 outw(TLAN_NET_SIO, dev->base_addr + TLAN_DIO_ADR);
2891 sio = dev->base_addr + TLAN_DIO_DATA + TLAN_NET_SIO; 2891 sio = dev->base_addr + TLAN_DIO_DATA + TLAN_NET_SIO;
2892 2892
@@ -2919,7 +2919,7 @@ static int TLan_MiiReadReg( struct net_device *dev, u16 phy, u16 reg, u16 *val )
2919 TLan_SetBit(TLAN_NET_SIO_MCLK, sio); 2919 TLan_SetBit(TLAN_NET_SIO_MCLK, sio);
2920 } 2920 }
2921 tmp = 0xffff; 2921 tmp = 0xffff;
2922 err = TRUE; 2922 err = true;
2923 } else { /* ACK, so read data */ 2923 } else { /* ACK, so read data */
2924 for (tmp = 0, i = 0x8000; i; i >>= 1) { 2924 for (tmp = 0, i = 0x8000; i; i >>= 1) {
2925 TLan_ClearBit(TLAN_NET_SIO_MCLK, sio); 2925 TLan_ClearBit(TLAN_NET_SIO_MCLK, sio);