r8169: fix mdio_read and update mdio_write according to hw specs

Realtek confirmed that a 20us delay is needed after mdio_read and
mdio_write operations. Reduce the delay in mdio_write, and add it
to mdio_read too. Also add a comment that the 20us is from hw specs.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Timo Teräs and committed by David S. Miller 81a95f04 ebedb22d

+9 -3
+9 -3
drivers/net/r8169.c
··· 560 560 udelay(25); 561 561 } 562 562 /* 563 - * Some configurations require a small delay even after the write 564 - * completed indication or the next write might fail. 563 + * According to hardware specs a 20us delay is required after write 564 + * complete indication, but before sending next command. 565 565 */ 566 - udelay(25); 566 + udelay(20); 567 567 } 568 568 569 569 static int mdio_read(void __iomem *ioaddr, int reg_addr) ··· 583 583 } 584 584 udelay(25); 585 585 } 586 + /* 587 + * According to hardware specs a 20us delay is required after read 588 + * complete indication, but before sending next command. 589 + */ 590 + udelay(20); 591 + 586 592 return value; 587 593 } 588 594