You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.7 KiB
34 lines
1.7 KiB
From c02bc350f9dbce7d637c394a6e1c4d29dc5b28b2 Mon Sep 17 00:00:00 2001
|
|
From: Felix Fietkau <nbd@openwrt.org>
|
|
Date: Tue, 12 Apr 2016 18:27:29 +0200
|
|
Subject: [PATCH] bgmac: fix MAC soft-reset bit for corerev > 4
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Only core revisions older than 4 use BGMAC_CMDCFG_SR_REV0. This mainly
|
|
fixes support for BCM4708A0KF SoCs with Ethernet core rev 5 (it means
|
|
only some devices as most of BCM4708A0KF-s got core rev 4).
|
|
This was tested for regressions on BCM47094 which doesn't seem to care
|
|
which bit gets used.
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
|
|
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
|
+++ b/drivers/net/ethernet/broadcom/bgmac.h
|
|
@@ -199,9 +199,9 @@
|
|
#define BGMAC_CMDCFG_TAI 0x00000200
|
|
#define BGMAC_CMDCFG_HD 0x00000400 /* Set if in half duplex mode */
|
|
#define BGMAC_CMDCFG_HD_SHIFT 10
|
|
-#define BGMAC_CMDCFG_SR_REV0 0x00000800 /* Set to reset mode, for other revs */
|
|
-#define BGMAC_CMDCFG_SR_REV4 0x00002000 /* Set to reset mode, only for core rev 4 */
|
|
-#define BGMAC_CMDCFG_SR(rev) ((rev == 4) ? BGMAC_CMDCFG_SR_REV4 : BGMAC_CMDCFG_SR_REV0)
|
|
+#define BGMAC_CMDCFG_SR_REV0 0x00000800 /* Set to reset mode, for core rev 0-3 */
|
|
+#define BGMAC_CMDCFG_SR_REV4 0x00002000 /* Set to reset mode, for core rev >= 4 */
|
|
+#define BGMAC_CMDCFG_SR(rev) ((rev >= 4) ? BGMAC_CMDCFG_SR_REV4 : BGMAC_CMDCFG_SR_REV0)
|
|
#define BGMAC_CMDCFG_ML 0x00008000 /* Set to activate mac loopback mode */
|
|
#define BGMAC_CMDCFG_AE 0x00400000
|
|
#define BGMAC_CMDCFG_CFE 0x00800000
|
|
|