aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ibm_newemac
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-09-03 22:57:57 -0400
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-09-30 09:22:45 -0400
commitb68d185ab12b1fc8000432c5d5ab5404d4788b4c (patch)
treebc4d649dd4fc8a11800032d66f424de362073c8f /drivers/net/ibm_newemac
parent1afb7f809bfb8fad9eec9419f3dfd75cee746ebd (diff)
ibm_newemac: Allow the "no flow control" EMAC feature to work
Some PowerPC 40x chips have errata that force us not to use the integrated flow control. We have the feature defined, but it currently can't be used because it is never added to EMAC_FTRS_POSSIBLE. This adds a Kconfig option for affected platforms to select and puts the feature in the EMAC_FTRS_POSSIBLE list. This is set for PowerPC 405EZ platforms as well. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'drivers/net/ibm_newemac')
-rw-r--r--drivers/net/ibm_newemac/Kconfig4
-rw-r--r--drivers/net/ibm_newemac/core.c2
-rw-r--r--drivers/net/ibm_newemac/core.h3
3 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ibm_newemac/Kconfig b/drivers/net/ibm_newemac/Kconfig
index 70a3272ee998..dfb6547c37cb 100644
--- a/drivers/net/ibm_newemac/Kconfig
+++ b/drivers/net/ibm_newemac/Kconfig
@@ -62,3 +62,7 @@ config IBM_NEW_EMAC_TAH
62config IBM_NEW_EMAC_EMAC4 62config IBM_NEW_EMAC_EMAC4
63 bool 63 bool
64 default n 64 default n
65
66config IBM_NEW_EMAC_NO_FLOW_CTRL
67 bool
68 default n
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index ccd9d9058f6d..4e633870e6e7 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -2567,6 +2567,8 @@ static int __devinit emac_init_config(struct emac_instance *dev)
2567 if (of_device_is_compatible(np, "ibm,emac-440ep") || 2567 if (of_device_is_compatible(np, "ibm,emac-440ep") ||
2568 of_device_is_compatible(np, "ibm,emac-440gr")) 2568 of_device_is_compatible(np, "ibm,emac-440gr"))
2569 dev->features |= EMAC_FTR_440EP_PHY_CLK_FIX; 2569 dev->features |= EMAC_FTR_440EP_PHY_CLK_FIX;
2570 if (of_device_is_compatible(np, "ibm,emac-405ez"))
2571 dev->features |= EMAC_FTR_NO_FLOW_CONTROL_40x;
2570 } 2572 }
2571 2573
2572 /* Fixup some feature bits based on the device tree */ 2574 /* Fixup some feature bits based on the device tree */
diff --git a/drivers/net/ibm_newemac/core.h b/drivers/net/ibm_newemac/core.h
index 6545e69d12c3..59e5a5d802f3 100644
--- a/drivers/net/ibm_newemac/core.h
+++ b/drivers/net/ibm_newemac/core.h
@@ -341,6 +341,9 @@ enum {
341#ifdef CONFIG_IBM_NEW_EMAC_RGMII 341#ifdef CONFIG_IBM_NEW_EMAC_RGMII
342 EMAC_FTR_HAS_RGMII | 342 EMAC_FTR_HAS_RGMII |
343#endif 343#endif
344#ifdef CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL
345 EMAC_FTR_NO_FLOW_CONTROL_40x |
346#endif
344 EMAC_FTR_440EP_PHY_CLK_FIX, 347 EMAC_FTR_440EP_PHY_CLK_FIX,
345}; 348};
346 349