diff options
Diffstat (limited to 'drivers/net/wireless/zd1211rw')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_usb.c | 14 |
2 files changed, 14 insertions, 10 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index f14deb0c8514..2d555cc30508 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c | |||
@@ -869,7 +869,7 @@ int zd_mac_rx(struct ieee80211_hw *hw, const u8 *buffer, unsigned int length) | |||
869 | } | 869 | } |
870 | 870 | ||
871 | static int zd_op_add_interface(struct ieee80211_hw *hw, | 871 | static int zd_op_add_interface(struct ieee80211_hw *hw, |
872 | struct ieee80211_if_init_conf *conf) | 872 | struct ieee80211_vif *vif) |
873 | { | 873 | { |
874 | struct zd_mac *mac = zd_hw_mac(hw); | 874 | struct zd_mac *mac = zd_hw_mac(hw); |
875 | 875 | ||
@@ -877,22 +877,22 @@ static int zd_op_add_interface(struct ieee80211_hw *hw, | |||
877 | if (mac->type != NL80211_IFTYPE_UNSPECIFIED) | 877 | if (mac->type != NL80211_IFTYPE_UNSPECIFIED) |
878 | return -EOPNOTSUPP; | 878 | return -EOPNOTSUPP; |
879 | 879 | ||
880 | switch (conf->type) { | 880 | switch (vif->type) { |
881 | case NL80211_IFTYPE_MONITOR: | 881 | case NL80211_IFTYPE_MONITOR: |
882 | case NL80211_IFTYPE_MESH_POINT: | 882 | case NL80211_IFTYPE_MESH_POINT: |
883 | case NL80211_IFTYPE_STATION: | 883 | case NL80211_IFTYPE_STATION: |
884 | case NL80211_IFTYPE_ADHOC: | 884 | case NL80211_IFTYPE_ADHOC: |
885 | mac->type = conf->type; | 885 | mac->type = vif->type; |
886 | break; | 886 | break; |
887 | default: | 887 | default: |
888 | return -EOPNOTSUPP; | 888 | return -EOPNOTSUPP; |
889 | } | 889 | } |
890 | 890 | ||
891 | return zd_write_mac_addr(&mac->chip, conf->mac_addr); | 891 | return zd_write_mac_addr(&mac->chip, vif->addr); |
892 | } | 892 | } |
893 | 893 | ||
894 | static void zd_op_remove_interface(struct ieee80211_hw *hw, | 894 | static void zd_op_remove_interface(struct ieee80211_hw *hw, |
895 | struct ieee80211_if_init_conf *conf) | 895 | struct ieee80211_vif *vif) |
896 | { | 896 | { |
897 | struct zd_mac *mac = zd_hw_mac(hw); | 897 | struct zd_mac *mac = zd_hw_mac(hw); |
898 | mac->type = NL80211_IFTYPE_UNSPECIFIED; | 898 | mac->type = NL80211_IFTYPE_UNSPECIFIED; |
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c index 72d3e437e190..442fc1117326 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c | |||
@@ -1079,11 +1079,15 @@ static int eject_installer(struct usb_interface *intf) | |||
1079 | int r; | 1079 | int r; |
1080 | 1080 | ||
1081 | /* Find bulk out endpoint */ | 1081 | /* Find bulk out endpoint */ |
1082 | endpoint = &iface_desc->endpoint[1].desc; | 1082 | for (r = 1; r >= 0; r--) { |
1083 | if (usb_endpoint_dir_out(endpoint) && | 1083 | endpoint = &iface_desc->endpoint[r].desc; |
1084 | usb_endpoint_xfer_bulk(endpoint)) { | 1084 | if (usb_endpoint_dir_out(endpoint) && |
1085 | bulk_out_ep = endpoint->bEndpointAddress; | 1085 | usb_endpoint_xfer_bulk(endpoint)) { |
1086 | } else { | 1086 | bulk_out_ep = endpoint->bEndpointAddress; |
1087 | break; | ||
1088 | } | ||
1089 | } | ||
1090 | if (r == -1) { | ||
1087 | dev_err(&udev->dev, | 1091 | dev_err(&udev->dev, |
1088 | "zd1211rw: Could not find bulk out endpoint\n"); | 1092 | "zd1211rw: Could not find bulk out endpoint\n"); |
1089 | return -ENODEV; | 1093 | return -ENODEV; |