Changeset 30840


Ignore:
Timestamp:
2012-03-07T17:32:34+01:00 (6 years ago)
Author:
juhosg
Message:

ar71xx: ag71xx: use the generic get_port_link implementation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c

    r30768 r30840  
    802802} 
    803803 
    804 static const char * 
    805 ar7240_speed_str(u32 status) 
    806 { 
    807         u32 speed; 
    808  
    809         speed = (status >> AR7240_PORT_STATUS_SPEED_S) & 
    810                                         AR7240_PORT_STATUS_SPEED_M; 
    811         switch (speed) { 
    812         case AR7240_PORT_STATUS_SPEED_10: 
    813                 return "10baseT"; 
    814         case AR7240_PORT_STATUS_SPEED_100: 
    815                 return "100baseT"; 
    816         case AR7240_PORT_STATUS_SPEED_1000: 
    817                 return "1000baseT"; 
    818         } 
    819  
    820         return "unknown"; 
    821 } 
    822  
    823 static int 
    824 ar7240_port_get_link(struct switch_dev *dev, const struct switch_attr *attr, 
    825                      struct switch_val *val) 
    826 { 
    827         struct ar7240sw *as = sw_to_ar7240(dev); 
    828         struct mii_bus *mii = as->mii_bus; 
    829         u32 len; 
    830         u32 status; 
    831         int port; 
    832  
    833         port = val->port_vlan; 
    834  
    835         memset(as->buf, '\0', sizeof(as->buf)); 
    836         status = ar7240sw_reg_read(mii, AR7240_REG_PORT_STATUS(port)); 
    837  
    838         if (status & AR7240_PORT_STATUS_LINK_UP) { 
    839                 len = snprintf(as->buf, sizeof(as->buf), 
    840                                 "port:%d link:up speed:%s %s-duplex %s%s%s", 
    841                                 port, 
    842                                 ar7240_speed_str(status), 
    843                                 (status & AR7240_PORT_STATUS_DUPLEX) ? 
    844                                         "full" : "half", 
    845                                 (status & AR7240_PORT_STATUS_TXFLOW) ? 
    846                                         "txflow ": "", 
    847                                 (status & AR7240_PORT_STATUS_RXFLOW) ? 
    848                                         "rxflow " : "", 
    849                                 (status & AR7240_PORT_STATUS_LINK_AUTO) ? 
    850                                         "auto ": ""); 
    851         } else { 
    852                 len = snprintf(as->buf, sizeof(as->buf), 
    853                                "port:%d link:down", port); 
    854         } 
    855  
    856         val->value.s = as->buf; 
    857         val->len = len; 
    858  
    859         return 0; 
    860 } 
    861  
    862804static void 
    863805ar7240_vtu_op(struct ar7240sw *as, u32 op, u32 val) 
     
    999941 
    1000942static struct switch_attr ar7240_port[] = { 
    1001         { 
    1002                 .type = SWITCH_TYPE_STRING, 
    1003                 .name = "link", 
    1004                 .description = "Get port link information", 
    1005                 .max = 1, 
    1006                 .set = NULL, 
    1007                 .get = ar7240_port_get_link, 
    1008         }, 
    1009943}; 
    1010944 
Note: See TracChangeset for help on using the changeset viewer.