diff options
author | Josh Boyer <jwboyer@linux.vnet.ibm.com> | 2008-09-03 22:57:57 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@linux.vnet.ibm.com> | 2008-09-30 09:22:45 -0400 |
commit | b68d185ab12b1fc8000432c5d5ab5404d4788b4c (patch) | |
tree | bc4d649dd4fc8a11800032d66f424de362073c8f /drivers | |
parent | 1afb7f809bfb8fad9eec9419f3dfd75cee746ebd (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')
-rw-r--r-- | drivers/net/ibm_newemac/Kconfig | 4 | ||||
-rw-r--r-- | drivers/net/ibm_newemac/core.c | 2 | ||||
-rw-r--r-- | drivers/net/ibm_newemac/core.h | 3 |
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 | |||
62 | config IBM_NEW_EMAC_EMAC4 | 62 | config IBM_NEW_EMAC_EMAC4 |
63 | bool | 63 | bool |
64 | default n | 64 | default n |
65 | |||
66 | config 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 | ||