diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2006-02-20 02:16:23 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2006-02-20 02:16:23 -0500 |
| commit | 5b2ffed906a3ebd4e52a5bbef06b99a517c53e4b (patch) | |
| tree | 2f900f89d93db6b0822d8bdf4f49851c581c12a6 /drivers/net | |
| parent | f1b318793dcd2d9ff6b5ac06e7762098fa079cee (diff) | |
| parent | bd71c2b17468a2531fb4c81ec1d73520845e97e1 (diff) | |
Merge branch 'master'
Diffstat (limited to 'drivers/net')
| -rw-r--r-- | drivers/net/Kconfig | 5 | ||||
| -rw-r--r-- | drivers/net/appletalk/cops.h | 2 | ||||
| -rw-r--r-- | drivers/net/bonding/bond_main.c | 1 | ||||
| -rw-r--r-- | drivers/net/sis190.c | 4 | ||||
| -rw-r--r-- | drivers/net/skge.c | 10 | ||||
| -rw-r--r-- | drivers/net/sky2.c | 31 | ||||
| -rw-r--r-- | drivers/net/tokenring/smctr.h | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/atmel.c | 98 | ||||
| -rw-r--r-- | drivers/net/wireless/wavelan_cs.c | 16 |
9 files changed, 109 insertions, 60 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 47c72a63dfe1..e45a8f959719 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
| @@ -2020,8 +2020,8 @@ config SIS190 | |||
| 2020 | will be called sis190. This is recommended. | 2020 | will be called sis190. This is recommended. |
| 2021 | 2021 | ||
| 2022 | config SKGE | 2022 | config SKGE |
| 2023 | tristate "New SysKonnect GigaEthernet support (EXPERIMENTAL)" | 2023 | tristate "New SysKonnect GigaEthernet support" |
| 2024 | depends on PCI && EXPERIMENTAL | 2024 | depends on PCI |
| 2025 | select CRC32 | 2025 | select CRC32 |
| 2026 | ---help--- | 2026 | ---help--- |
| 2027 | This driver support the Marvell Yukon or SysKonnect SK-98xx/SK-95xx | 2027 | This driver support the Marvell Yukon or SysKonnect SK-98xx/SK-95xx |
| @@ -2082,7 +2082,6 @@ config SK98LIN | |||
| 2082 | - Allied Telesyn AT-2971SX Gigabit Ethernet Adapter | 2082 | - Allied Telesyn AT-2971SX Gigabit Ethernet Adapter |
| 2083 | - Allied Telesyn AT-2971T Gigabit Ethernet Adapter | 2083 | - Allied Telesyn AT-2971T Gigabit Ethernet Adapter |
| 2084 | - Belkin Gigabit Desktop Card 10/100/1000Base-T Adapter, Copper RJ-45 | 2084 | - Belkin Gigabit Desktop Card 10/100/1000Base-T Adapter, Copper RJ-45 |
| 2085 | - DGE-530T Gigabit Ethernet Adapter | ||
| 2086 | - EG1032 v2 Instant Gigabit Network Adapter | 2085 | - EG1032 v2 Instant Gigabit Network Adapter |
| 2087 | - EG1064 v2 Instant Gigabit Network Adapter | 2086 | - EG1064 v2 Instant Gigabit Network Adapter |
| 2088 | - Marvell 88E8001 Gigabit LOM Ethernet Adapter (Abit) | 2087 | - Marvell 88E8001 Gigabit LOM Ethernet Adapter (Abit) |
diff --git a/drivers/net/appletalk/cops.h b/drivers/net/appletalk/cops.h index c68ba9c2ef46..fd2750b269c8 100644 --- a/drivers/net/appletalk/cops.h +++ b/drivers/net/appletalk/cops.h | |||
| @@ -51,7 +51,7 @@ | |||
| 51 | struct ltfirmware | 51 | struct ltfirmware |
| 52 | { | 52 | { |
| 53 | unsigned int length; | 53 | unsigned int length; |
| 54 | unsigned char * data; | 54 | const unsigned char *data; |
| 55 | }; | 55 | }; |
| 56 | 56 | ||
| 57 | #define DAYNA 1 | 57 | #define DAYNA 1 |
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index e0f51afec778..bcf9f17daf0d 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
| @@ -1581,6 +1581,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) | |||
| 1581 | printk(KERN_INFO DRV_NAME | 1581 | printk(KERN_INFO DRV_NAME |
| 1582 | ": %s: %s not enslaved\n", | 1582 | ": %s: %s not enslaved\n", |
| 1583 | bond_dev->name, slave_dev->name); | 1583 | bond_dev->name, slave_dev->name); |
| 1584 | write_unlock_bh(&bond->lock); | ||
| 1584 | return -EINVAL; | 1585 | return -EINVAL; |
| 1585 | } | 1586 | } |
| 1586 | 1587 | ||
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c index b420182eec4b..ed4bc91638d2 100644 --- a/drivers/net/sis190.c +++ b/drivers/net/sis190.c | |||
| @@ -1791,6 +1791,8 @@ static int __devinit sis190_init_one(struct pci_dev *pdev, | |||
| 1791 | goto out; | 1791 | goto out; |
| 1792 | } | 1792 | } |
| 1793 | 1793 | ||
| 1794 | pci_set_drvdata(pdev, dev); | ||
| 1795 | |||
| 1794 | tp = netdev_priv(dev); | 1796 | tp = netdev_priv(dev); |
| 1795 | ioaddr = tp->mmio_addr; | 1797 | ioaddr = tp->mmio_addr; |
| 1796 | 1798 | ||
| @@ -1827,8 +1829,6 @@ static int __devinit sis190_init_one(struct pci_dev *pdev, | |||
| 1827 | if (rc < 0) | 1829 | if (rc < 0) |
| 1828 | goto err_remove_mii; | 1830 | goto err_remove_mii; |
| 1829 | 1831 | ||
| 1830 | pci_set_drvdata(pdev, dev); | ||
| 1831 | |||
| 1832 | net_probe(tp, KERN_INFO "%s: %s at %p (IRQ: %d), " | 1832 | net_probe(tp, KERN_INFO "%s: %s at %p (IRQ: %d), " |
| 1833 | "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n", | 1833 | "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n", |
| 1834 | pci_name(pdev), sis_chip_info[ent->driver_data].name, | 1834 | pci_name(pdev), sis_chip_info[ent->driver_data].name, |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index bf55a4cfb3d2..67fb19b8fde9 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
| @@ -1697,6 +1697,7 @@ static void yukon_mac_init(struct skge_hw *hw, int port) | |||
| 1697 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_SET); | 1697 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_SET); |
| 1698 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_CLR); | 1698 | skge_write32(hw, SK_REG(port, GPHY_CTRL), reg | GPC_RST_CLR); |
| 1699 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON | GMC_RST_CLR); | 1699 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON | GMC_RST_CLR); |
| 1700 | |||
| 1700 | if (skge->autoneg == AUTONEG_DISABLE) { | 1701 | if (skge->autoneg == AUTONEG_DISABLE) { |
| 1701 | reg = GM_GPCR_AU_ALL_DIS; | 1702 | reg = GM_GPCR_AU_ALL_DIS; |
| 1702 | gma_write16(hw, port, GM_GP_CTRL, | 1703 | gma_write16(hw, port, GM_GP_CTRL, |
| @@ -1704,16 +1705,23 @@ static void yukon_mac_init(struct skge_hw *hw, int port) | |||
| 1704 | 1705 | ||
| 1705 | switch (skge->speed) { | 1706 | switch (skge->speed) { |
| 1706 | case SPEED_1000: | 1707 | case SPEED_1000: |
| 1708 | reg &= ~GM_GPCR_SPEED_100; | ||
| 1707 | reg |= GM_GPCR_SPEED_1000; | 1709 | reg |= GM_GPCR_SPEED_1000; |
| 1708 | /* fallthru */ | 1710 | break; |
| 1709 | case SPEED_100: | 1711 | case SPEED_100: |
| 1712 | reg &= ~GM_GPCR_SPEED_1000; | ||
| 1710 | reg |= GM_GPCR_SPEED_100; | 1713 | reg |= GM_GPCR_SPEED_100; |
| 1714 | break; | ||
| 1715 | case SPEED_10: | ||
| 1716 | reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); | ||
| 1717 | break; | ||
| 1711 | } | 1718 | } |
| 1712 | 1719 | ||
| 1713 | if (skge->duplex == DUPLEX_FULL) | 1720 | if (skge->duplex == DUPLEX_FULL) |
| 1714 | reg |= GM_GPCR_DUP_FULL; | 1721 | reg |= GM_GPCR_DUP_FULL; |
| 1715 | } else | 1722 | } else |
| 1716 | reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; | 1723 | reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; |
| 1724 | |||
| 1717 | switch (skge->flow_control) { | 1725 | switch (skge->flow_control) { |
| 1718 | case FLOW_MODE_NONE: | 1726 | case FLOW_MODE_NONE: |
| 1719 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); | 1727 | skge_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); |
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index cae2edf23004..bfeba5b9cd7a 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
| @@ -520,10 +520,16 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port) | |||
| 520 | 520 | ||
| 521 | switch (sky2->speed) { | 521 | switch (sky2->speed) { |
| 522 | case SPEED_1000: | 522 | case SPEED_1000: |
| 523 | reg &= ~GM_GPCR_SPEED_100; | ||
| 523 | reg |= GM_GPCR_SPEED_1000; | 524 | reg |= GM_GPCR_SPEED_1000; |
| 524 | /* fallthru */ | 525 | break; |
| 525 | case SPEED_100: | 526 | case SPEED_100: |
| 527 | reg &= ~GM_GPCR_SPEED_1000; | ||
| 526 | reg |= GM_GPCR_SPEED_100; | 528 | reg |= GM_GPCR_SPEED_100; |
| 529 | break; | ||
| 530 | case SPEED_10: | ||
| 531 | reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); | ||
| 532 | break; | ||
| 527 | } | 533 | } |
| 528 | 534 | ||
| 529 | if (sky2->duplex == DUPLEX_FULL) | 535 | if (sky2->duplex == DUPLEX_FULL) |
| @@ -1446,6 +1452,29 @@ static void sky2_link_up(struct sky2_port *sky2) | |||
| 1446 | sky2_write8(hw, SK_REG(port, GMAC_IRQ_MSK), GMAC_DEF_MSK); | 1452 | sky2_write8(hw, SK_REG(port, GMAC_IRQ_MSK), GMAC_DEF_MSK); |
| 1447 | 1453 | ||
| 1448 | reg = gma_read16(hw, port, GM_GP_CTRL); | 1454 | reg = gma_read16(hw, port, GM_GP_CTRL); |
| 1455 | if (sky2->autoneg == AUTONEG_DISABLE) { | ||
| 1456 | reg |= GM_GPCR_AU_ALL_DIS; | ||
| 1457 | |||
| 1458 | /* Is write/read necessary? Copied from sky2_mac_init */ | ||
| 1459 | gma_write16(hw, port, GM_GP_CTRL, reg); | ||
| 1460 | gma_read16(hw, port, GM_GP_CTRL); | ||
| 1461 | |||
| 1462 | switch (sky2->speed) { | ||
| 1463 | case SPEED_1000: | ||
| 1464 | reg &= ~GM_GPCR_SPEED_100; | ||
| 1465 | reg |= GM_GPCR_SPEED_1000; | ||
| 1466 | break; | ||
| 1467 | case SPEED_100: | ||
| 1468 | reg &= ~GM_GPCR_SPEED_1000; | ||
| 1469 | reg |= GM_GPCR_SPEED_100; | ||
| 1470 | break; | ||
| 1471 | case SPEED_10: | ||
| 1472 | reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); | ||
| 1473 | break; | ||
| 1474 | } | ||
| 1475 | } else | ||
| 1476 | reg &= ~GM_GPCR_AU_ALL_DIS; | ||
| 1477 | |||
| 1449 | if (sky2->duplex == DUPLEX_FULL || sky2->autoneg == AUTONEG_ENABLE) | 1478 | if (sky2->duplex == DUPLEX_FULL || sky2->autoneg == AUTONEG_ENABLE) |
| 1450 | reg |= GM_GPCR_DUP_FULL; | 1479 | reg |= GM_GPCR_DUP_FULL; |
| 1451 | 1480 | ||
diff --git a/drivers/net/tokenring/smctr.h b/drivers/net/tokenring/smctr.h index b306c7e4c793..88dfa2e01d6e 100644 --- a/drivers/net/tokenring/smctr.h +++ b/drivers/net/tokenring/smctr.h | |||
| @@ -1042,7 +1042,7 @@ typedef struct net_local { | |||
| 1042 | __u16 functional_address[2]; | 1042 | __u16 functional_address[2]; |
| 1043 | __u16 bitwise_group_address[2]; | 1043 | __u16 bitwise_group_address[2]; |
| 1044 | 1044 | ||
| 1045 | __u8 *ptr_ucode; | 1045 | const __u8 *ptr_ucode; |
| 1046 | 1046 | ||
| 1047 | __u8 cleanup; | 1047 | __u8 cleanup; |
| 1048 | 1048 | ||
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c index 98a76f10a0f7..dfc24016ba81 100644 --- a/drivers/net/wireless/atmel.c +++ b/drivers/net/wireless/atmel.c | |||
| @@ -1872,7 +1872,7 @@ static int atmel_set_encodeext(struct net_device *dev, | |||
| 1872 | struct atmel_private *priv = netdev_priv(dev); | 1872 | struct atmel_private *priv = netdev_priv(dev); |
| 1873 | struct iw_point *encoding = &wrqu->encoding; | 1873 | struct iw_point *encoding = &wrqu->encoding; |
| 1874 | struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; | 1874 | struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; |
| 1875 | int idx, key_len; | 1875 | int idx, key_len, alg = ext->alg, set_key = 1; |
| 1876 | 1876 | ||
| 1877 | /* Determine and validate the key index */ | 1877 | /* Determine and validate the key index */ |
| 1878 | idx = encoding->flags & IW_ENCODE_INDEX; | 1878 | idx = encoding->flags & IW_ENCODE_INDEX; |
| @@ -1883,39 +1883,42 @@ static int atmel_set_encodeext(struct net_device *dev, | |||
| 1883 | } else | 1883 | } else |
| 1884 | idx = priv->default_key; | 1884 | idx = priv->default_key; |
| 1885 | 1885 | ||
| 1886 | if ((encoding->flags & IW_ENCODE_DISABLED) || | 1886 | if (encoding->flags & IW_ENCODE_DISABLED) |
| 1887 | ext->alg == IW_ENCODE_ALG_NONE) { | 1887 | alg = IW_ENCODE_ALG_NONE; |
| 1888 | priv->wep_is_on = 0; | ||
| 1889 | priv->encryption_level = 0; | ||
| 1890 | priv->pairwise_cipher_suite = CIPHER_SUITE_NONE; | ||
| 1891 | } | ||
| 1892 | 1888 | ||
| 1893 | if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) | 1889 | if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) { |
| 1894 | priv->default_key = idx; | 1890 | priv->default_key = idx; |
| 1891 | set_key = ext->key_len > 0 ? 1 : 0; | ||
| 1892 | } | ||
| 1895 | 1893 | ||
| 1896 | /* Set the requested key */ | 1894 | if (set_key) { |
| 1897 | switch (ext->alg) { | 1895 | /* Set the requested key first */ |
| 1898 | case IW_ENCODE_ALG_NONE: | 1896 | switch (alg) { |
| 1899 | break; | 1897 | case IW_ENCODE_ALG_NONE: |
| 1900 | case IW_ENCODE_ALG_WEP: | 1898 | priv->wep_is_on = 0; |
| 1901 | if (ext->key_len > 5) { | 1899 | priv->encryption_level = 0; |
| 1902 | priv->wep_key_len[idx] = 13; | 1900 | priv->pairwise_cipher_suite = CIPHER_SUITE_NONE; |
| 1903 | priv->pairwise_cipher_suite = CIPHER_SUITE_WEP_128; | 1901 | break; |
| 1904 | priv->encryption_level = 2; | 1902 | case IW_ENCODE_ALG_WEP: |
| 1905 | } else if (ext->key_len > 0) { | 1903 | if (ext->key_len > 5) { |
| 1906 | priv->wep_key_len[idx] = 5; | 1904 | priv->wep_key_len[idx] = 13; |
| 1907 | priv->pairwise_cipher_suite = CIPHER_SUITE_WEP_64; | 1905 | priv->pairwise_cipher_suite = CIPHER_SUITE_WEP_128; |
| 1908 | priv->encryption_level = 1; | 1906 | priv->encryption_level = 2; |
| 1909 | } else { | 1907 | } else if (ext->key_len > 0) { |
| 1908 | priv->wep_key_len[idx] = 5; | ||
| 1909 | priv->pairwise_cipher_suite = CIPHER_SUITE_WEP_64; | ||
| 1910 | priv->encryption_level = 1; | ||
| 1911 | } else { | ||
| 1912 | return -EINVAL; | ||
| 1913 | } | ||
| 1914 | priv->wep_is_on = 1; | ||
| 1915 | memset(priv->wep_keys[idx], 0, 13); | ||
| 1916 | key_len = min ((int)ext->key_len, priv->wep_key_len[idx]); | ||
| 1917 | memcpy(priv->wep_keys[idx], ext->key, key_len); | ||
| 1918 | break; | ||
| 1919 | default: | ||
| 1910 | return -EINVAL; | 1920 | return -EINVAL; |
| 1911 | } | 1921 | } |
| 1912 | priv->wep_is_on = 1; | ||
| 1913 | memset(priv->wep_keys[idx], 0, 13); | ||
| 1914 | key_len = min ((int)ext->key_len, priv->wep_key_len[idx]); | ||
| 1915 | memcpy(priv->wep_keys[idx], ext->key, key_len); | ||
| 1916 | break; | ||
| 1917 | default: | ||
| 1918 | return -EINVAL; | ||
| 1919 | } | 1922 | } |
| 1920 | 1923 | ||
| 1921 | return -EINPROGRESS; | 1924 | return -EINPROGRESS; |
| @@ -3061,17 +3064,26 @@ static void authenticate(struct atmel_private *priv, u16 frame_len) | |||
| 3061 | } | 3064 | } |
| 3062 | 3065 | ||
| 3063 | if (status == C80211_MGMT_SC_Success && priv->wep_is_on) { | 3066 | if (status == C80211_MGMT_SC_Success && priv->wep_is_on) { |
| 3067 | int should_associate = 0; | ||
| 3064 | /* WEP */ | 3068 | /* WEP */ |
| 3065 | if (trans_seq_no != priv->ExpectedAuthentTransactionSeqNum) | 3069 | if (trans_seq_no != priv->ExpectedAuthentTransactionSeqNum) |
| 3066 | return; | 3070 | return; |
| 3067 | 3071 | ||
| 3068 | if (trans_seq_no == 0x0002 && | 3072 | if (system == C80211_MGMT_AAN_OPENSYSTEM) { |
| 3069 | auth->el_id == C80211_MGMT_ElementID_ChallengeText) { | 3073 | if (trans_seq_no == 0x0002) { |
| 3070 | send_authentication_request(priv, system, auth->chall_text, auth->chall_text_len); | 3074 | should_associate = 1; |
| 3071 | return; | 3075 | } |
| 3076 | } else if (system == C80211_MGMT_AAN_SHAREDKEY) { | ||
| 3077 | if (trans_seq_no == 0x0002 && | ||
| 3078 | auth->el_id == C80211_MGMT_ElementID_ChallengeText) { | ||
| 3079 | send_authentication_request(priv, system, auth->chall_text, auth->chall_text_len); | ||
| 3080 | return; | ||
| 3081 | } else if (trans_seq_no == 0x0004) { | ||
| 3082 | should_associate = 1; | ||
| 3083 | } | ||
| 3072 | } | 3084 | } |
| 3073 | 3085 | ||
| 3074 | if (trans_seq_no == 0x0004) { | 3086 | if (should_associate) { |
| 3075 | if(priv->station_was_associated) { | 3087 | if(priv->station_was_associated) { |
| 3076 | atmel_enter_state(priv, STATION_STATE_REASSOCIATING); | 3088 | atmel_enter_state(priv, STATION_STATE_REASSOCIATING); |
| 3077 | send_association_request(priv, 1); | 3089 | send_association_request(priv, 1); |
| @@ -3084,11 +3096,13 @@ static void authenticate(struct atmel_private *priv, u16 frame_len) | |||
| 3084 | } | 3096 | } |
| 3085 | } | 3097 | } |
| 3086 | 3098 | ||
| 3087 | if (status == C80211_MGMT_SC_AuthAlgNotSupported) { | 3099 | if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) { |
| 3088 | /* Do opensystem first, then try sharedkey */ | 3100 | /* Do opensystem first, then try sharedkey */ |
| 3089 | if (system == C80211_MGMT_AAN_OPENSYSTEM) { | 3101 | if (system == WLAN_AUTH_OPEN) { |
| 3090 | priv->CurrentAuthentTransactionSeqNum = 0x001; | 3102 | priv->CurrentAuthentTransactionSeqNum = 0x001; |
| 3091 | send_authentication_request(priv, C80211_MGMT_AAN_SHAREDKEY, NULL, 0); | 3103 | priv->exclude_unencrypted = 1; |
| 3104 | send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0); | ||
| 3105 | return; | ||
| 3092 | } else if (priv->connect_to_any_BSS) { | 3106 | } else if (priv->connect_to_any_BSS) { |
| 3093 | int bss_index; | 3107 | int bss_index; |
| 3094 | 3108 | ||
| @@ -3439,10 +3453,13 @@ static void atmel_management_timer(u_long a) | |||
| 3439 | priv->AuthenticationRequestRetryCnt = 0; | 3453 | priv->AuthenticationRequestRetryCnt = 0; |
| 3440 | restart_search(priv); | 3454 | restart_search(priv); |
| 3441 | } else { | 3455 | } else { |
| 3456 | int auth = C80211_MGMT_AAN_OPENSYSTEM; | ||
| 3442 | priv->AuthenticationRequestRetryCnt++; | 3457 | priv->AuthenticationRequestRetryCnt++; |
| 3443 | priv->CurrentAuthentTransactionSeqNum = 0x0001; | 3458 | priv->CurrentAuthentTransactionSeqNum = 0x0001; |
| 3444 | mod_timer(&priv->management_timer, jiffies + MGMT_JIFFIES); | 3459 | mod_timer(&priv->management_timer, jiffies + MGMT_JIFFIES); |
| 3445 | send_authentication_request(priv, C80211_MGMT_AAN_OPENSYSTEM, NULL, 0); | 3460 | if (priv->wep_is_on && priv->exclude_unencrypted) |
| 3461 | auth = C80211_MGMT_AAN_SHAREDKEY; | ||
| 3462 | send_authentication_request(priv, auth, NULL, 0); | ||
| 3446 | } | 3463 | } |
| 3447 | break; | 3464 | break; |
| 3448 | 3465 | ||
| @@ -3541,12 +3558,15 @@ static void atmel_command_irq(struct atmel_private *priv) | |||
| 3541 | priv->station_was_associated = priv->station_is_associated; | 3558 | priv->station_was_associated = priv->station_is_associated; |
| 3542 | atmel_enter_state(priv, STATION_STATE_READY); | 3559 | atmel_enter_state(priv, STATION_STATE_READY); |
| 3543 | } else { | 3560 | } else { |
| 3561 | int auth = C80211_MGMT_AAN_OPENSYSTEM; | ||
| 3544 | priv->AuthenticationRequestRetryCnt = 0; | 3562 | priv->AuthenticationRequestRetryCnt = 0; |
| 3545 | atmel_enter_state(priv, STATION_STATE_AUTHENTICATING); | 3563 | atmel_enter_state(priv, STATION_STATE_AUTHENTICATING); |
| 3546 | 3564 | ||
| 3547 | mod_timer(&priv->management_timer, jiffies + MGMT_JIFFIES); | 3565 | mod_timer(&priv->management_timer, jiffies + MGMT_JIFFIES); |
| 3548 | priv->CurrentAuthentTransactionSeqNum = 0x0001; | 3566 | priv->CurrentAuthentTransactionSeqNum = 0x0001; |
| 3549 | send_authentication_request(priv, C80211_MGMT_AAN_SHAREDKEY, NULL, 0); | 3567 | if (priv->wep_is_on && priv->exclude_unencrypted) |
| 3568 | auth = C80211_MGMT_AAN_SHAREDKEY; | ||
| 3569 | send_authentication_request(priv, auth, NULL, 0); | ||
| 3550 | } | 3570 | } |
| 3551 | return; | 3571 | return; |
| 3552 | } | 3572 | } |
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c index cf373625fc70..98122f3a4bc2 100644 --- a/drivers/net/wireless/wavelan_cs.c +++ b/drivers/net/wireless/wavelan_cs.c | |||
| @@ -950,16 +950,8 @@ wv_82593_cmd(struct net_device * dev, | |||
| 950 | static inline int | 950 | static inline int |
| 951 | wv_diag(struct net_device * dev) | 951 | wv_diag(struct net_device * dev) |
| 952 | { | 952 | { |
| 953 | int ret = FALSE; | 953 | return(wv_82593_cmd(dev, "wv_diag(): diagnose", |
| 954 | 954 | OP0_DIAGNOSE, SR0_DIAGNOSE_PASSED)); | |
| 955 | if(wv_82593_cmd(dev, "wv_diag(): diagnose", | ||
| 956 | OP0_DIAGNOSE, SR0_DIAGNOSE_PASSED)) | ||
| 957 | ret = TRUE; | ||
| 958 | |||
| 959 | #ifdef DEBUG_CONFIG_ERRORS | ||
| 960 | printk(KERN_INFO "wavelan_cs: i82593 Self Test failed!\n"); | ||
| 961 | #endif | ||
| 962 | return(ret); | ||
| 963 | } /* wv_diag */ | 955 | } /* wv_diag */ |
| 964 | 956 | ||
| 965 | /*------------------------------------------------------------------*/ | 957 | /*------------------------------------------------------------------*/ |
| @@ -3604,8 +3596,8 @@ wv_82593_config(struct net_device * dev) | |||
| 3604 | cfblk.lin_prio = 0; /* conform to 802.3 backoff algoritm */ | 3596 | cfblk.lin_prio = 0; /* conform to 802.3 backoff algoritm */ |
| 3605 | cfblk.exp_prio = 5; /* conform to 802.3 backoff algoritm */ | 3597 | cfblk.exp_prio = 5; /* conform to 802.3 backoff algoritm */ |
| 3606 | cfblk.bof_met = 1; /* conform to 802.3 backoff algoritm */ | 3598 | cfblk.bof_met = 1; /* conform to 802.3 backoff algoritm */ |
| 3607 | cfblk.ifrm_spc = 0x20; /* 32 bit times interframe spacing */ | 3599 | cfblk.ifrm_spc = 0x20 >> 4; /* 32 bit times interframe spacing */ |
| 3608 | cfblk.slottim_low = 0x20; /* 32 bit times slot time */ | 3600 | cfblk.slottim_low = 0x20 >> 5; /* 32 bit times slot time */ |
| 3609 | cfblk.slottim_hi = 0x0; | 3601 | cfblk.slottim_hi = 0x0; |
| 3610 | cfblk.max_retr = 15; | 3602 | cfblk.max_retr = 15; |
| 3611 | cfblk.prmisc = ((lp->promiscuous) ? TRUE: FALSE); /* Promiscuous mode */ | 3603 | cfblk.prmisc = ((lp->promiscuous) ? TRUE: FALSE); /* Promiscuous mode */ |
