Ignore:
Timestamp:
2011-11-12T15:09:50+01:00 (4 years ago)
Author:
juhosg
Message:

kernel: ar8216: move port vlan setup into a separate function

File:
1 edited

Legend:

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

    r28421 r28992  
    487487} 
    488488 
     489static void 
     490ar8216_setup_port(struct ar8216_priv *priv, int port, u32 egress, u32 ingress, 
     491                  u32 members, u32 pvid) 
     492{ 
     493        u32 header; 
     494 
     495        if (priv->vlan && port == AR8216_PORT_CPU && priv->chip == AR8216) 
     496                header = AR8216_PORT_CTRL_HEADER; 
     497        else 
     498                header = 0; 
     499 
     500        ar8216_rmw(priv, AR8216_REG_PORT_CTRL(port), 
     501                   AR8216_PORT_CTRL_LEARN | AR8216_PORT_CTRL_VLAN_MODE | 
     502                   AR8216_PORT_CTRL_SINGLE_VLAN | AR8216_PORT_CTRL_STATE | 
     503                   AR8216_PORT_CTRL_HEADER | AR8216_PORT_CTRL_LEARN_LOCK, 
     504                   AR8216_PORT_CTRL_LEARN | header | 
     505                   (egress << AR8216_PORT_CTRL_VLAN_MODE_S) | 
     506                   (AR8216_PORT_STATE_FORWARD << AR8216_PORT_CTRL_STATE_S)); 
     507 
     508        ar8216_rmw(priv, AR8216_REG_PORT_VLAN(port), 
     509                   AR8216_PORT_VLAN_DEST_PORTS | AR8216_PORT_VLAN_MODE | 
     510                   AR8216_PORT_VLAN_DEFAULT_ID, 
     511                   (members << AR8216_PORT_VLAN_DEST_PORTS_S) | 
     512                   (ingress << AR8216_PORT_VLAN_MODE_S) | 
     513                   (pvid << AR8216_PORT_VLAN_DEFAULT_ID_S)); 
     514} 
     515 
    489516static int 
    490517ar8216_hw_apply(struct switch_dev *dev) 
     
    553580                } 
    554581 
    555                 ar8216_rmw(priv, AR8216_REG_PORT_CTRL(i), 
    556                         AR8216_PORT_CTRL_LEARN | AR8216_PORT_CTRL_VLAN_MODE | 
    557                         AR8216_PORT_CTRL_SINGLE_VLAN | AR8216_PORT_CTRL_STATE | 
    558                         AR8216_PORT_CTRL_HEADER | AR8216_PORT_CTRL_LEARN_LOCK, 
    559                         AR8216_PORT_CTRL_LEARN | 
    560                           (priv->vlan && i == AR8216_PORT_CPU && (priv->chip == AR8216) ? 
    561                            AR8216_PORT_CTRL_HEADER : 0) | 
    562                           (egress << AR8216_PORT_CTRL_VLAN_MODE_S) | 
    563                           (AR8216_PORT_STATE_FORWARD << AR8216_PORT_CTRL_STATE_S)); 
    564  
    565                 ar8216_rmw(priv, AR8216_REG_PORT_VLAN(i), 
    566                         AR8216_PORT_VLAN_DEST_PORTS | AR8216_PORT_VLAN_MODE | 
    567                           AR8216_PORT_VLAN_DEFAULT_ID, 
    568                         (portmask[i] << AR8216_PORT_VLAN_DEST_PORTS_S) | 
    569                           (ingress << AR8216_PORT_VLAN_MODE_S) | 
    570                           (pvid << AR8216_PORT_VLAN_DEFAULT_ID_S)); 
     582                ar8216_setup_port(priv, i, egress, ingress, portmask[i], pvid); 
    571583        } 
    572584        mutex_unlock(&priv->reg_mutex); 
Note: See TracChangeset for help on using the changeset viewer.