static void sh_eth_chip_reset_giga(struct net_device *ndev) { int i; unsigned long mahr[2], malr[2]; /* save MAHR and MALR */ for (i = 0; i < 2; i++) { malr[i] = readl(GIGA_MALR(i)); mahr[i] = readl(GIGA_MAHR(i)); } /* reset device */ writel(ARSTR_ARSTR, SH_GIGA_ETH_BASE + 0x1800); mdelay(1); /* restore MAHR and MALR */ for (i = 0; i < 2; i++) { writel(malr[i], GIGA_MALR(i)); writel(mahr[i], GIGA_MAHR(i)); } }
static void sh_eth_chip_reset_giga(struct net_device *ndev) { int i; unsigned long mahr[2], malr[2]; /* save MAHR and MALR */ for (i = 0; i < 2; i++) { malr[i] = ioread32((void *)GIGA_MALR(i)); mahr[i] = ioread32((void *)GIGA_MAHR(i)); } /* reset device */ iowrite32(ARSTR_ARSTR, (void *)(SH_GIGA_ETH_BASE + 0x1800)); mdelay(1); /* restore MAHR and MALR */ for (i = 0; i < 2; i++) { iowrite32(malr[i], (void *)GIGA_MALR(i)); iowrite32(mahr[i], (void *)GIGA_MAHR(i)); } }