aboutsummaryrefslogtreecommitdiffstats
path: root/main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-06-09 07:00:10 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-06-09 07:00:47 +0000
commit9c54951a0024fefe80a01bba7e2a009bf369d8f6 (patch)
tree97f5916495affe5a2a7ac53eb0d1660d02dccf56 /main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch
parente013968ac05acb7b91d9ad5642ed8e70b017c87b (diff)
downloadaports-1.10.4.tar.bz2
aports-1.10.4.tar.xz
main/linux-grsec: more r8169 fixesv1.10.4
(cherry picked from commit df41d8f169f98412989bfd811beea619c3289262)
Diffstat (limited to 'main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch')
-rw-r--r--main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch b/main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch
new file mode 100644
index 0000000000..bd111e8772
--- /dev/null
+++ b/main/linux-grsec/r8169-fix-mdio_read-and-update-mdio_write-according-to-hw-specs.patch
@@ -0,0 +1,56 @@
+From patchwork Wed Jun 9 05:22:10 2010
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Subject: r8169: fix mdio_read and update mdio_write according to hw specs
+Date: Tue, 08 Jun 2010 19:22:10 -0000
+From: =?utf-8?b?VGltbyBUZXLDpHMgPHRpbW8udGVyYXNAaWtpLmZpPg==?=
+X-Patchwork-Id: 55049
+Message-Id: <1276060930-15697-1-git-send-email-timo.teras@iki.fi>
+To: netdev@vger.kernel.org
+Cc: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>,
+ Francois Romieu <romieu@fr.zoreil.com>, Hayeswang <hayeswang@realtek.com>
+
+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>
+Cc: Francois Romieu <romieu@fr.zoreil.com>
+Cc: Hayeswang <hayeswang@realtek.com>
+
+---
+drivers/net/r8169.c | 12 +++++++++---
+ 1 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
+index 03a8318..96b6cfb 100644
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -560,10 +560,10 @@ static void mdio_write(void __iomem *ioaddr, int reg_addr, int value)
+ udelay(25);
+ }
+ /*
+- * Some configurations require a small delay even after the write
+- * completed indication or the next write might fail.
++ * According to hardware specs a 20us delay is required after write
++ * complete indication, but before sending next command.
+ */
+- udelay(25);
++ udelay(20);
+ }
+
+ static int mdio_read(void __iomem *ioaddr, int reg_addr)
+@@ -583,6 +583,12 @@ static int mdio_read(void __iomem *ioaddr, int reg_addr)
+ }
+ udelay(25);
+ }
++ /*
++ * According to hardware specs a 20us delay is required after read
++ * complete indication, but before sending next command.
++ */
++ udelay(20);
++
+ return value;
+ }
+