fm: Don't allow disabling of FM1-DTSEC1
authorKumar Gala <galak@kernel.crashing.org>
Fri, 14 Oct 2011 08:17:56 +0000 (03:17 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Tue, 18 Oct 2011 05:36:15 +0000 (00:36 -0500)
The MDIO controller to talk to external PHYs is on FM1-DTSEC1 so don't
allow disabling.  If we disable it we end up powering the block down in
the SoC and thus can't communicate to any external PHYs.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
drivers/net/fm/p1023.c
drivers/net/fm/p3060.c
drivers/net/fm/p4080.c
drivers/net/fm/p5020.c

index b17dc40..9765da5 100644 (file)
@@ -39,6 +39,11 @@ static int is_device_disabled(enum fm_port port)
 void fman_disable_port(enum fm_port port)
 {
        ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+       /* don't allow disabling of DTSEC1 as its needed for MDIO */
+       if (port == FM1_DTSEC1)
+               return;
+
        setbits_be32(&gur->devdisr, port_to_devdisr[port]);
 }
 
index 176e1d2..c9748a9 100644 (file)
@@ -45,6 +45,11 @@ static int is_device_disabled(enum fm_port port)
 void fman_disable_port(enum fm_port port)
 {
        ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+       /* don't allow disabling of DTSEC1 as its needed for MDIO */
+       if (port == FM1_DTSEC1)
+               return;
+
        setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
 }
 
index 791caab..9dc6049 100644 (file)
@@ -47,6 +47,11 @@ static int is_device_disabled(enum fm_port port)
 void fman_disable_port(enum fm_port port)
 {
        ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+       /* don't allow disabling of DTSEC1 as its needed for MDIO */
+       if (port == FM1_DTSEC1)
+               return;
+
        setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
 }
 
index 69c27d2..a7a6e43 100644 (file)
@@ -43,6 +43,11 @@ static int is_device_disabled(enum fm_port port)
 void fman_disable_port(enum fm_port port)
 {
        ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+       /* don't allow disabling of DTSEC1 as its needed for MDIO */
+       if (port == FM1_DTSEC1)
+               return;
+
        setbits_be32(&gur->devdisr2, port_to_devdisr[port]);
 }