Changeset 31009


Ignore:
Timestamp:
2012-03-18T23:06:48+01:00 (6 years ago)
Author:
juhosg
Message:

generic: ar8216: reorder chip specific functions

File:
1 edited

Legend:

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

    r31008 r31009  
    405405} 
    406406 
     407static int 
     408ar8216_hw_init(struct ar8216_priv *priv) 
     409{ 
     410        return 0; 
     411} 
     412 
     413static void 
     414ar8216_init_globals(struct ar8216_priv *priv) 
     415{ 
     416        /* standard atheros magic */ 
     417        priv->write(priv, 0x38, 0xc000050e); 
     418 
     419        ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL, 
     420                   AR8216_GCTRL_MTU, 1518 + 8 + 2); 
     421} 
     422 
     423static void 
     424ar8216_init_port(struct ar8216_priv *priv, int port) 
     425{ 
     426        /* Enable port learning and tx */ 
     427        priv->write(priv, AR8216_REG_PORT_CTRL(port), 
     428                AR8216_PORT_CTRL_LEARN | 
     429                (4 << AR8216_PORT_CTRL_STATE_S)); 
     430 
     431        priv->write(priv, AR8216_REG_PORT_VLAN(port), 0); 
     432 
     433        if (port == AR8216_PORT_CPU) { 
     434                priv->write(priv, AR8216_REG_PORT_STATUS(port), 
     435                        AR8216_PORT_STATUS_LINK_UP | 
     436                        ar8xxx_has_gige(priv) ? AR8216_PORT_SPEED_1000M : 
     437                                                AR8216_PORT_SPEED_100M | 
     438                        AR8216_PORT_STATUS_TXMAC | 
     439                        AR8216_PORT_STATUS_RXMAC | 
     440                        ((priv->chip_type == AR8316) ? AR8216_PORT_STATUS_RXFLOW : 0) | 
     441                        ((priv->chip_type == AR8316) ? AR8216_PORT_STATUS_TXFLOW : 0) | 
     442                        AR8216_PORT_STATUS_DUPLEX); 
     443        } else { 
     444                priv->write(priv, AR8216_REG_PORT_STATUS(port), 
     445                        AR8216_PORT_STATUS_LINK_AUTO); 
     446        } 
     447} 
     448 
     449static const struct ar8xxx_chip ar8216_chip = { 
     450        .hw_init = ar8216_hw_init, 
     451        .init_globals = ar8216_init_globals, 
     452        .init_port = ar8216_init_port, 
     453        .setup_port = ar8216_setup_port, 
     454        .read_port_status = ar8216_read_port_status, 
     455        .atu_flush = ar8216_atu_flush, 
     456        .vtu_flush = ar8216_vtu_flush, 
     457        .vtu_load_vlan = ar8216_vtu_load_vlan, 
     458}; 
     459 
    407460static void 
    408461ar8236_setup_port(struct ar8216_priv *priv, int port, u32 egress, u32 ingress, 
     
    429482 
    430483static int 
    431 ar8216_hw_init(struct ar8216_priv *priv) 
    432 { 
    433         return 0; 
    434 } 
    435  
    436 static int 
    437484ar8236_hw_init(struct ar8216_priv *priv) 
    438485{ 
     
    456503        return 0; 
    457504} 
     505 
     506static void 
     507ar8236_init_globals(struct ar8216_priv *priv) 
     508{ 
     509        /* enable jumbo frames */ 
     510        ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL, 
     511                   AR8316_GCTRL_MTU, 9018 + 8 + 2); 
     512} 
     513 
     514static const struct ar8xxx_chip ar8236_chip = { 
     515        .hw_init = ar8236_hw_init, 
     516        .init_globals = ar8236_init_globals, 
     517        .init_port = ar8216_init_port, 
     518        .setup_port = ar8236_setup_port, 
     519        .read_port_status = ar8216_read_port_status, 
     520        .atu_flush = ar8216_atu_flush, 
     521        .vtu_flush = ar8216_vtu_flush, 
     522        .vtu_load_vlan = ar8216_vtu_load_vlan, 
     523}; 
    458524 
    459525static int 
     
    518584 
    519585static void 
    520 ar8216_init_globals(struct ar8216_priv *priv) 
     586ar8316_init_globals(struct ar8216_priv *priv) 
    521587{ 
    522588        /* standard atheros magic */ 
    523589        priv->write(priv, 0x38, 0xc000050e); 
    524590 
    525         ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL, 
    526                    AR8216_GCTRL_MTU, 1518 + 8 + 2); 
    527 } 
    528  
    529 static void 
    530 ar8236_init_globals(struct ar8216_priv *priv) 
    531 { 
     591        /* enable cpu port to receive multicast and broadcast frames */ 
     592        priv->write(priv, AR8216_REG_FLOOD_MASK, 0x003f003f); 
     593 
    532594        /* enable jumbo frames */ 
    533595        ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL, 
    534596                   AR8316_GCTRL_MTU, 9018 + 8 + 2); 
    535597} 
    536  
    537 static void 
    538 ar8316_init_globals(struct ar8216_priv *priv) 
    539 { 
    540         /* standard atheros magic */ 
    541         priv->write(priv, 0x38, 0xc000050e); 
    542  
    543         /* enable cpu port to receive multicast and broadcast frames */ 
    544         priv->write(priv, AR8216_REG_FLOOD_MASK, 0x003f003f); 
    545  
    546         /* enable jumbo frames */ 
    547         ar8216_rmw(priv, AR8216_REG_GLOBAL_CTRL, 
    548                    AR8316_GCTRL_MTU, 9018 + 8 + 2); 
    549 } 
    550  
    551 static void 
    552 ar8216_init_port(struct ar8216_priv *priv, int port) 
    553 { 
    554         /* Enable port learning and tx */ 
    555         priv->write(priv, AR8216_REG_PORT_CTRL(port), 
    556                 AR8216_PORT_CTRL_LEARN | 
    557                 (4 << AR8216_PORT_CTRL_STATE_S)); 
    558  
    559         priv->write(priv, AR8216_REG_PORT_VLAN(port), 0); 
    560  
    561         if (port == AR8216_PORT_CPU) { 
    562                 priv->write(priv, AR8216_REG_PORT_STATUS(port), 
    563                         AR8216_PORT_STATUS_LINK_UP | 
    564                         ar8xxx_has_gige(priv) ? AR8216_PORT_SPEED_1000M : 
    565                                                 AR8216_PORT_SPEED_100M | 
    566                         AR8216_PORT_STATUS_TXMAC | 
    567                         AR8216_PORT_STATUS_RXMAC | 
    568                         ((priv->chip_type == AR8316) ? AR8216_PORT_STATUS_RXFLOW : 0) | 
    569                         ((priv->chip_type == AR8316) ? AR8216_PORT_STATUS_TXFLOW : 0) | 
    570                         AR8216_PORT_STATUS_DUPLEX); 
    571         } else { 
    572                 priv->write(priv, AR8216_REG_PORT_STATUS(port), 
    573                         AR8216_PORT_STATUS_LINK_AUTO); 
    574         } 
    575 } 
    576  
    577 static const struct ar8xxx_chip ar8216_chip = { 
    578         .hw_init = ar8216_hw_init, 
    579         .init_globals = ar8216_init_globals, 
    580         .init_port = ar8216_init_port, 
    581         .setup_port = ar8216_setup_port, 
    582         .read_port_status = ar8216_read_port_status, 
    583         .atu_flush = ar8216_atu_flush, 
    584         .vtu_flush = ar8216_vtu_flush, 
    585         .vtu_load_vlan = ar8216_vtu_load_vlan, 
    586 }; 
    587  
    588 static const struct ar8xxx_chip ar8236_chip = { 
    589         .hw_init = ar8236_hw_init, 
    590         .init_globals = ar8236_init_globals, 
    591         .init_port = ar8216_init_port, 
    592         .setup_port = ar8236_setup_port, 
    593         .read_port_status = ar8216_read_port_status, 
    594         .atu_flush = ar8216_atu_flush, 
    595         .vtu_flush = ar8216_vtu_flush, 
    596         .vtu_load_vlan = ar8216_vtu_load_vlan, 
    597 }; 
    598598 
    599599static const struct ar8xxx_chip ar8316_chip = { 
Note: See TracChangeset for help on using the changeset viewer.