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 9d9b263733e6..d90f0a25b9cf 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 ac19ecd19cfe..4daf1c94ec04 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c | |||
@@ -1078,11 +1078,15 @@ static int eject_installer(struct usb_interface *intf) | |||
1078 | int r; | 1078 | int r; |
1079 | 1079 | ||
1080 | /* Find bulk out endpoint */ | 1080 | /* Find bulk out endpoint */ |
1081 | endpoint = &iface_desc->endpoint[1].desc; | 1081 | for (r = 1; r >= 0; r--) { |
1082 | if (usb_endpoint_dir_out(endpoint) && | 1082 | endpoint = &iface_desc->endpoint[r].desc; |
1083 | usb_endpoint_xfer_bulk(endpoint)) { | 1083 | if (usb_endpoint_dir_out(endpoint) && |
1084 | bulk_out_ep = endpoint->bEndpointAddress; | 1084 | usb_endpoint_xfer_bulk(endpoint)) { |
1085 | } else { | 1085 | bulk_out_ep = endpoint->bEndpointAddress; |
1086 | break; | ||
1087 | } | ||
1088 | } | ||
1089 | if (r == -1) { | ||
1086 | dev_err(&udev->dev, | 1090 | dev_err(&udev->dev, |
1087 | "zd1211rw: Could not find bulk out endpoint\n"); | 1091 | "zd1211rw: Could not find bulk out endpoint\n"); |
1088 | return -ENODEV; | 1092 | return -ENODEV; |