diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/ibm_newemac/core.c | 23 | ||||
| -rw-r--r-- | drivers/net/ibm_newemac/core.h | 6 |
2 files changed, 16 insertions, 13 deletions
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c index e0eae09febfa..ac9fd46509c1 100644 --- a/drivers/net/ibm_newemac/core.c +++ b/drivers/net/ibm_newemac/core.c | |||
| @@ -711,7 +711,7 @@ static int __emac_mdio_read(struct emac_instance *dev, u8 id, u8 reg) | |||
| 711 | r = EMAC_STACR_BASE(dev->opb_bus_freq); | 711 | r = EMAC_STACR_BASE(dev->opb_bus_freq); |
| 712 | if (emac_has_feature(dev, EMAC_FTR_STACR_OC_INVERT)) | 712 | if (emac_has_feature(dev, EMAC_FTR_STACR_OC_INVERT)) |
| 713 | r |= EMAC_STACR_OC; | 713 | r |= EMAC_STACR_OC; |
| 714 | if (emac_has_feature(dev, EMAC_FTR_HAS_AXON_STACR)) | 714 | if (emac_has_feature(dev, EMAC_FTR_HAS_NEW_STACR)) |
| 715 | r |= EMACX_STACR_STAC_READ; | 715 | r |= EMACX_STACR_STAC_READ; |
| 716 | else | 716 | else |
| 717 | r |= EMAC_STACR_STAC_READ; | 717 | r |= EMAC_STACR_STAC_READ; |
| @@ -783,7 +783,7 @@ static void __emac_mdio_write(struct emac_instance *dev, u8 id, u8 reg, | |||
| 783 | r = EMAC_STACR_BASE(dev->opb_bus_freq); | 783 | r = EMAC_STACR_BASE(dev->opb_bus_freq); |
| 784 | if (emac_has_feature(dev, EMAC_FTR_STACR_OC_INVERT)) | 784 | if (emac_has_feature(dev, EMAC_FTR_STACR_OC_INVERT)) |
| 785 | r |= EMAC_STACR_OC; | 785 | r |= EMAC_STACR_OC; |
| 786 | if (emac_has_feature(dev, EMAC_FTR_HAS_AXON_STACR)) | 786 | if (emac_has_feature(dev, EMAC_FTR_HAS_NEW_STACR)) |
| 787 | r |= EMACX_STACR_STAC_WRITE; | 787 | r |= EMACX_STACR_STAC_WRITE; |
| 788 | else | 788 | else |
| 789 | r |= EMAC_STACR_STAC_WRITE; | 789 | r |= EMAC_STACR_STAC_WRITE; |
| @@ -2480,16 +2480,19 @@ static int __devinit emac_init_config(struct emac_instance *dev) | |||
| 2480 | /* Check EMAC version */ | 2480 | /* Check EMAC version */ |
| 2481 | if (of_device_is_compatible(np, "ibm,emac4")) | 2481 | if (of_device_is_compatible(np, "ibm,emac4")) |
| 2482 | dev->features |= EMAC_FTR_EMAC4; | 2482 | dev->features |= EMAC_FTR_EMAC4; |
| 2483 | if (of_device_is_compatible(np, "ibm,emac-axon") | 2483 | |
| 2484 | || of_device_is_compatible(np, "ibm,emac-440epx")) | 2484 | /* Fixup some feature bits based on the device tree */ |
| 2485 | dev->features |= EMAC_FTR_HAS_AXON_STACR | 2485 | if (of_get_property(np, "has-inverted-stacr-oc", NULL)) |
| 2486 | | EMAC_FTR_STACR_OC_INVERT; | ||
| 2487 | if (of_device_is_compatible(np, "ibm,emac-440spe")) | ||
| 2488 | dev->features |= EMAC_FTR_STACR_OC_INVERT; | 2486 | dev->features |= EMAC_FTR_STACR_OC_INVERT; |
| 2487 | if (of_get_property(np, "has-new-stacr-staopc", NULL)) | ||
| 2488 | dev->features |= EMAC_FTR_HAS_NEW_STACR; | ||
| 2489 | 2489 | ||
| 2490 | /* Fixup some feature bits based on the device tree and verify | 2490 | /* CAB lacks the appropriate properties */ |
| 2491 | * we have support for them compiled in | 2491 | if (of_device_is_compatible(np, "ibm,emac-axon")) |
| 2492 | */ | 2492 | dev->features |= EMAC_FTR_HAS_NEW_STACR | |
| 2493 | EMAC_FTR_STACR_OC_INVERT; | ||
| 2494 | |||
| 2495 | /* Enable TAH/ZMII/RGMII features as found */ | ||
| 2493 | if (dev->tah_ph != 0) { | 2496 | if (dev->tah_ph != 0) { |
| 2494 | #ifdef CONFIG_IBM_NEW_EMAC_TAH | 2497 | #ifdef CONFIG_IBM_NEW_EMAC_TAH |
| 2495 | dev->features |= EMAC_FTR_HAS_TAH; | 2498 | dev->features |= EMAC_FTR_HAS_TAH; |
diff --git a/drivers/net/ibm_newemac/core.h b/drivers/net/ibm_newemac/core.h index a010b2463fd9..04105f939cfd 100644 --- a/drivers/net/ibm_newemac/core.h +++ b/drivers/net/ibm_newemac/core.h | |||
| @@ -293,9 +293,9 @@ struct emac_instance { | |||
| 293 | */ | 293 | */ |
| 294 | #define EMAC_FTR_HAS_RGMII 0x00000020 | 294 | #define EMAC_FTR_HAS_RGMII 0x00000020 |
| 295 | /* | 295 | /* |
| 296 | * Set if we have axon-type STACR | 296 | * Set if we have new type STACR with STAOPC |
| 297 | */ | 297 | */ |
| 298 | #define EMAC_FTR_HAS_AXON_STACR 0x00000040 | 298 | #define EMAC_FTR_HAS_NEW_STACR 0x00000040 |
| 299 | 299 | ||
| 300 | 300 | ||
| 301 | /* Right now, we don't quite handle the always/possible masks on the | 301 | /* Right now, we don't quite handle the always/possible masks on the |
| @@ -307,7 +307,7 @@ enum { | |||
| 307 | 307 | ||
| 308 | EMAC_FTRS_POSSIBLE = | 308 | EMAC_FTRS_POSSIBLE = |
| 309 | #ifdef CONFIG_IBM_NEW_EMAC_EMAC4 | 309 | #ifdef CONFIG_IBM_NEW_EMAC_EMAC4 |
| 310 | EMAC_FTR_EMAC4 | EMAC_FTR_HAS_AXON_STACR | | 310 | EMAC_FTR_EMAC4 | EMAC_FTR_HAS_NEW_STACR | |
| 311 | EMAC_FTR_STACR_OC_INVERT | | 311 | EMAC_FTR_STACR_OC_INVERT | |
| 312 | #endif | 312 | #endif |
| 313 | #ifdef CONFIG_IBM_NEW_EMAC_TAH | 313 | #ifdef CONFIG_IBM_NEW_EMAC_TAH |
