diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-03-09 14:35:41 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-03-09 14:35:41 +0000 |
commit | 513e8c583f8747d2be20a0a10cf9e58b27d0e82b (patch) | |
tree | 51eb186a88ad4e37ac8f0be63ccc887832564025 /target/linux/generic-2.6/files/drivers/net/phy/ar8216.h | |
parent | a5441beb82e7dde4edb1206535aa7710ba941bc4 (diff) | |
download | upstream-513e8c583f8747d2be20a0a10cf9e58b27d0e82b.tar.gz upstream-513e8c583f8747d2be20a0a10cf9e58b27d0e82b.tar.bz2 upstream-513e8c583f8747d2be20a0a10cf9e58b27d0e82b.zip |
Several small fixes for ar8216 driver (patch by Jonas Gorski)
* Create defines for some magic values/masks.
* Change vlan_id to u16, to allow VIDs > 255.
* Add a range check to set_pvid as it isn't a VID, but the index
in the vlan table.
* Set the max VID to 4094, since 4095 is a reserved value and
should not be used.
* In mangle_rx replace the provided VID with the VID of the table
entry of the port, not the index of the table.
* In hw_apply, remove a redundant emptyness check (was already
checked several lines above).
* In no vlan mode do not set the ingress mode to secure, as there
are no vlan table entries, but to use the port's destination
masks. Otherwise the switch won't forward anything.
* In read_status tell that the phy is up (taken from the rtl8306
driver).
SVN-Revision: 20083
Diffstat (limited to 'target/linux/generic-2.6/files/drivers/net/phy/ar8216.h')
-rw-r--r-- | target/linux/generic-2.6/files/drivers/net/phy/ar8216.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/ar8216.h b/target/linux/generic-2.6/files/drivers/net/phy/ar8216.h index 741dce917d..c1b8fdbd8c 100644 --- a/target/linux/generic-2.6/files/drivers/net/phy/ar8216.h +++ b/target/linux/generic-2.6/files/drivers/net/phy/ar8216.h @@ -24,6 +24,10 @@ #define AR8216_NUM_VLANS 16 #define AR8216_REG_CTRL 0x0000 +#define AR8216_CTRL_REVISION BITS(0, 8) +#define AR8216_CTRL_REVISION_S 0 +#define AR8216_CTRL_VERSION BITS(8, 8) +#define AR8216_CTRL_VERSION_S 8 #define AR8216_CTRL_RESET BIT(31) #define AR8216_REG_GLOBAL_CTRL 0x0030 @@ -73,8 +77,8 @@ #define AR8216_PORT_OFFSET(_i) (0x0100 * (_i + 1)) #define AR8216_REG_PORT_STATUS(_i) (AR8216_PORT_OFFSET(_i) + 0x0000) -#define AR8216_PORT_STATUS_SPEED BIT(0) -#define AR8216_PORT_STATUS_SPEED_ERR BIT(1) +#define AR8216_PORT_STATUS_SPEED BITS(0,2) +#define AR8216_PORT_STATUS_SPEED_S 0 #define AR8216_PORT_STATUS_TXMAC BIT(2) #define AR8216_PORT_STATUS_RXMAC BIT(3) #define AR8216_PORT_STATUS_TXFLOW BIT(4) @@ -126,6 +130,14 @@ #define AR8216_REG_PORT_RATE(_i) (AR8216_PORT_OFFSET(_i) + 0x000c) #define AR8216_REG_PORT_PRIO(_i) (AR8216_PORT_OFFSET(_i) + 0x0010) +/* port speed */ +enum { + AR8216_PORT_SPEED_10M = 0, + AR8216_PORT_SPEED_100M = 1, + AR8216_PORT_SPEED_1000M = 2, + AR8216_PORT_SPEED_ERR = 3, +}; + /* ingress 802.1q mode */ enum { AR8216_IN_PORT_ONLY = 0, |