X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/b6fb9a7180b9b173ebf5e369fe8cd28613d6742d..c223e82fd455290ae2db23503c1197bc25981548:/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c diff --git a/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c b/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c index cd3075c1d..fe7f25ec2 100644 --- a/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c +++ b/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c @@ -36,10 +36,15 @@ #include #include #include -#include #include #include +struct ifxmips_mii_priv { + struct net_device_stats stats; + struct dma_device_info *dma_device; + struct sk_buff *skb; +}; + static struct net_device *ifxmips_mii0_dev; static unsigned char mac_addr[MAX_ADDR_LEN]; @@ -54,6 +59,7 @@ ifxmips_write_mdio(u32 phy_addr, u32 phy_reg, u16 phy_data) while(ifxmips_r32(IFXMIPS_PPE32_MDIO_ACC) & MDIO_ACC_REQUEST); ifxmips_w32(val, IFXMIPS_PPE32_MDIO_ACC); } +EXPORT_SYMBOL(ifxmips_write_mdio); unsigned short ifxmips_read_mdio(u32 phy_addr, u32 phy_reg) @@ -62,11 +68,13 @@ ifxmips_read_mdio(u32 phy_addr, u32 phy_reg) ((phy_addr & MDIO_ACC_ADDR_MASK) << MDIO_ACC_ADDR_OFFSET) | ((phy_reg & MDIO_ACC_REG_MASK) << MDIO_ACC_REG_OFFSET); + while(ifxmips_r32(IFXMIPS_PPE32_MDIO_ACC) & MDIO_ACC_REQUEST); ifxmips_w32(val, IFXMIPS_PPE32_MDIO_ACC); while(ifxmips_r32(IFXMIPS_PPE32_MDIO_ACC) & MDIO_ACC_REQUEST){}; val = ifxmips_r32(IFXMIPS_PPE32_MDIO_ACC) & MDIO_ACC_VAL_MASK; return val; } +EXPORT_SYMBOL(ifxmips_read_mdio); int ifxmips_ifxmips_mii_open(struct net_device *dev) @@ -341,11 +349,12 @@ static int ifxmips_mii_probe(struct platform_device *dev) { int result = 0; - struct ifxmips_mac *mac = (struct ifxmips_mac*)dev->dev.platform_data; + unsigned char *mac = (unsigned char*)dev->dev.platform_data; ifxmips_mii0_dev = alloc_etherdev(sizeof(struct ifxmips_mii_priv)); ifxmips_mii0_dev->init = ifxmips_mii_dev_init; - memcpy(mac_addr, mac->mac, 6); + memcpy(mac_addr, mac, 6); strcpy(ifxmips_mii0_dev->name, "eth%d"); + ifxmips_mii_chip_init(REV_MII_MODE); result = register_netdev(ifxmips_mii0_dev); if (result) { @@ -353,7 +362,6 @@ ifxmips_mii_probe(struct platform_device *dev) goto out; } - ifxmips_mii_chip_init(REV_MII_MODE); printk(KERN_INFO "ifxmips_mii0: driver loaded!\n"); out: