OLD | NEW |
1 /* | 1 /* |
2 * at76c503/at76c505 USB driver | 2 * at76c503/at76c505 USB driver |
3 * | 3 * |
4 * Copyright (c) 2002 - 2003 Oliver Kurth | 4 * Copyright (c) 2002 - 2003 Oliver Kurth |
5 * Copyright (c) 2004 Joerg Albert <joerg.albert@gmx.de> | 5 * Copyright (c) 2004 Joerg Albert <joerg.albert@gmx.de> |
6 * Copyright (c) 2004 Nick Jones | 6 * Copyright (c) 2004 Nick Jones |
7 * Copyright (c) 2004 Balint Seeber <n0_5p4m_p13453@hotmail.com> | 7 * Copyright (c) 2004 Balint Seeber <n0_5p4m_p13453@hotmail.com> |
8 * Copyright (c) 2007 Guido Guenther <agx@sigxcpu.org> | 8 * Copyright (c) 2007 Guido Guenther <agx@sigxcpu.org> |
9 * Copyright (c) 2007 Kalle Valo <kalle.valo@iki.fi> | 9 * Copyright (c) 2007 Kalle Valo <kalle.valo@iki.fi> |
10 * Copyright (c) 2010 Sebastian Smolorz <sesmo@gmx.net> | 10 * Copyright (c) 2010 Sebastian Smolorz <sesmo@gmx.net> |
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 ret = at76_get_hw_cfg(priv->udev, hwcfg, sizeof(hwcfg->r5)); | 648 ret = at76_get_hw_cfg(priv->udev, hwcfg, sizeof(hwcfg->r5)); |
649 if (ret < 0) | 649 if (ret < 0) |
650 goto exit; | 650 goto exit; |
651 memcpy(priv->mac_addr, hwcfg->r5.mac_addr, ETH_ALEN); | 651 memcpy(priv->mac_addr, hwcfg->r5.mac_addr, ETH_ALEN); |
652 priv->regulatory_domain = hwcfg->r5.regulatory_domain; | 652 priv->regulatory_domain = hwcfg->r5.regulatory_domain; |
653 } | 653 } |
654 | 654 |
655 exit: | 655 exit: |
656 kfree(hwcfg); | 656 kfree(hwcfg); |
657 if (ret < 0) | 657 if (ret < 0) |
658 » » wiphy_err(priv->hw->wiphy, "cannot get hw config (error %d)\n", | 658 » » wiphy_err(priv->hw->wiphy, "cannot get HW Config (error %d)\n", |
659 ret); | 659 ret); |
660 | 660 |
661 return ret; | 661 return ret; |
662 } | 662 } |
663 | 663 |
664 static struct reg_domain const *at76_get_reg_domain(u16 code) | 664 static struct reg_domain const *at76_get_reg_domain(u16 code) |
665 { | 665 { |
666 int i; | 666 int i; |
667 static struct reg_domain const fd_tab[] = { | 667 static struct reg_domain const fd_tab[] = { |
668 { 0x10, "FCC (USA)", 0x7ff }, /* ch 1-11 */ | 668 { 0x10, "FCC (USA)", 0x7ff }, /* ch 1-11 */ |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 struct mib_mac_addr *m = kmalloc(sizeof(struct mib_mac_addr), | 953 struct mib_mac_addr *m = kmalloc(sizeof(struct mib_mac_addr), |
954 GFP_KERNEL); | 954 GFP_KERNEL); |
955 | 955 |
956 if (!m) | 956 if (!m) |
957 return; | 957 return; |
958 | 958 |
959 ret = at76_get_mib(priv->udev, MIB_MAC_ADDR, m, | 959 ret = at76_get_mib(priv->udev, MIB_MAC_ADDR, m, |
960 sizeof(struct mib_mac_addr)); | 960 sizeof(struct mib_mac_addr)); |
961 if (ret < 0) { | 961 if (ret < 0) { |
962 wiphy_err(priv->hw->wiphy, | 962 wiphy_err(priv->hw->wiphy, |
963 » » » "at76_get_mib (mac_addr) failed: %d\n", ret); | 963 » » » "at76_get_mib (MAC_ADDR) failed: %d\n", ret); |
964 goto exit; | 964 goto exit; |
965 } | 965 } |
966 | 966 |
967 at76_dbg(DBG_MIB, "%s: MIB MAC_ADDR: mac_addr %pM res 0x%x 0x%x", | 967 at76_dbg(DBG_MIB, "%s: MIB MAC_ADDR: mac_addr %pM res 0x%x 0x%x", |
968 wiphy_name(priv->hw->wiphy), | 968 wiphy_name(priv->hw->wiphy), |
969 m->mac_addr, m->res[0], m->res[1]); | 969 m->mac_addr, m->res[0], m->res[1]); |
970 for (i = 0; i < ARRAY_SIZE(m->group_addr); i++) | 970 for (i = 0; i < ARRAY_SIZE(m->group_addr); i++) |
971 at76_dbg(DBG_MIB, "%s: MIB MAC_ADDR: group addr %d: %pM, " | 971 at76_dbg(DBG_MIB, "%s: MIB MAC_ADDR: group addr %d: %pM, " |
972 "status %d", wiphy_name(priv->hw->wiphy), i, | 972 "status %d", wiphy_name(priv->hw->wiphy), i, |
973 m->group_addr[i], m->group_addr_status[i]); | 973 m->group_addr[i], m->group_addr_status[i]); |
974 exit: | 974 exit: |
975 kfree(m); | 975 kfree(m); |
976 } | 976 } |
977 | 977 |
978 static void at76_dump_mib_mac_wep(struct at76_priv *priv) | 978 static void at76_dump_mib_mac_wep(struct at76_priv *priv) |
979 { | 979 { |
980 int i; | 980 int i; |
981 int ret; | 981 int ret; |
982 int key_len; | 982 int key_len; |
983 struct mib_mac_wep *m = kmalloc(sizeof(struct mib_mac_wep), GFP_KERNEL); | 983 struct mib_mac_wep *m = kmalloc(sizeof(struct mib_mac_wep), GFP_KERNEL); |
984 | 984 |
985 if (!m) | 985 if (!m) |
986 return; | 986 return; |
987 | 987 |
988 ret = at76_get_mib(priv->udev, MIB_MAC_WEP, m, | 988 ret = at76_get_mib(priv->udev, MIB_MAC_WEP, m, |
989 sizeof(struct mib_mac_wep)); | 989 sizeof(struct mib_mac_wep)); |
990 if (ret < 0) { | 990 if (ret < 0) { |
991 wiphy_err(priv->hw->wiphy, | 991 wiphy_err(priv->hw->wiphy, |
992 » » » "at76_get_mib (mac_wep) failed: %d\n", ret); | 992 » » » "at76_get_mib (MAC_WEP) failed: %d\n", ret); |
993 goto exit; | 993 goto exit; |
994 } | 994 } |
995 | 995 |
996 at76_dbg(DBG_MIB, "%s: MIB MAC_WEP: priv_invoked %u def_key_id %u " | 996 at76_dbg(DBG_MIB, "%s: MIB MAC_WEP: priv_invoked %u def_key_id %u " |
997 "key_len %u excl_unencr %u wep_icv_err %u wep_excluded %u " | 997 "key_len %u excl_unencr %u wep_icv_err %u wep_excluded %u " |
998 "encr_level %u key %d", wiphy_name(priv->hw->wiphy), | 998 "encr_level %u key %d", wiphy_name(priv->hw->wiphy), |
999 m->privacy_invoked, m->wep_default_key_id, | 999 m->privacy_invoked, m->wep_default_key_id, |
1000 m->wep_key_mapping_len, m->exclude_unencrypted, | 1000 m->wep_key_mapping_len, m->exclude_unencrypted, |
1001 le32_to_cpu(m->wep_icv_error_count), | 1001 le32_to_cpu(m->wep_icv_error_count), |
1002 le32_to_cpu(m->wep_excluded_count), m->encryption_level, | 1002 le32_to_cpu(m->wep_excluded_count), m->encryption_level, |
(...skipping 16 matching lines...) Expand all Loading... |
1019 struct mib_mac_mgmt *m = kmalloc(sizeof(struct mib_mac_mgmt), | 1019 struct mib_mac_mgmt *m = kmalloc(sizeof(struct mib_mac_mgmt), |
1020 GFP_KERNEL); | 1020 GFP_KERNEL); |
1021 | 1021 |
1022 if (!m) | 1022 if (!m) |
1023 return; | 1023 return; |
1024 | 1024 |
1025 ret = at76_get_mib(priv->udev, MIB_MAC_MGMT, m, | 1025 ret = at76_get_mib(priv->udev, MIB_MAC_MGMT, m, |
1026 sizeof(struct mib_mac_mgmt)); | 1026 sizeof(struct mib_mac_mgmt)); |
1027 if (ret < 0) { | 1027 if (ret < 0) { |
1028 wiphy_err(priv->hw->wiphy, | 1028 wiphy_err(priv->hw->wiphy, |
1029 » » » "at76_get_mib (mac_mgmt) failed: %d\n", ret); | 1029 » » » "at76_get_mib (MAC_MGMT) failed: %d\n", ret); |
1030 goto exit; | 1030 goto exit; |
1031 } | 1031 } |
1032 | 1032 |
1033 at76_dbg(DBG_MIB, "%s: MIB MAC_MGMT: beacon_period %d CFP_max_duration " | 1033 at76_dbg(DBG_MIB, "%s: MIB MAC_MGMT: beacon_period %d CFP_max_duration " |
1034 "%d medium_occupancy_limit %d station_id 0x%x ATIM_window %d " | 1034 "%d medium_occupancy_limit %d station_id 0x%x ATIM_window %d " |
1035 "CFP_mode %d privacy_opt_impl %d DTIM_period %d CFP_period %d " | 1035 "CFP_mode %d privacy_opt_impl %d DTIM_period %d CFP_period %d " |
1036 "current_bssid %pM current_essid %s current_bss_type %d " | 1036 "current_bssid %pM current_essid %s current_bss_type %d " |
1037 "pm_mode %d ibss_change %d res %d " | 1037 "pm_mode %d ibss_change %d res %d " |
1038 "multi_domain_capability_implemented %d " | 1038 "multi_domain_capability_implemented %d " |
1039 "international_roaming %d country_string %.3s", | 1039 "international_roaming %d country_string %.3s", |
(...skipping 15 matching lines...) Expand all Loading... |
1055 { | 1055 { |
1056 int ret; | 1056 int ret; |
1057 struct mib_mac *m = kmalloc(sizeof(struct mib_mac), GFP_KERNEL); | 1057 struct mib_mac *m = kmalloc(sizeof(struct mib_mac), GFP_KERNEL); |
1058 | 1058 |
1059 if (!m) | 1059 if (!m) |
1060 return; | 1060 return; |
1061 | 1061 |
1062 ret = at76_get_mib(priv->udev, MIB_MAC, m, sizeof(struct mib_mac)); | 1062 ret = at76_get_mib(priv->udev, MIB_MAC, m, sizeof(struct mib_mac)); |
1063 if (ret < 0) { | 1063 if (ret < 0) { |
1064 wiphy_err(priv->hw->wiphy, | 1064 wiphy_err(priv->hw->wiphy, |
1065 » » » "at76_get_mib (mac) failed: %d\n", ret); | 1065 » » » "at76_get_mib (MAC) failed: %d\n", ret); |
1066 goto exit; | 1066 goto exit; |
1067 } | 1067 } |
1068 | 1068 |
1069 at76_dbg(DBG_MIB, "%s: MIB MAC: max_tx_msdu_lifetime %d " | 1069 at76_dbg(DBG_MIB, "%s: MIB MAC: max_tx_msdu_lifetime %d " |
1070 "max_rx_lifetime %d frag_threshold %d rts_threshold %d " | 1070 "max_rx_lifetime %d frag_threshold %d rts_threshold %d " |
1071 "cwmin %d cwmax %d short_retry_time %d long_retry_time %d " | 1071 "cwmin %d cwmax %d short_retry_time %d long_retry_time %d " |
1072 "scan_type %d scan_channel %d probe_delay %u " | 1072 "scan_type %d scan_channel %d probe_delay %u " |
1073 "min_channel_time %d max_channel_time %d listen_int %d " | 1073 "min_channel_time %d max_channel_time %d listen_int %d " |
1074 "desired_ssid %s desired_bssid %pM desired_bsstype %d", | 1074 "desired_ssid %s desired_bssid %pM desired_bsstype %d", |
1075 wiphy_name(priv->hw->wiphy), | 1075 wiphy_name(priv->hw->wiphy), |
(...skipping 16 matching lines...) Expand all Loading... |
1092 { | 1092 { |
1093 int ret; | 1093 int ret; |
1094 struct mib_phy *m = kmalloc(sizeof(struct mib_phy), GFP_KERNEL); | 1094 struct mib_phy *m = kmalloc(sizeof(struct mib_phy), GFP_KERNEL); |
1095 | 1095 |
1096 if (!m) | 1096 if (!m) |
1097 return; | 1097 return; |
1098 | 1098 |
1099 ret = at76_get_mib(priv->udev, MIB_PHY, m, sizeof(struct mib_phy)); | 1099 ret = at76_get_mib(priv->udev, MIB_PHY, m, sizeof(struct mib_phy)); |
1100 if (ret < 0) { | 1100 if (ret < 0) { |
1101 wiphy_err(priv->hw->wiphy, | 1101 wiphy_err(priv->hw->wiphy, |
1102 » » » "at76_get_mib (phy) failed: %d\n", ret); | 1102 » » » "at76_get_mib (PHY) failed: %d\n", ret); |
1103 goto exit; | 1103 goto exit; |
1104 } | 1104 } |
1105 | 1105 |
1106 at76_dbg(DBG_MIB, "%s: MIB PHY: ed_threshold %d slot_time %d " | 1106 at76_dbg(DBG_MIB, "%s: MIB PHY: ed_threshold %d slot_time %d " |
1107 "sifs_time %d preamble_length %d plcp_header_length %d " | 1107 "sifs_time %d preamble_length %d plcp_header_length %d " |
1108 "mpdu_max_length %d cca_mode_supported %d operation_rate_set " | 1108 "mpdu_max_length %d cca_mode_supported %d operation_rate_set " |
1109 "0x%x 0x%x 0x%x 0x%x channel_id %d current_cca_mode %d " | 1109 "0x%x 0x%x 0x%x 0x%x channel_id %d current_cca_mode %d " |
1110 "phy_type %d current_reg_domain %d", | 1110 "phy_type %d current_reg_domain %d", |
1111 wiphy_name(priv->hw->wiphy), le32_to_cpu(m->ed_threshold), | 1111 wiphy_name(priv->hw->wiphy), le32_to_cpu(m->ed_threshold), |
1112 le16_to_cpu(m->slot_time), le16_to_cpu(m->sifs_time), | 1112 le16_to_cpu(m->slot_time), le16_to_cpu(m->sifs_time), |
(...skipping 12 matching lines...) Expand all Loading... |
1125 { | 1125 { |
1126 int ret; | 1126 int ret; |
1127 struct mib_local *m = kmalloc(sizeof(struct mib_phy), GFP_KERNEL); | 1127 struct mib_local *m = kmalloc(sizeof(struct mib_phy), GFP_KERNEL); |
1128 | 1128 |
1129 if (!m) | 1129 if (!m) |
1130 return; | 1130 return; |
1131 | 1131 |
1132 ret = at76_get_mib(priv->udev, MIB_LOCAL, m, sizeof(struct mib_local)); | 1132 ret = at76_get_mib(priv->udev, MIB_LOCAL, m, sizeof(struct mib_local)); |
1133 if (ret < 0) { | 1133 if (ret < 0) { |
1134 wiphy_err(priv->hw->wiphy, | 1134 wiphy_err(priv->hw->wiphy, |
1135 » » » "at76_get_mib (local) failed: %d\n", ret); | 1135 » » » "at76_get_mib (LOCAL) failed: %d\n", ret); |
1136 goto exit; | 1136 goto exit; |
1137 } | 1137 } |
1138 | 1138 |
1139 at76_dbg(DBG_MIB, "%s: MIB LOCAL: beacon_enable %d " | 1139 at76_dbg(DBG_MIB, "%s: MIB LOCAL: beacon_enable %d " |
1140 "txautorate_fallback %d ssid_size %d promiscuous_mode %d " | 1140 "txautorate_fallback %d ssid_size %d promiscuous_mode %d " |
1141 "preamble_type %d", wiphy_name(priv->hw->wiphy), | 1141 "preamble_type %d", wiphy_name(priv->hw->wiphy), |
1142 m->beacon_enable, | 1142 m->beacon_enable, |
1143 m->txautorate_fallback, m->ssid_size, m->promiscuous_mode, | 1143 m->txautorate_fallback, m->ssid_size, m->promiscuous_mode, |
1144 m->preamble_type); | 1144 m->preamble_type); |
1145 exit: | 1145 exit: |
1146 kfree(m); | 1146 kfree(m); |
1147 } | 1147 } |
1148 | 1148 |
1149 static void at76_dump_mib_mdomain(struct at76_priv *priv) | 1149 static void at76_dump_mib_mdomain(struct at76_priv *priv) |
1150 { | 1150 { |
1151 int ret; | 1151 int ret; |
1152 struct mib_mdomain *m = kmalloc(sizeof(struct mib_mdomain), GFP_KERNEL); | 1152 struct mib_mdomain *m = kmalloc(sizeof(struct mib_mdomain), GFP_KERNEL); |
1153 | 1153 |
1154 if (!m) | 1154 if (!m) |
1155 return; | 1155 return; |
1156 | 1156 |
1157 ret = at76_get_mib(priv->udev, MIB_MDOMAIN, m, | 1157 ret = at76_get_mib(priv->udev, MIB_MDOMAIN, m, |
1158 sizeof(struct mib_mdomain)); | 1158 sizeof(struct mib_mdomain)); |
1159 if (ret < 0) { | 1159 if (ret < 0) { |
1160 wiphy_err(priv->hw->wiphy, | 1160 wiphy_err(priv->hw->wiphy, |
1161 » » » "at76_get_mib (mdomain) failed: %d\n", ret); | 1161 » » » "at76_get_mib (MDOMAIN) failed: %d\n", ret); |
1162 goto exit; | 1162 goto exit; |
1163 } | 1163 } |
1164 | 1164 |
1165 at76_dbg(DBG_MIB, "%s: MIB MDOMAIN: channel_list %s", | 1165 at76_dbg(DBG_MIB, "%s: MIB MDOMAIN: channel_list %s", |
1166 wiphy_name(priv->hw->wiphy), | 1166 wiphy_name(priv->hw->wiphy), |
1167 hex2str(m->channel_list, sizeof(m->channel_list))); | 1167 hex2str(m->channel_list, sizeof(m->channel_list))); |
1168 | 1168 |
1169 at76_dbg(DBG_MIB, "%s: MIB MDOMAIN: tx_powerlevel %s", | 1169 at76_dbg(DBG_MIB, "%s: MIB MDOMAIN: tx_powerlevel %s", |
1170 wiphy_name(priv->hw->wiphy), | 1170 wiphy_name(priv->hw->wiphy), |
1171 hex2str(m->tx_powerlevel, sizeof(m->tx_powerlevel))); | 1171 hex2str(m->tx_powerlevel, sizeof(m->tx_powerlevel))); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1222 tasklet_schedule(&priv->rx_tasklet); | 1222 tasklet_schedule(&priv->rx_tasklet); |
1223 } | 1223 } |
1224 | 1224 |
1225 static int at76_submit_rx_urb(struct at76_priv *priv) | 1225 static int at76_submit_rx_urb(struct at76_priv *priv) |
1226 { | 1226 { |
1227 int ret; | 1227 int ret; |
1228 int size; | 1228 int size; |
1229 struct sk_buff *skb = priv->rx_skb; | 1229 struct sk_buff *skb = priv->rx_skb; |
1230 | 1230 |
1231 if (!priv->rx_urb) { | 1231 if (!priv->rx_urb) { |
1232 » » wiphy_err(priv->hw->wiphy, "%s: priv->rx_urb is null\n", | 1232 » » wiphy_err(priv->hw->wiphy, "%s: priv->rx_urb is NULL\n", |
1233 __func__); | 1233 __func__); |
1234 return -EFAULT; | 1234 return -EFAULT; |
1235 } | 1235 } |
1236 | 1236 |
1237 if (!skb) { | 1237 if (!skb) { |
1238 skb = dev_alloc_skb(sizeof(struct at76_rx_buffer)); | 1238 skb = dev_alloc_skb(sizeof(struct at76_rx_buffer)); |
1239 if (!skb) { | 1239 if (!skb) { |
1240 wiphy_err(priv->hw->wiphy, | 1240 wiphy_err(priv->hw->wiphy, |
1241 "cannot allocate rx skbuff\n"); | 1241 "cannot allocate rx skbuff\n"); |
1242 ret = -ENOMEM; | 1242 ret = -ENOMEM; |
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1785 /* send stuff */ | 1785 /* send stuff */ |
1786 at76_dbg_dump(DBG_TX_DATA_CONTENT, tx_buffer, submit_len, | 1786 at76_dbg_dump(DBG_TX_DATA_CONTENT, tx_buffer, submit_len, |
1787 "%s(): tx_buffer %d bytes:", __func__, submit_len); | 1787 "%s(): tx_buffer %d bytes:", __func__, submit_len); |
1788 usb_fill_bulk_urb(priv->tx_urb, priv->udev, priv->tx_pipe, tx_buffer, | 1788 usb_fill_bulk_urb(priv->tx_urb, priv->udev, priv->tx_pipe, tx_buffer, |
1789 submit_len, at76_mac80211_tx_callback, priv); | 1789 submit_len, at76_mac80211_tx_callback, priv); |
1790 ret = usb_submit_urb(priv->tx_urb, GFP_ATOMIC); | 1790 ret = usb_submit_urb(priv->tx_urb, GFP_ATOMIC); |
1791 if (ret) { | 1791 if (ret) { |
1792 wiphy_err(priv->hw->wiphy, "error in tx submit urb: %d\n", ret); | 1792 wiphy_err(priv->hw->wiphy, "error in tx submit urb: %d\n", ret); |
1793 if (ret == -EINVAL) | 1793 if (ret == -EINVAL) |
1794 wiphy_err(priv->hw->wiphy, | 1794 wiphy_err(priv->hw->wiphy, |
1795 » » » » "-einval: tx urb %p hcpriv %p complete %p\n", | 1795 » » » » "-EINVAL: tx urb %p hcpriv %p complete %p\n", |
1796 priv->tx_urb, | 1796 priv->tx_urb, |
1797 priv->tx_urb->hcpriv, priv->tx_urb->complete); | 1797 priv->tx_urb->hcpriv, priv->tx_urb->complete); |
1798 } | 1798 } |
1799 | 1799 |
1800 return 0; | 1800 return 0; |
1801 } | 1801 } |
1802 | 1802 |
1803 static int at76_mac80211_start(struct ieee80211_hw *hw) | 1803 static int at76_mac80211_start(struct ieee80211_hw *hw) |
1804 { | 1804 { |
1805 struct at76_priv *priv = hw->priv; | 1805 struct at76_priv *priv = hw->priv; |
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2303 | 2303 |
2304 ret = ieee80211_register_hw(priv->hw); | 2304 ret = ieee80211_register_hw(priv->hw); |
2305 if (ret) { | 2305 if (ret) { |
2306 printk(KERN_ERR "cannot register mac80211 hw (status %d)!\n", | 2306 printk(KERN_ERR "cannot register mac80211 hw (status %d)!\n", |
2307 ret); | 2307 ret); |
2308 goto exit; | 2308 goto exit; |
2309 } | 2309 } |
2310 | 2310 |
2311 priv->mac80211_registered = 1; | 2311 priv->mac80211_registered = 1; |
2312 | 2312 |
2313 » wiphy_info(priv->hw->wiphy, "usb %s, mac %pm, firmware %d.%d.%d-%d\n", | 2313 » wiphy_info(priv->hw->wiphy, "USB %s, MAC %pM, firmware %d.%d.%d-%d\n", |
2314 dev_name(&interface->dev), priv->mac_addr, | 2314 dev_name(&interface->dev), priv->mac_addr, |
2315 priv->fw_version.major, priv->fw_version.minor, | 2315 priv->fw_version.major, priv->fw_version.minor, |
2316 priv->fw_version.patch, priv->fw_version.build); | 2316 priv->fw_version.patch, priv->fw_version.build); |
2317 wiphy_info(priv->hw->wiphy, "regulatory domain 0x%02x: %s\n", | 2317 wiphy_info(priv->hw->wiphy, "regulatory domain 0x%02x: %s\n", |
2318 priv->regulatory_domain, priv->domain->name); | 2318 priv->regulatory_domain, priv->domain->name); |
2319 | 2319 |
2320 exit: | 2320 exit: |
2321 return ret; | 2321 return ret; |
2322 } | 2322 } |
2323 | 2323 |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2531 MODULE_AUTHOR("Joerg Albert <joerg.albert@gmx.de>"); | 2531 MODULE_AUTHOR("Joerg Albert <joerg.albert@gmx.de>"); |
2532 MODULE_AUTHOR("Alex <alex@foogod.com>"); | 2532 MODULE_AUTHOR("Alex <alex@foogod.com>"); |
2533 MODULE_AUTHOR("Nick Jones"); | 2533 MODULE_AUTHOR("Nick Jones"); |
2534 MODULE_AUTHOR("Balint Seeber <n0_5p4m_p13453@hotmail.com>"); | 2534 MODULE_AUTHOR("Balint Seeber <n0_5p4m_p13453@hotmail.com>"); |
2535 MODULE_AUTHOR("Pavel Roskin <proski@gnu.org>"); | 2535 MODULE_AUTHOR("Pavel Roskin <proski@gnu.org>"); |
2536 MODULE_AUTHOR("Guido Guenther <agx@sigxcpu.org>"); | 2536 MODULE_AUTHOR("Guido Guenther <agx@sigxcpu.org>"); |
2537 MODULE_AUTHOR("Kalle Valo <kalle.valo@iki.fi>"); | 2537 MODULE_AUTHOR("Kalle Valo <kalle.valo@iki.fi>"); |
2538 MODULE_AUTHOR("Sebastian Smolorz <sesmo@gmx.net>"); | 2538 MODULE_AUTHOR("Sebastian Smolorz <sesmo@gmx.net>"); |
2539 MODULE_DESCRIPTION(DRIVER_DESC); | 2539 MODULE_DESCRIPTION(DRIVER_DESC); |
2540 MODULE_LICENSE("GPL"); | 2540 MODULE_LICENSE("GPL"); |
OLD | NEW |