Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
d7713ccc
Commit
d7713ccc
authored
Nov 25, 2008
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
11c6dd2c
020cf6ba
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
74 additions
and
21 deletions
+74
-21
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/base.c
+34
-1
drivers/net/wireless/ath5k/base.h
drivers/net/wireless/ath5k/base.h
+1
-0
drivers/net/wireless/ath5k/debug.c
drivers/net/wireless/ath5k/debug.c
+5
-5
drivers/net/wireless/ath9k/beacon.c
drivers/net/wireless/ath9k/beacon.c
+5
-5
drivers/net/wireless/ath9k/recv.c
drivers/net/wireless/ath9k/recv.c
+14
-5
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.c
+5
-3
net/mac80211/wext.c
net/mac80211/wext.c
+8
-0
net/wireless/reg.c
net/wireless/reg.c
+2
-2
No files found.
drivers/net/wireless/ath5k/base.c
View file @
d7713ccc
...
...
@@ -240,6 +240,10 @@ static u64 ath5k_get_tsf(struct ieee80211_hw *hw);
static
void
ath5k_reset_tsf
(
struct
ieee80211_hw
*
hw
);
static
int
ath5k_beacon_update
(
struct
ieee80211_hw
*
hw
,
struct
sk_buff
*
skb
);
static
void
ath5k_bss_info_changed
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_bss_conf
*
bss_conf
,
u32
changes
);
static
struct
ieee80211_ops
ath5k_hw_ops
=
{
.
tx
=
ath5k_tx
,
...
...
@@ -256,6 +260,7 @@ static struct ieee80211_ops ath5k_hw_ops = {
.
get_tx_stats
=
ath5k_get_tx_stats
,
.
get_tsf
=
ath5k_get_tsf
,
.
reset_tsf
=
ath5k_reset_tsf
,
.
bss_info_changed
=
ath5k_bss_info_changed
,
};
/*
...
...
@@ -2942,7 +2947,7 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw,
sc
->
opmode
!=
NL80211_IFTYPE_MESH_POINT
&&
test_bit
(
ATH_STAT_PROMISC
,
sc
->
status
))
rfilt
|=
AR5K_RX_FILTER_PROM
;
if
(
sc
->
opmode
==
NL80211_IFTYPE_STATION
||
if
(
(
sc
->
opmode
==
NL80211_IFTYPE_STATION
&&
sc
->
assoc
)
||
sc
->
opmode
==
NL80211_IFTYPE_ADHOC
)
{
rfilt
|=
AR5K_RX_FILTER_BEACON
;
}
...
...
@@ -3083,4 +3088,32 @@ ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
end:
return
ret
;
}
static
void
set_beacon_filter
(
struct
ieee80211_hw
*
hw
,
bool
enable
)
{
struct
ath5k_softc
*
sc
=
hw
->
priv
;
struct
ath5k_hw
*
ah
=
sc
->
ah
;
u32
rfilt
;
rfilt
=
ath5k_hw_get_rx_filter
(
ah
);
if
(
enable
)
rfilt
|=
AR5K_RX_FILTER_BEACON
;
else
rfilt
&=
~
AR5K_RX_FILTER_BEACON
;
ath5k_hw_set_rx_filter
(
ah
,
rfilt
);
sc
->
filter_flags
=
rfilt
;
}
static
void
ath5k_bss_info_changed
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*
vif
,
struct
ieee80211_bss_conf
*
bss_conf
,
u32
changes
)
{
struct
ath5k_softc
*
sc
=
hw
->
priv
;
if
(
changes
&
BSS_CHANGED_ASSOC
)
{
mutex_lock
(
&
sc
->
lock
);
sc
->
assoc
=
bss_conf
->
assoc
;
if
(
sc
->
opmode
==
NL80211_IFTYPE_STATION
)
set_beacon_filter
(
hw
,
sc
->
assoc
);
mutex_unlock
(
&
sc
->
lock
);
}
}
drivers/net/wireless/ath5k/base.h
View file @
d7713ccc
...
...
@@ -179,6 +179,7 @@ struct ath5k_softc {
struct
timer_list
calib_tim
;
/* calibration timer */
int
power_level
;
/* Requested tx power in dbm */
bool
assoc
;
/* assocate state */
};
#define ath5k_hw_hasbssidmask(_ah) \
...
...
drivers/net/wireless/ath5k/debug.c
View file @
d7713ccc
...
...
@@ -417,19 +417,19 @@ ath5k_debug_init_device(struct ath5k_softc *sc)
sc
->
debug
.
debugfs_phydir
=
debugfs_create_dir
(
wiphy_name
(
sc
->
hw
->
wiphy
),
ath5k_global_debugfs
);
sc
->
debug
.
debugfs_debug
=
debugfs_create_file
(
"debug"
,
0666
,
sc
->
debug
.
debugfs_debug
=
debugfs_create_file
(
"debug"
,
S_IWUSR
|
S_IRUGO
,
sc
->
debug
.
debugfs_phydir
,
sc
,
&
fops_debug
);
sc
->
debug
.
debugfs_registers
=
debugfs_create_file
(
"registers"
,
0444
,
sc
->
debug
.
debugfs_registers
=
debugfs_create_file
(
"registers"
,
S_IRUGO
,
sc
->
debug
.
debugfs_phydir
,
sc
,
&
fops_registers
);
sc
->
debug
.
debugfs_tsf
=
debugfs_create_file
(
"tsf"
,
0666
,
sc
->
debug
.
debugfs_tsf
=
debugfs_create_file
(
"tsf"
,
S_IWUSR
|
S_IRUGO
,
sc
->
debug
.
debugfs_phydir
,
sc
,
&
fops_tsf
);
sc
->
debug
.
debugfs_beacon
=
debugfs_create_file
(
"beacon"
,
0666
,
sc
->
debug
.
debugfs_beacon
=
debugfs_create_file
(
"beacon"
,
S_IWUSR
|
S_IRUGO
,
sc
->
debug
.
debugfs_phydir
,
sc
,
&
fops_beacon
);
sc
->
debug
.
debugfs_reset
=
debugfs_create_file
(
"reset"
,
0222
,
sc
->
debug
.
debugfs_reset
=
debugfs_create_file
(
"reset"
,
S_IWUSR
,
sc
->
debug
.
debugfs_phydir
,
sc
,
&
fops_reset
);
}
...
...
drivers/net/wireless/ath9k/beacon.c
View file @
d7713ccc
...
...
@@ -170,7 +170,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
skb
=
(
struct
sk_buff
*
)
bf
->
bf_mpdu
;
if
(
skb
)
{
pci_unmap_single
(
sc
->
pdev
,
bf
->
bf_dmacontext
,
skb
_end_pointer
(
skb
)
-
skb
->
head
,
skb
->
len
,
PCI_DMA_TODEVICE
);
}
...
...
@@ -193,7 +193,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
bf
->
bf_buf_addr
=
bf
->
bf_dmacontext
=
pci_map_single
(
sc
->
pdev
,
skb
->
data
,
skb
_end_pointer
(
skb
)
-
skb
->
head
,
skb
->
len
,
PCI_DMA_TODEVICE
);
skb
=
ieee80211_get_buffered_bc
(
sc
->
hw
,
avp
->
av_if_data
);
...
...
@@ -352,7 +352,7 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id)
if
(
bf
->
bf_mpdu
!=
NULL
)
{
skb
=
(
struct
sk_buff
*
)
bf
->
bf_mpdu
;
pci_unmap_single
(
sc
->
pdev
,
bf
->
bf_dmacontext
,
skb
_end_pointer
(
skb
)
-
skb
->
head
,
skb
->
len
,
PCI_DMA_TODEVICE
);
dev_kfree_skb_any
(
skb
);
bf
->
bf_mpdu
=
NULL
;
...
...
@@ -412,7 +412,7 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id)
bf
->
bf_buf_addr
=
bf
->
bf_dmacontext
=
pci_map_single
(
sc
->
pdev
,
skb
->
data
,
skb
_end_pointer
(
skb
)
-
skb
->
head
,
skb
->
len
,
PCI_DMA_TODEVICE
);
bf
->
bf_mpdu
=
skb
;
...
...
@@ -439,7 +439,7 @@ void ath_beacon_return(struct ath_softc *sc, struct ath_vap *avp)
if
(
bf
->
bf_mpdu
!=
NULL
)
{
struct
sk_buff
*
skb
=
(
struct
sk_buff
*
)
bf
->
bf_mpdu
;
pci_unmap_single
(
sc
->
pdev
,
bf
->
bf_dmacontext
,
skb
_end_pointer
(
skb
)
-
skb
->
head
,
skb
->
len
,
PCI_DMA_TODEVICE
);
dev_kfree_skb_any
(
skb
);
bf
->
bf_mpdu
=
NULL
;
...
...
drivers/net/wireless/ath9k/recv.c
View file @
d7713ccc
...
...
@@ -49,10 +49,12 @@ static void ath_rx_buf_link(struct ath_softc *sc, struct ath_buf *bf)
ASSERT
(
skb
!=
NULL
);
ds
->
ds_vdata
=
skb
->
data
;
/* setup rx descriptors */
/* setup rx descriptors. The sc_rxbufsize here tells the harware
* how much data it can DMA to us and that we are prepared
* to process */
ath9k_hw_setuprxdesc
(
ah
,
ds
,
s
kb_tailroom
(
skb
),
/* buffer size */
s
c
->
sc_rxbufsize
,
0
);
if
(
sc
->
sc_rxlink
==
NULL
)
...
...
@@ -398,6 +400,13 @@ static struct sk_buff *ath_rxbuf_alloc(struct ath_softc *sc,
* in rx'd frames.
*/
/* Note: the kernel can allocate a value greater than
* what we ask it to give us. We really only need 4 KB as that
* is this hardware supports and in fact we need at least 3849
* as that is the MAX AMSDU size this hardware supports.
* Unfortunately this means we may get 8 KB here from the
* kernel... and that is actually what is observed on some
* systems :( */
skb
=
dev_alloc_skb
(
len
+
sc
->
sc_cachelsz
-
1
);
if
(
skb
!=
NULL
)
{
off
=
((
unsigned
long
)
skb
->
data
)
%
sc
->
sc_cachelsz
;
...
...
@@ -456,7 +465,7 @@ static int ath_rx_indicate(struct ath_softc *sc,
if
(
nskb
!=
NULL
)
{
bf
->
bf_mpdu
=
nskb
;
bf
->
bf_buf_addr
=
pci_map_single
(
sc
->
pdev
,
nskb
->
data
,
s
kb_end_pointer
(
nskb
)
-
nskb
->
head
,
s
c
->
sc_rxbufsize
,
PCI_DMA_FROMDEVICE
);
bf
->
bf_dmacontext
=
bf
->
bf_buf_addr
;
ATH_RX_CONTEXT
(
nskb
)
->
ctx_rxbuf
=
bf
;
...
...
@@ -542,7 +551,7 @@ int ath_rx_init(struct ath_softc *sc, int nbufs)
bf
->
bf_mpdu
=
skb
;
bf
->
bf_buf_addr
=
pci_map_single
(
sc
->
pdev
,
skb
->
data
,
s
kb_end_pointer
(
skb
)
-
skb
->
head
,
s
c
->
sc_rxbufsize
,
PCI_DMA_FROMDEVICE
);
bf
->
bf_dmacontext
=
bf
->
bf_buf_addr
;
ATH_RX_CONTEXT
(
skb
)
->
ctx_rxbuf
=
bf
;
...
...
@@ -1007,7 +1016,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush)
pci_dma_sync_single_for_cpu
(
sc
->
pdev
,
bf
->
bf_buf_addr
,
s
kb_tailroom
(
skb
)
,
s
c
->
sc_rxbufsize
,
PCI_DMA_FROMDEVICE
);
pci_unmap_single
(
sc
->
pdev
,
bf
->
bf_buf_addr
,
...
...
drivers/net/wireless/iwlwifi/iwl-agn.c
View file @
d7713ccc
...
...
@@ -1384,9 +1384,11 @@ void iwl_rx_handle(struct iwl_priv *priv)
rxq
->
queue
[
i
]
=
NULL
;
pci_dma_sync_single_for_cpu
(
priv
->
pci_dev
,
rxb
->
aligned_dma_addr
,
priv
->
hw_params
.
rx_buf_size
,
PCI_DMA_FROMDEVICE
);
dma_sync_single_range_for_cpu
(
&
priv
->
pci_dev
->
dev
,
rxb
->
real_dma_addr
,
rxb
->
aligned_dma_addr
-
rxb
->
real_dma_addr
,
priv
->
hw_params
.
rx_buf_size
,
PCI_DMA_FROMDEVICE
);
pkt
=
(
struct
iwl_rx_packet
*
)
rxb
->
skb
->
data
;
/* Reclaim a command buffer only if this packet is a response
...
...
net/mac80211/wext.c
View file @
d7713ccc
...
...
@@ -271,6 +271,7 @@ static int ieee80211_ioctl_siwmode(struct net_device *dev,
__u32
*
mode
,
char
*
extra
)
{
struct
ieee80211_sub_if_data
*
sdata
=
IEEE80211_DEV_TO_SUB_IF
(
dev
);
struct
ieee80211_local
*
local
=
sdata
->
local
;
int
type
;
if
(
sdata
->
vif
.
type
==
NL80211_IFTYPE_AP_VLAN
)
...
...
@@ -281,6 +282,13 @@ static int ieee80211_ioctl_siwmode(struct net_device *dev,
type
=
NL80211_IFTYPE_STATION
;
break
;
case
IW_MODE_ADHOC
:
/* Setting ad-hoc mode on non ibss channel is not
* supported.
*/
if
(
local
->
oper_channel
&&
(
local
->
oper_channel
->
flags
&
IEEE80211_CHAN_NO_IBSS
))
return
-
EOPNOTSUPP
;
type
=
NL80211_IFTYPE_ADHOC
;
break
;
case
IW_MODE_REPEAT
:
...
...
net/wireless/reg.c
View file @
d7713ccc
...
...
@@ -343,9 +343,9 @@ static int ignore_request(struct wiphy *wiphy, enum reg_set_by set_by,
return
0
;
return
-
EALREADY
;
}
if
(
WARN
_ON
(
!
is_alpha2_set
(
alpha2
)
||
!
is_an_alpha2
(
alpha2
)
),
if
(
WARN
(
!
is_alpha2_set
(
alpha2
)
||
!
is_an_alpha2
(
alpha2
),
"Invalid Country IE regulatory hint passed "
"to the wireless core
\n
"
)
"to the wireless core
\n
"
)
)
return
-
EINVAL
;
/* We ignore Country IE hints for now, as we haven't yet
* added the dot11MultiDomainCapabilityEnabled flag
...
...
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