Changeset 12403
- Timestamp:
- 06/29/09 23:05:21 (5 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/linux/ar531x/linux-2.6.23/drivers/net/phy/ar8216.c
r12402 r12403 171 171 unsigned char *buf; 172 172 173 if (unlikely(!priv))174 goto error;173 if (unlikely(!priv)) 174 goto error; 175 175 176 176 if (!priv->vlan) … … 182 182 } 183 183 184 buf = skb_push(skb, 2); 185 buf[0] = 0x10; 186 buf[1] = 0x80; 184 185 skb_push(skb, 2); 186 skb->data[0] = 0x10; 187 skb->data[1] = 0x80; 187 188 188 189 send: … … 219 220 220 221 /* check for vlan header presence */ 221 if ((buf[12 + 2] != 0x81) || (buf[13 + 2] != 0x00)) 222 if ((buf[12 + 2] != 0x81) || (buf[13 + 2] != 0x00)) // always present 222 223 goto recv; 223 224 … … 232 233 233 234 buf[14 + 2] &= 0xf0; 234 buf[14 + 2] |= vlan >> 8; 235 buf[14 + 2] |= vlan >> 8; //quatsch 235 236 buf[15 + 2] = vlan & 0xff; 236 237 … … 489 490 /* XXX: undocumented magic from atheros, required! */ 490 491 priv->write(priv, 0x38, 0xc000050e); 492 priv->write(priv,0x60, 0xffffffff); 493 priv->write(priv,0x64, 0xaaaaaaaa); 494 priv->write(priv,0x68, 0x55555555); 495 priv->write(priv,0x6c, 0x0); 496 priv->write(priv,0x70, 0x41af); 497 498 /* set mtu */ 499 ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL,AR8216_GCTRL_MTU,1716 ); // 1500 + 4 /* vlan */ + 2 /* header */); 500 501 491 502 return ar8216_hw_apply(dev); 492 503 } src/linux/ar531x/linux-2.6.23/drivers/net/phy/ar8216.h
r12398 r12403 27 27 #define AR8216_REG_CTRL 0x0000 28 28 #define AR8216_CTRL_RESET BIT(31) 29 30 #define AR8216_REG_GLOBAL_CTRL 0x0030 31 #define AR8216_GCTRL_MTU BITS(0, 10) 29 32 30 33 #define AR8216_REG_VTU 0x0040
