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
43ecb9a3
Commit
43ecb9a3
authored
Jan 12, 2006
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
parents
58cba465
9f3f46b5
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
281 additions
and
26 deletions
+281
-26
drivers/net/bonding/bond_alb.c
drivers/net/bonding/bond_alb.c
+2
-2
drivers/net/bonding/bonding.h
drivers/net/bonding/bonding.h
+2
-2
drivers/net/e100.c
drivers/net/e100.c
+29
-3
drivers/net/gianfar.c
drivers/net/gianfar.c
+5
-1
drivers/net/gianfar_mii.c
drivers/net/gianfar_mii.c
+4
-1
drivers/net/phy/mdio_bus.c
drivers/net/phy/mdio_bus.c
+1
-1
drivers/net/phy/phy.c
drivers/net/phy/phy.c
+1
-1
drivers/net/tulip/uli526x.c
drivers/net/tulip/uli526x.c
+3
-3
drivers/net/via-velocity.c
drivers/net/via-velocity.c
+1
-1
drivers/net/wireless/Kconfig
drivers/net/wireless/Kconfig
+1
-1
drivers/net/wireless/atmel.c
drivers/net/wireless/atmel.c
+223
-4
include/linux/fsl_devices.h
include/linux/fsl_devices.h
+2
-4
include/linux/phy.h
include/linux/phy.h
+3
-0
include/net/ieee80211.h
include/net/ieee80211.h
+4
-2
No files found.
drivers/net/bonding/bond_alb.c
View file @
43ecb9a3
...
...
@@ -169,9 +169,9 @@ static void tlb_clear_slave(struct bonding *bond, struct slave *slave, int save_
index
=
next_index
;
}
_unlock_tx_hashtbl
(
bond
);
tlb_init_slave
(
slave
);
_unlock_tx_hashtbl
(
bond
);
}
/* Must be called before starting the monitor timer */
...
...
drivers/net/bonding/bonding.h
View file @
43ecb9a3
...
...
@@ -22,8 +22,8 @@
#include "bond_3ad.h"
#include "bond_alb.h"
#define DRV_VERSION "3.0.
0
"
#define DRV_RELDATE "
November 8, 2005
"
#define DRV_VERSION "3.0.
1
"
#define DRV_RELDATE "
January 9, 2006
"
#define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
...
...
drivers/net/e100.c
View file @
43ecb9a3
...
...
@@ -132,6 +132,10 @@
* TODO:
* o several entry points race with dev->close
* o check for tx-no-resources/stop Q races with tx clean/wake Q
*
* FIXES:
* 2005/12/02 - Michael O'Donnell <Michael.ODonnell at stratus dot com>
* - Stratus87247: protect MDI control register manipulations
*/
#include <linux/config.h>
...
...
@@ -578,6 +582,7 @@ struct nic {
u16
leds
;
u16
eeprom_wc
;
u16
eeprom
[
256
];
spinlock_t
mdio_lock
;
};
static
inline
void
e100_write_flush
(
struct
nic
*
nic
)
...
...
@@ -876,15 +881,35 @@ static u16 mdio_ctrl(struct nic *nic, u32 addr, u32 dir, u32 reg, u16 data)
{
u32
data_out
=
0
;
unsigned
int
i
;
unsigned
long
flags
;
/*
* Stratus87247: we shouldn't be writing the MDI control
* register until the Ready bit shows True. Also, since
* manipulation of the MDI control registers is a multi-step
* procedure it should be done under lock.
*/
spin_lock_irqsave
(
&
nic
->
mdio_lock
,
flags
);
for
(
i
=
100
;
i
;
--
i
)
{
if
(
readl
(
&
nic
->
csr
->
mdi_ctrl
)
&
mdi_ready
)
break
;
udelay
(
20
);
}
if
(
unlikely
(
!
i
))
{
printk
(
"e100.mdio_ctrl(%s) won't go Ready
\n
"
,
nic
->
netdev
->
name
);
spin_unlock_irqrestore
(
&
nic
->
mdio_lock
,
flags
);
return
0
;
/* No way to indicate timeout error */
}
writel
((
reg
<<
16
)
|
(
addr
<<
21
)
|
dir
|
data
,
&
nic
->
csr
->
mdi_ctrl
);
for
(
i
=
0
;
i
<
100
;
i
++
)
{
for
(
i
=
0
;
i
<
100
;
i
++
)
{
udelay
(
20
);
if
((
data_out
=
readl
(
&
nic
->
csr
->
mdi_ctrl
))
&
mdi_ready
)
if
((
data_out
=
readl
(
&
nic
->
csr
->
mdi_ctrl
))
&
mdi_ready
)
break
;
}
spin_unlock_irqrestore
(
&
nic
->
mdio_lock
,
flags
);
DPRINTK
(
HW
,
DEBUG
,
"%s:addr=%d, reg=%d, data_in=0x%04X, data_out=0x%04X
\n
"
,
dir
==
mdi_read
?
"READ"
:
"WRITE"
,
addr
,
reg
,
data
,
data_out
);
...
...
@@ -2562,6 +2587,7 @@ static int __devinit e100_probe(struct pci_dev *pdev,
/* locks must be initialized before calling hw_reset */
spin_lock_init
(
&
nic
->
cb_lock
);
spin_lock_init
(
&
nic
->
cmd_lock
);
spin_lock_init
(
&
nic
->
mdio_lock
);
/* Reset the device before pci_set_master() in case device is in some
* funky state and has an interrupt pending - hint: we don't have the
...
...
drivers/net/gianfar.c
View file @
43ecb9a3
...
...
@@ -84,6 +84,7 @@
#include <linux/ip.h>
#include <linux/tcp.h>
#include <linux/udp.h>
#include <linux/in.h>
#include <asm/io.h>
#include <asm/irq.h>
...
...
@@ -398,12 +399,15 @@ static int init_phy(struct net_device *dev)
priv
->
einfo
->
device_flags
&
FSL_GIANFAR_DEV_HAS_GIGABIT
?
SUPPORTED_1000baseT_Full
:
0
;
struct
phy_device
*
phydev
;
char
phy_id
[
BUS_ID_SIZE
];
priv
->
oldlink
=
0
;
priv
->
oldspeed
=
0
;
priv
->
oldduplex
=
-
1
;
phydev
=
phy_connect
(
dev
,
priv
->
einfo
->
bus_id
,
&
adjust_link
,
0
);
snprintf
(
phy_id
,
BUS_ID_SIZE
,
PHY_ID_FMT
,
priv
->
einfo
->
bus_id
,
priv
->
einfo
->
phy_id
);
phydev
=
phy_connect
(
dev
,
phy_id
,
&
adjust_link
,
0
);
if
(
IS_ERR
(
phydev
))
{
printk
(
KERN_ERR
"%s: Could not attach to PHY
\n
"
,
dev
->
name
);
...
...
drivers/net/gianfar_mii.c
View file @
43ecb9a3
...
...
@@ -128,6 +128,7 @@ int gfar_mdio_probe(struct device *dev)
struct
gianfar_mdio_data
*
pdata
;
struct
gfar_mii
*
regs
;
struct
mii_bus
*
new_bus
;
struct
resource
*
r
;
int
err
=
0
;
if
(
NULL
==
dev
)
...
...
@@ -151,8 +152,10 @@ int gfar_mdio_probe(struct device *dev)
return
-
ENODEV
;
}
r
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
/* Set the PHY base address */
regs
=
(
struct
gfar_mii
*
)
ioremap
(
pdata
->
paddr
,
regs
=
(
struct
gfar_mii
*
)
ioremap
(
r
->
start
,
sizeof
(
struct
gfar_mii
));
if
(
NULL
==
regs
)
{
...
...
drivers/net/phy/mdio_bus.c
View file @
43ecb9a3
...
...
@@ -81,7 +81,7 @@ int mdiobus_register(struct mii_bus *bus)
phydev
->
dev
.
parent
=
bus
->
dev
;
phydev
->
dev
.
bus
=
&
mdio_bus_type
;
s
printf
(
phydev
->
dev
.
bus_id
,
"phy%d:%d"
,
bus
->
id
,
i
);
s
nprintf
(
phydev
->
dev
.
bus_id
,
BUS_ID_SIZE
,
PHY_ID_FMT
,
bus
->
id
,
i
);
phydev
->
bus
=
bus
;
...
...
drivers/net/phy/phy.c
View file @
43ecb9a3
...
...
@@ -42,7 +42,7 @@
*/
void
phy_print_status
(
struct
phy_device
*
phydev
)
{
pr_info
(
"
%s:
Link is %s"
,
phydev
->
dev
.
bus_id
,
pr_info
(
"
PHY: %s -
Link is %s"
,
phydev
->
dev
.
bus_id
,
phydev
->
link
?
"Up"
:
"Down"
);
if
(
phydev
->
link
)
printk
(
" - %d/%s"
,
phydev
->
speed
,
...
...
drivers/net/tulip/uli526x.c
View file @
43ecb9a3
...
...
@@ -1689,9 +1689,9 @@ MODULE_AUTHOR("Peer Chen, peer.chen@uli.com.tw");
MODULE_DESCRIPTION
(
"ULi M5261/M5263 fast ethernet driver"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_PARM
(
debug
,
"i"
);
MODULE_PARM
(
mode
,
"i"
);
MODULE_PARM
(
cr6set
,
"i"
);
module_param
(
debug
,
int
,
0644
);
module_param
(
mode
,
int
,
0
);
module_param
(
cr6set
,
int
,
0
);
MODULE_PARM_DESC
(
debug
,
"ULi M5261/M5263 enable debugging (0-1)"
);
MODULE_PARM_DESC
(
mode
,
"ULi M5261/M5263: Bit 0: 10/100Mbps, bit 2: duplex, bit 8: HomePNA"
);
...
...
drivers/net/via-velocity.c
View file @
43ecb9a3
...
...
@@ -791,7 +791,7 @@ static int __devinit velocity_found1(struct pci_dev *pdev, const struct pci_devi
#endif
if
(
vptr
->
flags
&
VELOCITY_FLAGS_TX_CSUM
)
{
dev
->
features
|=
NETIF_F_
HW
_CSUM
;
dev
->
features
|=
NETIF_F_
IP
_CSUM
;
}
ret
=
register_netdev
(
dev
);
...
...
drivers/net/wireless/Kconfig
View file @
43ecb9a3
...
...
@@ -243,7 +243,7 @@ config IPW2200_DEBUG
config AIRO
tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
depends on NET_RADIO && ISA_DMA_API && (PCI || BROKEN)
depends on NET_RADIO && ISA_DMA_API &&
CRYPTO &&
(PCI || BROKEN)
---help---
This is the standard Linux driver to support Cisco/Aironet ISA and
PCI 802.11 wireless cards.
...
...
drivers/net/wireless/atmel.c
View file @
43ecb9a3
...
...
@@ -1407,6 +1407,17 @@ static int atmel_close(struct net_device *dev)
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
/* Send event to userspace that we are disassociating */
if
(
priv
->
station_state
==
STATION_STATE_READY
)
{
union
iwreq_data
wrqu
;
wrqu
.
data
.
length
=
0
;
wrqu
.
data
.
flags
=
0
;
wrqu
.
ap_addr
.
sa_family
=
ARPHRD_ETHER
;
memset
(
wrqu
.
ap_addr
.
sa_data
,
0
,
ETH_ALEN
);
wireless_send_event
(
priv
->
dev
,
SIOCGIWAP
,
&
wrqu
,
NULL
);
}
atmel_enter_state
(
priv
,
STATION_STATE_DOWN
);
if
(
priv
->
bus_type
==
BUS_TYPE_PCCARD
)
...
...
@@ -1780,10 +1791,10 @@ static int atmel_set_encode(struct net_device *dev,
priv
->
wep_is_on
=
1
;
priv
->
exclude_unencrypted
=
1
;
if
(
priv
->
wep_key_len
[
index
]
>
5
)
{
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_WEP_
64
;
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_WEP_
128
;
priv
->
encryption_level
=
2
;
}
else
{
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_WEP_
128
;
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_WEP_
64
;
priv
->
encryption_level
=
1
;
}
}
...
...
@@ -1853,6 +1864,181 @@ static int atmel_get_encode(struct net_device *dev,
return
0
;
}
static
int
atmel_set_encodeext
(
struct
net_device
*
dev
,
struct
iw_request_info
*
info
,
union
iwreq_data
*
wrqu
,
char
*
extra
)
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
struct
iw_point
*
encoding
=
&
wrqu
->
encoding
;
struct
iw_encode_ext
*
ext
=
(
struct
iw_encode_ext
*
)
extra
;
int
idx
,
key_len
;
/* Determine and validate the key index */
idx
=
encoding
->
flags
&
IW_ENCODE_INDEX
;
if
(
idx
)
{
if
(
idx
<
1
||
idx
>
WEP_KEYS
)
return
-
EINVAL
;
idx
--
;
}
else
idx
=
priv
->
default_key
;
if
((
encoding
->
flags
&
IW_ENCODE_DISABLED
)
||
ext
->
alg
==
IW_ENCODE_ALG_NONE
)
{
priv
->
wep_is_on
=
0
;
priv
->
encryption_level
=
0
;
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_NONE
;
}
if
(
ext
->
ext_flags
&
IW_ENCODE_EXT_SET_TX_KEY
)
priv
->
default_key
=
idx
;
/* Set the requested key */
switch
(
ext
->
alg
)
{
case
IW_ENCODE_ALG_NONE
:
break
;
case
IW_ENCODE_ALG_WEP
:
if
(
ext
->
key_len
>
5
)
{
priv
->
wep_key_len
[
idx
]
=
13
;
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_WEP_128
;
priv
->
encryption_level
=
2
;
}
else
if
(
ext
->
key_len
>
0
)
{
priv
->
wep_key_len
[
idx
]
=
5
;
priv
->
pairwise_cipher_suite
=
CIPHER_SUITE_WEP_64
;
priv
->
encryption_level
=
1
;
}
else
{
return
-
EINVAL
;
}
priv
->
wep_is_on
=
1
;
memset
(
priv
->
wep_keys
[
idx
],
0
,
13
);
key_len
=
min
((
int
)
ext
->
key_len
,
priv
->
wep_key_len
[
idx
]);
memcpy
(
priv
->
wep_keys
[
idx
],
ext
->
key
,
key_len
);
break
;
default:
return
-
EINVAL
;
}
return
-
EINPROGRESS
;
}
static
int
atmel_get_encodeext
(
struct
net_device
*
dev
,
struct
iw_request_info
*
info
,
union
iwreq_data
*
wrqu
,
char
*
extra
)
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
struct
iw_point
*
encoding
=
&
wrqu
->
encoding
;
struct
iw_encode_ext
*
ext
=
(
struct
iw_encode_ext
*
)
extra
;
int
idx
,
max_key_len
;
max_key_len
=
encoding
->
length
-
sizeof
(
*
ext
);
if
(
max_key_len
<
0
)
return
-
EINVAL
;
idx
=
encoding
->
flags
&
IW_ENCODE_INDEX
;
if
(
idx
)
{
if
(
idx
<
1
||
idx
>
WEP_KEYS
)
return
-
EINVAL
;
idx
--
;
}
else
idx
=
priv
->
default_key
;
encoding
->
flags
=
idx
+
1
;
memset
(
ext
,
0
,
sizeof
(
*
ext
));
if
(
!
priv
->
wep_is_on
)
{
ext
->
alg
=
IW_ENCODE_ALG_NONE
;
ext
->
key_len
=
0
;
encoding
->
flags
|=
IW_ENCODE_DISABLED
;
}
else
{
if
(
priv
->
encryption_level
>
0
)
ext
->
alg
=
IW_ENCODE_ALG_WEP
;
else
return
-
EINVAL
;
ext
->
key_len
=
priv
->
wep_key_len
[
idx
];
memcpy
(
ext
->
key
,
priv
->
wep_keys
[
idx
],
ext
->
key_len
);
encoding
->
flags
|=
IW_ENCODE_ENABLED
;
}
return
0
;
}
static
int
atmel_set_auth
(
struct
net_device
*
dev
,
struct
iw_request_info
*
info
,
union
iwreq_data
*
wrqu
,
char
*
extra
)
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
struct
iw_param
*
param
=
&
wrqu
->
param
;
switch
(
param
->
flags
&
IW_AUTH_INDEX
)
{
case
IW_AUTH_WPA_VERSION
:
case
IW_AUTH_CIPHER_PAIRWISE
:
case
IW_AUTH_CIPHER_GROUP
:
case
IW_AUTH_KEY_MGMT
:
case
IW_AUTH_RX_UNENCRYPTED_EAPOL
:
case
IW_AUTH_PRIVACY_INVOKED
:
/*
* atmel does not use these parameters
*/
break
;
case
IW_AUTH_DROP_UNENCRYPTED
:
priv
->
exclude_unencrypted
=
param
->
value
?
1
:
0
;
break
;
case
IW_AUTH_80211_AUTH_ALG
:
{
if
(
param
->
value
&
IW_AUTH_ALG_SHARED_KEY
)
{
priv
->
exclude_unencrypted
=
1
;
}
else
if
(
param
->
value
&
IW_AUTH_ALG_OPEN_SYSTEM
)
{
priv
->
exclude_unencrypted
=
0
;
}
else
return
-
EINVAL
;
break
;
}
case
IW_AUTH_WPA_ENABLED
:
/* Silently accept disable of WPA */
if
(
param
->
value
>
0
)
return
-
EOPNOTSUPP
;
break
;
default:
return
-
EOPNOTSUPP
;
}
return
-
EINPROGRESS
;
}
static
int
atmel_get_auth
(
struct
net_device
*
dev
,
struct
iw_request_info
*
info
,
union
iwreq_data
*
wrqu
,
char
*
extra
)
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
struct
iw_param
*
param
=
&
wrqu
->
param
;
switch
(
param
->
flags
&
IW_AUTH_INDEX
)
{
case
IW_AUTH_DROP_UNENCRYPTED
:
param
->
value
=
priv
->
exclude_unencrypted
;
break
;
case
IW_AUTH_80211_AUTH_ALG
:
if
(
priv
->
exclude_unencrypted
==
1
)
param
->
value
=
IW_AUTH_ALG_SHARED_KEY
;
else
param
->
value
=
IW_AUTH_ALG_OPEN_SYSTEM
;
break
;
case
IW_AUTH_WPA_ENABLED
:
param
->
value
=
0
;
break
;
default:
return
-
EOPNOTSUPP
;
}
return
0
;
}
static
int
atmel_get_name
(
struct
net_device
*
dev
,
struct
iw_request_info
*
info
,
char
*
cwrq
,
...
...
@@ -2289,13 +2475,15 @@ static int atmel_set_wap(struct net_device *dev,
{
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
int
i
;
static
const
u8
bcast
[]
=
{
255
,
255
,
255
,
255
,
255
,
255
};
static
const
u8
any
[]
=
{
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
};
static
const
u8
off
[]
=
{
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
};
unsigned
long
flags
;
if
(
awrq
->
sa_family
!=
ARPHRD_ETHER
)
return
-
EINVAL
;
if
(
memcmp
(
bcast
,
awrq
->
sa_data
,
6
)
==
0
)
{
if
(
!
memcmp
(
any
,
awrq
->
sa_data
,
6
)
||
!
memcmp
(
off
,
awrq
->
sa_data
,
6
))
{
del_timer_sync
(
&
priv
->
management_timer
);
spin_lock_irqsave
(
&
priv
->
irqlock
,
flags
);
atmel_scan
(
priv
,
1
);
...
...
@@ -2378,6 +2566,15 @@ static const iw_handler atmel_handler[] =
(
iw_handler
)
atmel_get_encode
,
/* SIOCGIWENCODE */
(
iw_handler
)
atmel_set_power
,
/* SIOCSIWPOWER */
(
iw_handler
)
atmel_get_power
,
/* SIOCGIWPOWER */
(
iw_handler
)
NULL
,
/* -- hole -- */
(
iw_handler
)
NULL
,
/* -- hole -- */
(
iw_handler
)
NULL
,
/* SIOCSIWGENIE */
(
iw_handler
)
NULL
,
/* SIOCGIWGENIE */
(
iw_handler
)
atmel_set_auth
,
/* SIOCSIWAUTH */
(
iw_handler
)
atmel_get_auth
,
/* SIOCGIWAUTH */
(
iw_handler
)
atmel_set_encodeext
,
/* SIOCSIWENCODEEXT */
(
iw_handler
)
atmel_get_encodeext
,
/* SIOCGIWENCODEEXT */
(
iw_handler
)
NULL
,
/* SIOCSIWPMKSA */
};
static
const
iw_handler
atmel_private_handler
[]
=
...
...
@@ -2924,6 +3121,8 @@ static void associate(struct atmel_private *priv, u16 frame_len, u16 subtype)
u16
ass_id
=
le16_to_cpu
(
ass_resp
->
ass_id
);
u16
rates_len
=
ass_resp
->
length
>
4
?
4
:
ass_resp
->
length
;
union
iwreq_data
wrqu
;
if
(
frame_len
<
8
+
rates_len
)
return
;
...
...
@@ -2954,6 +3153,14 @@ static void associate(struct atmel_private *priv, u16 frame_len, u16 subtype)
priv
->
station_is_associated
=
1
;
priv
->
station_was_associated
=
1
;
atmel_enter_state
(
priv
,
STATION_STATE_READY
);
/* Send association event to userspace */
wrqu
.
data
.
length
=
0
;
wrqu
.
data
.
flags
=
0
;
memcpy
(
wrqu
.
ap_addr
.
sa_data
,
priv
->
CurrentBSSID
,
ETH_ALEN
);
wrqu
.
ap_addr
.
sa_family
=
ARPHRD_ETHER
;
wireless_send_event
(
priv
->
dev
,
SIOCGIWAP
,
&
wrqu
,
NULL
);
return
;
}
...
...
@@ -3632,6 +3839,7 @@ static int reset_atmel_card(struct net_device *dev)
struct
atmel_private
*
priv
=
netdev_priv
(
dev
);
u8
configuration
;
int
old_state
=
priv
->
station_state
;
/* data to add to the firmware names, in priority order
this implemenents firmware versioning */
...
...
@@ -3792,6 +4000,17 @@ static int reset_atmel_card(struct net_device *dev)
else
build_wep_mib
(
priv
);
if
(
old_state
==
STATION_STATE_READY
)
{
union
iwreq_data
wrqu
;
wrqu
.
data
.
length
=
0
;
wrqu
.
data
.
flags
=
0
;
wrqu
.
ap_addr
.
sa_family
=
ARPHRD_ETHER
;
memset
(
wrqu
.
ap_addr
.
sa_data
,
0
,
ETH_ALEN
);
wireless_send_event
(
priv
->
dev
,
SIOCGIWAP
,
&
wrqu
,
NULL
);
}
return
1
;
}
...
...
include/linux/fsl_devices.h
View file @
43ecb9a3
...
...
@@ -50,14 +50,12 @@ struct gianfar_platform_data {
/* board specific information */
u32
board_flags
;
const
char
*
bus_id
;
u32
bus_id
;
u32
phy_id
;
u8
mac_addr
[
6
];
};
struct
gianfar_mdio_data
{
/* device specific information */
u32
paddr
;
/* board specific information */
int
irq
[
32
];
};
...
...
include/linux/phy.h
View file @
43ecb9a3
...
...
@@ -53,6 +53,9 @@
#define PHY_MAX_ADDR 32
/* Used when trying to connect to a specific phy (mii bus id:phy device id) */
#define PHY_ID_FMT "%x:%02x"
/* The Bus class for PHYs. Devices which provide access to
* PHYs should register using this structure */
struct
mii_bus
{
...
...
include/net/ieee80211.h
View file @
43ecb9a3
...
...
@@ -363,8 +363,9 @@ enum ieee80211_reasoncode {
#define IEEE80211_OFDM_SHIFT_MASK_A 4
/* NOTE: This data is for statistical purposes; not all hardware provides this
* information for frames received. Not setting these will not cause
* any adverse affects. */
* information for frames received.
* For ieee80211_rx_mgt, you need to set at least the 'len' parameter.
*/
struct
ieee80211_rx_stats
{
u32
mac_time
;
s8
rssi
;
...
...
@@ -1088,6 +1089,7 @@ extern int ieee80211_tx_frame(struct ieee80211_device *ieee,
/* ieee80211_rx.c */
extern
int
ieee80211_rx
(
struct
ieee80211_device
*
ieee
,
struct
sk_buff
*
skb
,
struct
ieee80211_rx_stats
*
rx_stats
);
/* make sure to set stats->len */
extern
void
ieee80211_rx_mgt
(
struct
ieee80211_device
*
ieee
,
struct
ieee80211_hdr_4addr
*
header
,
struct
ieee80211_rx_stats
*
stats
);
...
...
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