X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Fdrivers%2Fnet%2Fag71xx%2Fag71xx.h;h=ca328e35d7ca9d2b323b57700f82d994b13ae052;hb=82a084680a527039a3fda555131919cc29a498d7;hp=9037b13d743fdac34df27d5bc40db2bc022026d8;hpb=0fd8d0fad8c5f4b6d04ae2497c479ff43a38b5da;p=openwrt%2Fopenwrt.git diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h index 9037b13d74..ca328e35d7 100644 --- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h +++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h @@ -38,7 +38,7 @@ #define ETH_FCS_LEN 4 #define AG71XX_DRV_NAME "ag71xx" -#define AG71XX_DRV_VERSION "0.5.21" +#define AG71XX_DRV_VERSION "0.5.22" #define AG71XX_NAPI_WEIGHT 64 #define AG71XX_OOM_REFILL (1 + HZ/10) @@ -85,15 +85,16 @@ struct ag71xx_desc { #define DESC_PKTLEN_M 0xfff u32 next; u32 pad; -}; +} __attribute__((aligned(4))); struct ag71xx_buf { struct sk_buff *skb; + struct ag71xx_desc *desc; }; struct ag71xx_ring { struct ag71xx_buf *buf; - struct ag71xx_desc *descs; + struct ag71xx_desc *descs_cpu; dma_addr_t descs_dma; unsigned int curr; unsigned int dirty; @@ -399,12 +400,22 @@ static inline void ag71xx_int_disable(struct ag71xx *ag, u32 ints) static inline void ag71xx_mii_ctrl_wr(struct ag71xx *ag, u32 value) { + struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag); + + if (pdata->is_ar724x) + return; + __raw_writel(value, ag->mii_ctrl); __raw_readl(ag->mii_ctrl); } static inline u32 ag71xx_mii_ctrl_rr(struct ag71xx *ag) { + struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag); + + if (pdata->is_ar724x) + return 0xffffffff; + return __raw_readl(ag->mii_ctrl); }