Changeset 47999


Ignore:
Timestamp:
2015-12-23T20:25:02+01:00 (2 years ago)
Author:
blogic
Message:

swconfig: switch kernel PORT_LINK support to SWITCH_TYPE_LINK

As explained earlier, using SWITCH_TYPE_LINK gives more flexibility,
it doesn't require e.g. string parsing to read some data.

Signed-off-by: Rafał Miłecki <zajec5@…>

File:
1 edited

Legend:

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

    r47997 r47999  
    128128} 
    129129 
    130 static const char * 
    131 swconfig_speed_str(enum switch_port_speed speed) 
    132 { 
    133         switch (speed) { 
    134         case SWITCH_PORT_SPEED_10: 
    135                 return "10baseT"; 
    136         case SWITCH_PORT_SPEED_100: 
    137                 return "100baseT"; 
    138         case SWITCH_PORT_SPEED_1000: 
    139                 return "1000baseT"; 
    140         default: 
    141                 break; 
    142         } 
    143  
    144         return "unknown"; 
    145 } 
    146  
    147130static int 
    148131swconfig_get_link(struct switch_dev *dev, const struct switch_attr *attr, 
    149132                        struct switch_val *val) 
    150133{ 
    151         struct switch_port_link link; 
    152         int len; 
    153         int ret; 
     134        struct switch_port_link *link = val->value.link; 
    154135 
    155136        if (val->port_vlan >= dev->ports) 
     
    159140                return -EOPNOTSUPP; 
    160141 
    161         memset(&link, 0, sizeof(link)); 
    162         ret = dev->ops->get_port_link(dev, val->port_vlan, &link); 
    163         if (ret) 
    164                 return ret; 
    165  
    166         memset(dev->buf, 0, sizeof(dev->buf)); 
    167  
    168         if (link.link) 
    169                 len = snprintf(dev->buf, sizeof(dev->buf), 
    170                                "port:%d link:up speed:%s %s-duplex %s%s%s%s%s", 
    171                                val->port_vlan, 
    172                                swconfig_speed_str(link.speed), 
    173                                link.duplex ? "full" : "half", 
    174                                link.tx_flow ? "txflow " : "", 
    175                                link.rx_flow ?   "rxflow " : "", 
    176                                link.eee & ADVERTISED_100baseT_Full ? "eee100 " : "", 
    177                                link.eee & ADVERTISED_1000baseT_Full ? "eee1000 " : "", 
    178                                link.aneg ? "auto" : ""); 
    179         else 
    180                 len = snprintf(dev->buf, sizeof(dev->buf), "port:%d link:down", 
    181                                val->port_vlan); 
    182  
    183         val->value.s = dev->buf; 
    184         val->len = len; 
    185  
    186         return 0; 
     142        memset(link, 0, sizeof(*link)); 
     143        return dev->ops->get_port_link(dev, val->port_vlan, link); 
    187144} 
    188145 
     
    247204        }, 
    248205        [PORT_LINK] = { 
    249                 .type = SWITCH_TYPE_STRING, 
     206                .type = SWITCH_TYPE_LINK, 
    250207                .name = "link", 
    251208                .description = "Get port link information", 
Note: See TracChangeset for help on using the changeset viewer.