Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
eebb6fb4
Commit
eebb6fb4
authored
Sep 20, 2011
by
John W. Linville
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
ssh://infradead/~/public_git/wireless
into for-davem
parents
9d037a77
8c23516f
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
98 additions
and
59 deletions
+98
-59
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+6
-0
drivers/bluetooth/btwilink.c
drivers/bluetooth/btwilink.c
+8
-8
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+2
-1
drivers/net/wireless/ipw2x00/ipw2100.c
drivers/net/wireless/ipw2x00/ipw2100.c
+14
-7
drivers/net/wireless/ipw2x00/ipw2200.c
drivers/net/wireless/ipw2x00/ipw2200.c
+26
-13
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+5
-0
drivers/net/wireless/rt2x00/rt2800lib.c
drivers/net/wireless/rt2x00/rt2800lib.c
+26
-21
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+8
-9
net/wireless/reg.c
net/wireless/reg.c
+1
-0
net/wireless/sme.c
net/wireless/sme.c
+2
-0
No files found.
drivers/bluetooth/btusb.c
View file @
eebb6fb4
...
...
@@ -72,9 +72,15 @@ static struct usb_device_id btusb_table[] = {
/* Apple MacBookAir3,1, MacBookAir3,2 */
{
USB_DEVICE
(
0x05ac
,
0x821b
)
},
/* Apple MacBookAir4,1 */
{
USB_DEVICE
(
0x05ac
,
0x821f
)
},
/* Apple MacBookPro8,2 */
{
USB_DEVICE
(
0x05ac
,
0x821a
)
},
/* Apple MacMini5,1 */
{
USB_DEVICE
(
0x05ac
,
0x8281
)
},
/* AVM BlueFRITZ! USB v2.0 */
{
USB_DEVICE
(
0x057c
,
0x3800
)
},
...
...
drivers/bluetooth/btwilink.c
View file @
eebb6fb4
...
...
@@ -124,6 +124,13 @@ static long st_receive(void *priv_data, struct sk_buff *skb)
/* ------- Interfaces to HCI layer ------ */
/* protocol structure registered with shared transport */
static
struct
st_proto_s
ti_st_proto
[
MAX_BT_CHNL_IDS
]
=
{
{
.
chnl_id
=
HCI_EVENT_PKT
,
/* HCI Events */
.
hdr_len
=
sizeof
(
struct
hci_event_hdr
),
.
offset_len_in_hdr
=
offsetof
(
struct
hci_event_hdr
,
plen
),
.
len_size
=
1
,
/* sizeof(plen) in struct hci_event_hdr */
.
reserve
=
8
,
},
{
.
chnl_id
=
HCI_ACLDATA_PKT
,
/* ACL */
.
hdr_len
=
sizeof
(
struct
hci_acl_hdr
),
...
...
@@ -138,13 +145,6 @@ static struct st_proto_s ti_st_proto[MAX_BT_CHNL_IDS] = {
.
len_size
=
1
,
/* sizeof(dlen) in struct hci_sco_hdr */
.
reserve
=
8
,
},
{
.
chnl_id
=
HCI_EVENT_PKT
,
/* HCI Events */
.
hdr_len
=
sizeof
(
struct
hci_event_hdr
),
.
offset_len_in_hdr
=
offsetof
(
struct
hci_event_hdr
,
plen
),
.
len_size
=
1
,
/* sizeof(plen) in struct hci_event_hdr */
.
reserve
=
8
,
},
};
/* Called from HCI core to initialize the device */
...
...
@@ -240,7 +240,7 @@ static int ti_st_close(struct hci_dev *hdev)
if
(
!
test_and_clear_bit
(
HCI_RUNNING
,
&
hdev
->
flags
))
return
0
;
for
(
i
=
0
;
i
<
MAX_BT_CHNL_IDS
;
i
++
)
{
for
(
i
=
MAX_BT_CHNL_IDS
-
1
;
i
>=
0
;
i
--
)
{
err
=
st_unregister
(
&
ti_st_proto
[
i
]);
if
(
err
)
BT_ERR
(
"st_unregister(%d) failed with error %d"
,
...
...
drivers/net/wireless/b43/main.c
View file @
eebb6fb4
...
...
@@ -1632,7 +1632,8 @@ static void handle_irq_beacon(struct b43_wldev *dev)
u32
cmd
,
beacon0_valid
,
beacon1_valid
;
if
(
!
b43_is_mode
(
wl
,
NL80211_IFTYPE_AP
)
&&
!
b43_is_mode
(
wl
,
NL80211_IFTYPE_MESH_POINT
))
!
b43_is_mode
(
wl
,
NL80211_IFTYPE_MESH_POINT
)
&&
!
b43_is_mode
(
wl
,
NL80211_IFTYPE_ADHOC
))
return
;
/* This is the bottom half of the asynchronous beacon update. */
...
...
drivers/net/wireless/ipw2x00/ipw2100.c
View file @
eebb6fb4
...
...
@@ -1901,17 +1901,19 @@ static void ipw2100_down(struct ipw2100_priv *priv)
/* Called by register_netdev() */
static
int
ipw2100_net_init
(
struct
net_device
*
dev
)
{
struct
ipw2100_priv
*
priv
=
libipw_priv
(
dev
);
return
ipw2100_up
(
priv
,
1
);
}
static
int
ipw2100_wdev_init
(
struct
net_device
*
dev
)
{
struct
ipw2100_priv
*
priv
=
libipw_priv
(
dev
);
const
struct
libipw_geo
*
geo
=
libipw_get_geo
(
priv
->
ieee
);
struct
wireless_dev
*
wdev
=
&
priv
->
ieee
->
wdev
;
int
ret
;
int
i
;
ret
=
ipw2100_up
(
priv
,
1
);
if
(
ret
)
return
ret
;
memcpy
(
wdev
->
wiphy
->
perm_addr
,
priv
->
mac_addr
,
ETH_ALEN
);
/* fill-out priv->ieee->bg_band */
...
...
@@ -6350,9 +6352,13 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
"Error calling register_netdev.
\n
"
);
goto
fail
;
}
registered
=
1
;
err
=
ipw2100_wdev_init
(
dev
);
if
(
err
)
goto
fail
;
mutex_lock
(
&
priv
->
action_mutex
);
registered
=
1
;
IPW_DEBUG_INFO
(
"%s: Bound to %s
\n
"
,
dev
->
name
,
pci_name
(
pci_dev
));
...
...
@@ -6389,7 +6395,8 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
fail_unlock:
mutex_unlock
(
&
priv
->
action_mutex
);
wiphy_unregister
(
priv
->
ieee
->
wdev
.
wiphy
);
kfree
(
priv
->
ieee
->
bg_band
.
channels
);
fail:
if
(
dev
)
{
if
(
registered
)
...
...
drivers/net/wireless/ipw2x00/ipw2200.c
View file @
eebb6fb4
...
...
@@ -11424,17 +11424,24 @@ static void ipw_bg_down(struct work_struct *work)
/* Called by register_netdev() */
static
int
ipw_net_init
(
struct
net_device
*
dev
)
{
int
rc
=
0
;
struct
ipw_priv
*
priv
=
libipw_priv
(
dev
);
mutex_lock
(
&
priv
->
mutex
);
if
(
ipw_up
(
priv
))
rc
=
-
EIO
;
mutex_unlock
(
&
priv
->
mutex
);
return
rc
;
}
static
int
ipw_wdev_init
(
struct
net_device
*
dev
)
{
int
i
,
rc
=
0
;
struct
ipw_priv
*
priv
=
libipw_priv
(
dev
);
const
struct
libipw_geo
*
geo
=
libipw_get_geo
(
priv
->
ieee
);
struct
wireless_dev
*
wdev
=
&
priv
->
ieee
->
wdev
;
mutex_lock
(
&
priv
->
mutex
);
if
(
ipw_up
(
priv
))
{
rc
=
-
EIO
;
goto
out
;
}
memcpy
(
wdev
->
wiphy
->
perm_addr
,
priv
->
mac_addr
,
ETH_ALEN
);
...
...
@@ -11519,13 +11526,9 @@ static int ipw_net_init(struct net_device *dev)
set_wiphy_dev
(
wdev
->
wiphy
,
&
priv
->
pci_dev
->
dev
);
/* With that information in place, we can now register the wiphy... */
if
(
wiphy_register
(
wdev
->
wiphy
))
{
if
(
wiphy_register
(
wdev
->
wiphy
))
rc
=
-
EIO
;
goto
out
;
}
out:
mutex_unlock
(
&
priv
->
mutex
);
return
rc
;
}
...
...
@@ -11832,14 +11835,22 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
goto
out_remove_sysfs
;
}
err
=
ipw_wdev_init
(
net_dev
);
if
(
err
)
{
IPW_ERROR
(
"failed to register wireless device
\n
"
);
goto
out_unregister_netdev
;
}
#ifdef CONFIG_IPW2200_PROMISCUOUS
if
(
rtap_iface
)
{
err
=
ipw_prom_alloc
(
priv
);
if
(
err
)
{
IPW_ERROR
(
"Failed to register promiscuous network "
"device (error %d).
\n
"
,
err
);
unregister_netdev
(
priv
->
net_dev
);
goto
out_remove_sysfs
;
wiphy_unregister
(
priv
->
ieee
->
wdev
.
wiphy
);
kfree
(
priv
->
ieee
->
a_band
.
channels
);
kfree
(
priv
->
ieee
->
bg_band
.
channels
);
goto
out_unregister_netdev
;
}
}
#endif
...
...
@@ -11851,6 +11862,8 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
return
0
;
out_unregister_netdev:
unregister_netdev
(
priv
->
net_dev
);
out_remove_sysfs:
sysfs_remove_group
(
&
pdev
->
dev
.
kobj
,
&
ipw_attribute_group
);
out_release_irq:
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
View file @
eebb6fb4
...
...
@@ -2140,7 +2140,12 @@ static int iwl_mac_setup_register(struct iwl_priv *priv,
IEEE80211_HW_SPECTRUM_MGMT
|
IEEE80211_HW_REPORTS_TX_ACK_STATUS
;
/*
* Including the following line will crash some AP's. This
* workaround removes the stimulus which causes the crash until
* the AP software can be fixed.
hw->max_tx_aggregation_subframes = LINK_QUAL_AGG_FRAME_LIMIT_DEF;
*/
hw
->
flags
|=
IEEE80211_HW_SUPPORTS_PS
|
IEEE80211_HW_SUPPORTS_DYNAMIC_PS
;
...
...
drivers/net/wireless/rt2x00/rt2800lib.c
View file @
eebb6fb4
...
...
@@ -3697,14 +3697,15 @@ static void rt2800_efuse_read(struct rt2x00_dev *rt2x00dev, unsigned int i)
rt2800_regbusy_read
(
rt2x00dev
,
EFUSE_CTRL
,
EFUSE_CTRL_KICK
,
&
reg
);
/* Apparently the data is read from end to start */
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA3
,
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
]);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA2
,
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
+
2
]);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA1
,
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
+
4
]);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA0
,
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
+
6
]);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA3
,
&
reg
);
/* The returned value is in CPU order, but eeprom is le */
rt2x00dev
->
eeprom
[
i
]
=
cpu_to_le32
(
reg
);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA2
,
&
reg
);
*
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
+
2
]
=
cpu_to_le32
(
reg
);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA1
,
&
reg
);
*
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
+
4
]
=
cpu_to_le32
(
reg
);
rt2800_register_read_lock
(
rt2x00dev
,
EFUSE_DATA0
,
&
reg
);
*
(
u32
*
)
&
rt2x00dev
->
eeprom
[
i
+
6
]
=
cpu_to_le32
(
reg
);
mutex_unlock
(
&
rt2x00dev
->
csr_mutex
);
}
...
...
@@ -3870,19 +3871,23 @@ int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
return
-
ENODEV
;
}
if
(
!
rt2x00_rf
(
rt2x00dev
,
RF2820
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF2850
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF2720
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF2750
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF3020
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF2020
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF3021
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF3022
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF3052
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF3320
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF5370
)
&&
!
rt2x00_rf
(
rt2x00dev
,
RF5390
))
{
ERROR
(
rt2x00dev
,
"Invalid RF chipset detected.
\n
"
);
switch
(
rt2x00dev
->
chip
.
rf
)
{
case
RF2820
:
case
RF2850
:
case
RF2720
:
case
RF2750
:
case
RF3020
:
case
RF2020
:
case
RF3021
:
case
RF3022
:
case
RF3052
:
case
RF3320
:
case
RF5370
:
case
RF5390
:
break
;
default:
ERROR
(
rt2x00dev
,
"Invalid RF chipset 0x%x detected.
\n
"
,
rt2x00dev
->
chip
.
rf
);
return
-
ENODEV
;
}
...
...
net/bluetooth/hci_event.c
View file @
eebb6fb4
...
...
@@ -58,8 +58,8 @@ static void hci_cc_inquiry_cancel(struct hci_dev *hdev, struct sk_buff *skb)
if
(
status
)
return
;
if
(
test_
bit
(
HCI_MGMT
,
&
hdev
->
flags
)
&&
test_and_clear_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
))
if
(
test_
and_clear_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
)
&&
test_bit
(
HCI_MGMT
,
&
hdev
->
flags
))
mgmt_discovering
(
hdev
->
id
,
0
);
hci_req_complete
(
hdev
,
HCI_OP_INQUIRY_CANCEL
,
status
);
...
...
@@ -76,8 +76,8 @@ static void hci_cc_exit_periodic_inq(struct hci_dev *hdev, struct sk_buff *skb)
if
(
status
)
return
;
if
(
test_
bit
(
HCI_MGMT
,
&
hdev
->
flags
)
&&
test_
and_clear_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
))
if
(
test_
and_clear_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
)
&&
test_
bit
(
HCI_MGMT
,
&
hdev
->
flags
))
mgmt_discovering
(
hdev
->
id
,
0
);
hci_conn_check_pending
(
hdev
);
...
...
@@ -959,9 +959,8 @@ static inline void hci_cs_inquiry(struct hci_dev *hdev, __u8 status)
return
;
}
if
(
test_bit
(
HCI_MGMT
,
&
hdev
->
flags
)
&&
!
test_and_set_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
))
if
(
!
test_and_set_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
)
&&
test_bit
(
HCI_MGMT
,
&
hdev
->
flags
))
mgmt_discovering
(
hdev
->
id
,
1
);
}
...
...
@@ -1340,8 +1339,8 @@ static inline void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff
BT_DBG
(
"%s status %d"
,
hdev
->
name
,
status
);
if
(
test_
bit
(
HCI_MGMT
,
&
hdev
->
flags
)
&&
test_
and_clear_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
))
if
(
test_
and_clear_bit
(
HCI_INQUIRY
,
&
hdev
->
flags
)
&&
test_
bit
(
HCI_MGMT
,
&
hdev
->
flags
))
mgmt_discovering
(
hdev
->
id
,
0
);
hci_req_complete
(
hdev
,
HCI_OP_INQUIRY
,
status
);
...
...
net/wireless/reg.c
View file @
eebb6fb4
...
...
@@ -852,6 +852,7 @@ static void handle_channel(struct wiphy *wiphy,
return
;
}
chan
->
beacon_found
=
false
;
chan
->
flags
=
flags
|
bw_flags
|
map_regdom_flags
(
reg_rule
->
flags
);
chan
->
max_antenna_gain
=
min
(
chan
->
orig_mag
,
(
int
)
MBI_TO_DBI
(
power_rule
->
max_antenna_gain
));
...
...
net/wireless/sme.c
View file @
eebb6fb4
...
...
@@ -118,6 +118,8 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev)
i
++
,
j
++
)
request
->
channels
[
i
]
=
&
wdev
->
wiphy
->
bands
[
band
]
->
channels
[
j
];
request
->
rates
[
band
]
=
(
1
<<
wdev
->
wiphy
->
bands
[
band
]
->
n_bitrates
)
-
1
;
}
}
request
->
n_channels
=
n_channels
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment