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
Kirill Smelkov
linux
Commits
07bfa524
Commit
07bfa524
authored
Nov 18, 2010
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
parents
93908d19
3bf30b56
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
78 additions
and
8 deletions
+78
-8
drivers/net/wireless/ath/ath9k/eeprom_9287.c
drivers/net/wireless/ath/ath9k/eeprom_9287.c
+1
-1
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/hif_usb.c
+9
-0
drivers/net/wireless/ath/ath9k/htc_drv_init.c
drivers/net/wireless/ath/ath9k/htc_drv_init.c
+2
-0
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+1
-1
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c
+1
-2
drivers/net/wireless/ath/ath9k/reg.h
drivers/net/wireless/ath/ath9k/reg.h
+7
-1
drivers/net/wireless/ath/carl9170/usb.c
drivers/net/wireless/ath/carl9170/usb.c
+2
-2
include/net/cfg80211.h
include/net/cfg80211.h
+1
-1
net/wireless/chan.c
net/wireless/chan.c
+54
-0
No files found.
drivers/net/wireless/ath/ath9k/eeprom_9287.c
View file @
07bfa524
...
...
@@ -37,7 +37,7 @@ static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
int
addr
,
eep_start_loc
;
eep_data
=
(
u16
*
)
eep
;
if
(
ah
->
hw_version
.
devid
==
0x7015
)
if
(
AR9287_HTC_DEVID
(
ah
)
)
eep_start_loc
=
AR9287_HTC_EEP_START_LOC
;
else
eep_start_loc
=
AR9287_EEP_START_LOC
;
...
...
drivers/net/wireless/ath/ath9k/hif_usb.c
View file @
07bfa524
...
...
@@ -36,8 +36,13 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
{
USB_DEVICE
(
0x13D3
,
0x3327
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3328
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3346
)
},
/* IMC Networks */
{
USB_DEVICE
(
0x13D3
,
0x3348
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3349
)
},
/* Azurewave */
{
USB_DEVICE
(
0x13D3
,
0x3350
)
},
/* Azurewave */
{
USB_DEVICE
(
0x04CA
,
0x4605
)
},
/* Liteon */
{
USB_DEVICE
(
0x083A
,
0xA704
)
},
/* SMC Networks */
{
USB_DEVICE
(
0x040D
,
0x3801
)
},
/* VIA */
{
USB_DEVICE
(
0x1668
,
0x1200
)
},
/* Verizon */
{
},
};
...
...
@@ -806,6 +811,8 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
case
0x7010
:
case
0x7015
:
case
0x9018
:
case
0xA704
:
case
0x1200
:
firm_offset
=
AR7010_FIRMWARE_TEXT
;
break
;
default:
...
...
@@ -928,6 +935,8 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
case
0x7010
:
case
0x7015
:
case
0x9018
:
case
0xA704
:
case
0x1200
:
if
(
le16_to_cpu
(
udev
->
descriptor
.
bcdDevice
)
==
0x0202
)
hif_dev
->
fw_name
=
FIRMWARE_AR7010_1_1
;
else
...
...
drivers/net/wireless/ath/ath9k/htc_drv_init.c
View file @
07bfa524
...
...
@@ -249,6 +249,8 @@ static int ath9k_init_htc_services(struct ath9k_htc_priv *priv, u16 devid)
case
0x7010
:
case
0x7015
:
case
0x9018
:
case
0xA704
:
case
0x1200
:
priv
->
htc
->
credits
=
45
;
break
;
default:
...
...
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
View file @
07bfa524
...
...
@@ -121,7 +121,7 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb)
tx_hdr
.
data_type
=
ATH9K_HTC_NORMAL
;
}
if
(
ieee80211_is_data
(
fc
))
{
if
(
ieee80211_is_data
_qos
(
fc
))
{
qc
=
ieee80211_get_qos_ctl
(
hdr
);
tx_hdr
.
tidno
=
qc
[
0
]
&
IEEE80211_QOS_CTL_TID_MASK
;
}
...
...
drivers/net/wireless/ath/ath9k/init.c
View file @
07bfa524
...
...
@@ -817,8 +817,6 @@ void ath9k_deinit_device(struct ath_softc *sc)
ath9k_ps_wakeup
(
sc
);
pm_qos_remove_request
(
&
ath9k_pm_qos_req
);
wiphy_rfkill_stop_polling
(
sc
->
hw
->
wiphy
);
ath_deinit_leds
(
sc
);
...
...
@@ -832,6 +830,7 @@ void ath9k_deinit_device(struct ath_softc *sc)
}
ieee80211_unregister_hw
(
hw
);
pm_qos_remove_request
(
&
ath9k_pm_qos_req
);
ath_rx_cleanup
(
sc
);
ath_tx_cleanup
(
sc
);
ath9k_deinit_softc
(
sc
);
...
...
drivers/net/wireless/ath/ath9k/reg.h
View file @
07bfa524
...
...
@@ -866,7 +866,13 @@
#define AR_DEVID_7010(_ah) \
(((_ah)->hw_version.devid == 0x7010) || \
((_ah)->hw_version.devid == 0x7015) || \
((_ah)->hw_version.devid == 0x9018))
((_ah)->hw_version.devid == 0x9018) || \
((_ah)->hw_version.devid == 0xA704) || \
((_ah)->hw_version.devid == 0x1200))
#define AR9287_HTC_DEVID(_ah) \
(((_ah)->hw_version.devid == 0x7015) || \
((_ah)->hw_version.devid == 0x1200))
#define AR_RADIO_SREV_MAJOR 0xf0
#define AR_RAD5133_SREV_MAJOR 0xc0
...
...
drivers/net/wireless/ath/carl9170/usb.c
View file @
07bfa524
...
...
@@ -553,12 +553,12 @@ static int carl9170_usb_flush(struct ar9170 *ar)
usb_free_urb
(
urb
);
}
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_cmd
,
HZ
);
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_cmd
,
1000
);
if
(
ret
==
0
)
err
=
-
ETIMEDOUT
;
/* lets wait a while until the tx - queues are dried out */
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_anch
,
HZ
);
ret
=
usb_wait_anchor_empty_timeout
(
&
ar
->
tx_anch
,
1000
);
if
(
ret
==
0
)
err
=
-
ETIMEDOUT
;
...
...
include/net/cfg80211.h
View file @
07bfa524
...
...
@@ -1355,7 +1355,7 @@ enum wiphy_flags {
WIPHY_FLAG_4ADDR_AP
=
BIT
(
5
),
WIPHY_FLAG_4ADDR_STATION
=
BIT
(
6
),
WIPHY_FLAG_CONTROL_PORT_PROTOCOL
=
BIT
(
7
),
WIPHY_FLAG_IBSS_RSN
=
BIT
(
7
),
WIPHY_FLAG_IBSS_RSN
=
BIT
(
8
),
};
struct
mac_address
{
...
...
net/wireless/chan.c
View file @
07bfa524
...
...
@@ -44,6 +44,38 @@ rdev_freq_to_chan(struct cfg80211_registered_device *rdev,
return
chan
;
}
static
bool
can_beacon_sec_chan
(
struct
wiphy
*
wiphy
,
struct
ieee80211_channel
*
chan
,
enum
nl80211_channel_type
channel_type
)
{
struct
ieee80211_channel
*
sec_chan
;
int
diff
;
switch
(
channel_type
)
{
case
NL80211_CHAN_HT40PLUS
:
diff
=
20
;
break
;
case
NL80211_CHAN_HT40MINUS
:
diff
=
-
20
;
break
;
default:
return
false
;
}
sec_chan
=
ieee80211_get_channel
(
wiphy
,
chan
->
center_freq
+
diff
);
if
(
!
sec_chan
)
return
false
;
/* we'll need a DFS capability later */
if
(
sec_chan
->
flags
&
(
IEEE80211_CHAN_DISABLED
|
IEEE80211_CHAN_PASSIVE_SCAN
|
IEEE80211_CHAN_NO_IBSS
|
IEEE80211_CHAN_RADAR
))
return
false
;
return
true
;
}
int
cfg80211_set_freq
(
struct
cfg80211_registered_device
*
rdev
,
struct
wireless_dev
*
wdev
,
int
freq
,
enum
nl80211_channel_type
channel_type
)
...
...
@@ -68,6 +100,28 @@ int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
if
(
!
chan
)
return
-
EINVAL
;
/* Both channels should be able to initiate communication */
if
(
wdev
&&
(
wdev
->
iftype
==
NL80211_IFTYPE_ADHOC
||
wdev
->
iftype
==
NL80211_IFTYPE_AP
||
wdev
->
iftype
==
NL80211_IFTYPE_AP_VLAN
||
wdev
->
iftype
==
NL80211_IFTYPE_MESH_POINT
||
wdev
->
iftype
==
NL80211_IFTYPE_P2P_GO
))
{
switch
(
channel_type
)
{
case
NL80211_CHAN_HT40PLUS
:
case
NL80211_CHAN_HT40MINUS
:
if
(
!
can_beacon_sec_chan
(
&
rdev
->
wiphy
,
chan
,
channel_type
))
{
printk
(
KERN_DEBUG
"cfg80211: Secondary channel not "
"allowed to initiate communication
\n
"
);
return
-
EINVAL
;
}
break
;
default:
break
;
}
}
result
=
rdev
->
ops
->
set_channel
(
&
rdev
->
wiphy
,
wdev
?
wdev
->
netdev
:
NULL
,
chan
,
channel_type
);
...
...
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