Changeset 24938


Ignore:
Timestamp:
2011-01-08T21:24:26+01:00 (7 years ago)
Author:
juhosg
Message:

generic: rtl8366: enable ports only after VLAN configuration is done

Location:
trunk/target/linux/generic/files/drivers/net/phy
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c

    r24936 r24938  
    487487} 
    488488 
     489int rtl8366_enable_all_ports(struct rtl8366_smi *smi, int enable) 
     490{ 
     491        int port; 
     492        int err; 
     493 
     494        for (port = 0; port < smi->num_ports; port++) { 
     495                err = smi->ops->enable_port(smi, port, enable); 
     496                if (err) 
     497                        return err; 
     498        } 
     499 
     500        return 0; 
     501} 
     502EXPORT_SYMBOL_GPL(rtl8366_enable_all_ports); 
     503 
    489504int rtl8366_reset_vlan(struct rtl8366_smi *smi) 
    490505{ 
     
    11901205        } 
    11911206 
     1207        err = rtl8366_enable_all_ports(smi, 1); 
     1208        if (err) 
     1209                goto err_disable_hw; 
     1210 
    11921211        err = rtl8366_smi_mii_init(smi); 
    11931212        if (err) 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h

    r24937 r24938  
    105105 
    106106int rtl8366_reset_vlan(struct rtl8366_smi *smi); 
     107int rtl8366_enable_all_ports(struct rtl8366_smi *smi, int enable); 
    107108 
    108109#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366rb.c

    r24937 r24938  
    275275                RTL8366RB_SGCR_MAX_LENGTH_1536); 
    276276 
    277         /* enable all ports */ 
    278         REG_WR(smi, RTL8366RB_PECR, 0); 
    279  
    280277        /* enable learning for all ports */ 
    281278        REG_WR(smi, RTL8366RB_SSCR0, 0); 
     
    963960                return err; 
    964961 
    965         return rtl8366_reset_vlan(smi); 
     962        err = rtl8366_reset_vlan(smi); 
     963        if (err) 
     964                return err; 
     965 
     966        return rtl8366_enable_all_ports(smi, 1); 
    966967} 
    967968 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366s.c

    r24937 r24938  
    258258                RTL8366S_SGCR_MAX_LENGTH_1536); 
    259259 
    260         /* enable all ports */ 
    261         REG_WR(smi, RTL8366S_PECR, 0); 
    262  
    263260        /* enable learning for all ports */ 
    264261        REG_WR(smi, RTL8366S_SSCR0, 0); 
     
    809806                return err; 
    810807 
    811         return rtl8366_reset_vlan(smi); 
     808        err = rtl8366_reset_vlan(smi); 
     809        if (err) 
     810                return err; 
     811 
     812        return rtl8366_enable_all_ports(smi, 1); 
    812813} 
    813814 
Note: See TracChangeset for help on using the changeset viewer.