Ignore:
Timestamp:
2010-06-26T21:53:46+02:00 (6 years ago)
Author:
juhosg
Message:

backfire: generic: rtl8366: use struct rtl8366_smi instead of struct rtl8366{s,rb} (backport of r21916)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/target/linux/generic-2.6/files/drivers/net/phy/rtl8366s.c

    r21934 r21935  
    233233} 
    234234 
    235 static int rtl8366s_reset_chip(struct rtl8366s *rtl) 
    236 { 
    237         struct rtl8366_smi *smi = &rtl->smi; 
     235static inline struct rtl8366_smi *sw_to_rtl8366_smi(struct switch_dev *sw) 
     236{ 
     237        struct rtl8366s *rtl = sw_to_rtl8366s(sw); 
     238        return &rtl->smi; 
     239} 
     240 
     241static int rtl8366s_reset_chip(struct rtl8366_smi *smi) 
     242{ 
    238243        int timeout = 10; 
    239244        u32 data; 
     
    324329} 
    325330 
    326 static int rtl8366_get_mib_counter(struct rtl8366s *rtl, int counter, 
     331static int rtl8366_get_mib_counter(struct rtl8366_smi *smi, int counter, 
    327332                                   int port, unsigned long long *val) 
    328333{ 
    329         struct rtl8366_smi *smi = &rtl->smi; 
    330334        int i; 
    331335        int err; 
     
    373377} 
    374378 
    375 static int rtl8366s_get_vlan_4k(struct rtl8366s *rtl, u32 vid, 
     379static int rtl8366s_get_vlan_4k(struct rtl8366_smi *smi, u32 vid, 
    376380                                struct rtl8366_vlan_4k *vlan4k) 
    377381{ 
    378         struct rtl8366_smi *smi = &rtl->smi; 
    379382        struct rtl8366s_vlan_4k vlan4k_priv; 
    380383        int err; 
     
    424427} 
    425428 
    426 static int rtl8366s_set_vlan_4k(struct rtl8366s *rtl, 
     429static int rtl8366s_set_vlan_4k(struct rtl8366_smi *smi, 
    427430                                const struct rtl8366_vlan_4k *vlan4k) 
    428431{ 
    429         struct rtl8366_smi *smi = &rtl->smi; 
    430432        struct rtl8366s_vlan_4k vlan4k_priv; 
    431433        int err; 
     
    468470} 
    469471 
    470 static int rtl8366s_get_vlan_mc(struct rtl8366s *rtl, u32 index, 
     472static int rtl8366s_get_vlan_mc(struct rtl8366_smi *smi, u32 index, 
    471473                                struct rtl8366_vlan_mc *vlanmc) 
    472474{ 
    473         struct rtl8366_smi *smi = &rtl->smi; 
    474475        struct rtl8366s_vlan_mc vlanmc_priv; 
    475476        int err; 
     
    509510} 
    510511 
    511 static int rtl8366s_set_vlan_mc(struct rtl8366s *rtl, u32 index, 
     512static int rtl8366s_set_vlan_mc(struct rtl8366_smi *smi, u32 index, 
    512513                                const struct rtl8366_vlan_mc *vlanmc) 
    513514{ 
    514         struct rtl8366_smi *smi = &rtl->smi; 
    515515        struct rtl8366s_vlan_mc vlanmc_priv; 
    516516        int err; 
     
    554554} 
    555555 
    556 static int rtl8366s_get_port_vlan_index(struct rtl8366s *rtl, int port, 
     556static int rtl8366s_get_port_vlan_index(struct rtl8366_smi *smi, int port, 
    557557                                       int *val) 
    558558{ 
    559         struct rtl8366_smi *smi = &rtl->smi; 
    560559        u32 data; 
    561560        int err; 
     
    576575} 
    577576 
    578 static int rtl8366s_get_vlan_port_pvid(struct rtl8366s *rtl, int port, 
     577static int rtl8366s_get_vlan_port_pvid(struct rtl8366_smi *smi, int port, 
    579578                                       int *val) 
    580579{ 
     
    583582        int index; 
    584583 
    585         err = rtl8366s_get_port_vlan_index(rtl, port, &index); 
     584        err = rtl8366s_get_port_vlan_index(smi, port, &index); 
    586585        if (err) 
    587586                return err; 
    588587 
    589         err = rtl8366s_get_vlan_mc(rtl, index, &vlanmc); 
     588        err = rtl8366s_get_vlan_mc(smi, index, &vlanmc); 
    590589        if (err) 
    591590                return err; 
     
    595594} 
    596595 
    597 static int rtl8366s_set_port_vlan_index(struct rtl8366s *rtl, int port, 
     596static int rtl8366s_set_port_vlan_index(struct rtl8366_smi *smi, int port, 
    598597                                        int index) 
    599598{ 
    600         struct rtl8366_smi *smi = &rtl->smi; 
    601599        u32 data; 
    602600        int err; 
     
    620618} 
    621619 
    622 static int rtl8366s_set_vlan_port_pvid(struct rtl8366s *rtl, int port, int val) 
     620static int rtl8366s_set_vlan_port_pvid(struct rtl8366_smi *smi, int port, int val) 
    623621{ 
    624622        int i; 
     
    630628 
    631629        /* Updating the 4K entry; lookup it and change the port member set */ 
    632         rtl8366s_get_vlan_4k(rtl, val, &vlan4k); 
     630        rtl8366s_get_vlan_4k(smi, val, &vlan4k); 
    633631        vlan4k.member |= ((1 << port) | RTL8366_PORT_CPU); 
    634632        vlan4k.untag = RTL8366_PORT_ALL_BUT_CPU; 
    635         rtl8366s_set_vlan_4k(rtl, &vlan4k); 
     633        rtl8366s_set_vlan_4k(smi, &vlan4k); 
    636634 
    637635        /* 
     
    640638         */ 
    641639        for (i = 0; i < RTL8366_NUM_VLANS; ++i) { 
    642                 rtl8366s_get_vlan_mc(rtl, i, &vlanmc); 
     640                rtl8366s_get_vlan_mc(smi, i, &vlanmc); 
    643641 
    644642                /* Try to find an existing vid and update port member set */ 
    645643                if (val == vlanmc.vid) { 
    646644                        vlanmc.member |= ((1 << port) | RTL8366_PORT_CPU); 
    647                         rtl8366s_set_vlan_mc(rtl, i, &vlanmc); 
     645                        rtl8366s_set_vlan_mc(smi, i, &vlanmc); 
    648646 
    649647                        /* Now update PVID register settings */ 
    650                         rtl8366s_set_port_vlan_index(rtl, port, i); 
     648                        rtl8366s_set_port_vlan_index(smi, port, i); 
    651649 
    652650                        return 0; 
     
    659657         */ 
    660658        for (i = 0; i < RTL8366_NUM_VLANS; ++i) { 
    661                 rtl8366s_get_vlan_mc(rtl, i, &vlanmc); 
     659                rtl8366s_get_vlan_mc(smi, i, &vlanmc); 
    662660 
    663661                /* 
     
    672670                        vlanmc.fid = 0; 
    673671 
    674                         rtl8366s_set_vlan_mc(rtl, i, &vlanmc); 
     672                        rtl8366s_set_vlan_mc(smi, i, &vlanmc); 
    675673 
    676674                        /* Now update PVID register settings */ 
    677                         rtl8366s_set_port_vlan_index(rtl, port, i); 
     675                        rtl8366s_set_port_vlan_index(smi, port, i); 
    678676 
    679677                        return 0; 
     
    681679        } 
    682680 
    683         dev_err(rtl->parent, 
     681        dev_err(smi->parent, 
    684682                "All 16 vlan member configurations are in use\n"); 
    685683 
     
    688686 
    689687 
    690 static int rtl8366s_vlan_set_vlan(struct rtl8366s *rtl, int enable) 
    691 { 
    692         struct rtl8366_smi *smi = &rtl->smi; 
     688static int rtl8366s_vlan_set_vlan(struct rtl8366_smi *smi, int enable) 
     689{ 
    693690        u32 data = 0; 
    694691 
     
    703700} 
    704701 
    705 static int rtl8366s_vlan_set_4ktable(struct rtl8366s *rtl, int enable) 
    706 { 
    707         struct rtl8366_smi *smi = &rtl->smi; 
     702static int rtl8366s_vlan_set_4ktable(struct rtl8366_smi *smi, int enable) 
     703{ 
    708704        u32 data = 0; 
    709705 
     
    718714} 
    719715 
    720 static int rtl8366s_reset_vlan(struct rtl8366s *rtl) 
     716static int rtl8366s_reset_vlan(struct rtl8366_smi *smi) 
    721717{ 
    722718        struct rtl8366_vlan_4k vlan4k; 
     
    732728        vlanmc.fid = 0; 
    733729        for (i = 0; i < RTL8366_NUM_VLANS; i++) { 
    734                 err = rtl8366s_set_vlan_mc(rtl, i, &vlanmc); 
     730                err = rtl8366s_set_vlan_mc(smi, i, &vlanmc); 
    735731                if (err) 
    736732                        return err; 
     
    742738        vlan4k.untag = RTL8366_PORT_ALL; 
    743739        vlan4k.fid = 0; 
    744         err = rtl8366s_set_vlan_4k(rtl, &vlan4k); 
     740        err = rtl8366s_set_vlan_4k(smi, &vlan4k); 
    745741        if (err) 
    746742                return err; 
     
    748744        /* Set all ports PVID to default VLAN */ 
    749745        for (i = 0; i < RTL8366_NUM_PORTS; i++) { 
    750                 err = rtl8366s_set_vlan_port_pvid(rtl, i, 0); 
     746                err = rtl8366s_set_vlan_port_pvid(smi, i, 0); 
    751747                if (err) 
    752748                        return err; 
     
    768764{ 
    769765        struct rtl8366s *rtl = (struct rtl8366s *)file->private_data; 
     766        struct rtl8366_smi *smi = &rtl->smi; 
    770767        int i, j, len = 0; 
    771768        char *buf = rtl->buf; 
     
    783780                        unsigned long long counter = 0; 
    784781 
    785                         if (!rtl8366_get_mib_counter(rtl, i, j, &counter)) 
     782                        if (!rtl8366_get_mib_counter(smi, i, j, &counter)) 
    786783                                len += snprintf(buf + len, 
    787784                                                sizeof(rtl->buf) - len, 
     
    816813{ 
    817814        struct rtl8366s *rtl = (struct rtl8366s *)file->private_data; 
     815        struct rtl8366_smi *smi = &rtl->smi; 
    818816        int i, j, len = 0; 
    819817        char *buf = rtl->buf; 
     
    828826                struct rtl8366_vlan_mc vlanmc; 
    829827 
    830                 rtl8366s_get_vlan_mc(rtl, i, &vlanmc); 
     828                rtl8366s_get_vlan_mc(smi, i, &vlanmc); 
    831829 
    832830                len += snprintf(buf + len, sizeof(rtl->buf) - len, 
     
    837835                for (j = 0; j < RTL8366_NUM_PORTS; ++j) { 
    838836                        int index = 0; 
    839                         if (!rtl8366s_get_port_vlan_index(rtl, j, &index)) { 
     837                        if (!rtl8366s_get_port_vlan_index(smi, j, &index)) { 
    840838                                if (index == i) 
    841839                                        len += snprintf(buf + len, 
     
    994992                                  struct switch_val *val) 
    995993{ 
    996         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    997         struct rtl8366_smi *smi = &rtl->smi; 
     994        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    998995        u32 data = 0; 
    999996 
     
    10111008                                       struct switch_val *val) 
    10121009{ 
    1013         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1014         struct rtl8366_smi *smi = &rtl->smi; 
     1010        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    10151011        u32 data; 
    10161012 
     
    10381034                                     struct switch_val *val) 
    10391035{ 
    1040         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1041         struct rtl8366_smi *smi = &rtl->smi; 
     1036        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    10421037        u32 data; 
    10431038 
     
    10531048                                    struct switch_val *val) 
    10541049{ 
    1055         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1056         struct rtl8366_smi *smi = &rtl->smi; 
     1050        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    10571051        u32 data; 
    10581052 
     
    10741068                                       struct switch_val *val) 
    10751069{ 
    1076         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
     1070        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    10771071 
    10781072        if (attr->ofs == 1) 
    1079                 return rtl8366s_vlan_set_vlan(rtl, val->value.i); 
     1073                return rtl8366s_vlan_set_vlan(smi, val->value.i); 
    10801074        else 
    1081                 return rtl8366s_vlan_set_4ktable(rtl, val->value.i); 
     1075                return rtl8366s_vlan_set_4ktable(smi, val->value.i); 
    10821076} 
    10831077 
     
    11481142        struct rtl8366_vlan_4k vlan4k; 
    11491143        struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
     1144        struct rtl8366_smi *smi = &rtl->smi; 
    11501145        char *buf = rtl->buf; 
    11511146 
     
    11551150        memset(buf, '\0', sizeof(rtl->buf)); 
    11561151 
    1157         rtl8366s_get_vlan_mc(rtl, val->port_vlan, &vlanmc); 
    1158         rtl8366s_get_vlan_4k(rtl, vlanmc.vid, &vlan4k); 
     1152        rtl8366s_get_vlan_mc(smi, val->port_vlan, &vlanmc); 
     1153        rtl8366s_get_vlan_4k(smi, vlanmc.vid, &vlan4k); 
    11591154 
    11601155        len += snprintf(buf + len, sizeof(rtl->buf) - len, "VLAN %d: Ports: ", 
     
    11631158        for (i = 0; i < RTL8366_NUM_PORTS; ++i) { 
    11641159                int index = 0; 
    1165                 if (!rtl8366s_get_port_vlan_index(rtl, i, &index) && 
     1160                if (!rtl8366s_get_port_vlan_index(smi, i, &index) && 
    11661161                    index == val->port_vlan) 
    11671162                        len += snprintf(buf + len, sizeof(rtl->buf) - len, 
     
    11921187                                    struct switch_val *val) 
    11931188{ 
    1194         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1195         struct rtl8366_smi *smi = &rtl->smi; 
     1189        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    11961190        u32 data = 0; 
    11971191 
     
    12181212                                    struct switch_val *val) 
    12191213{ 
    1220         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1221         struct rtl8366_smi *smi = &rtl->smi; 
     1214        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    12221215        u32 data = 0; 
    12231216 
     
    12351228                                       struct switch_val *val) 
    12361229{ 
    1237         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1238         struct rtl8366_smi *smi = &rtl->smi; 
     1230        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    12391231        u32 data = 0; 
    12401232 
     
    12541246{ 
    12551247        struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
     1248        struct rtl8366_smi *smi = &rtl->smi; 
    12561249        int i, len = 0; 
    12571250        unsigned long long counter = 0; 
     
    12681261                len += snprintf(buf + len, sizeof(rtl->buf) - len, 
    12691262                                "%d:%s\t", i, rtl8366s_mib_counters[i].name); 
    1270                 if (!rtl8366_get_mib_counter(rtl, i, val->port_vlan, &counter)) 
     1263                if (!rtl8366_get_mib_counter(smi, i, val->port_vlan, &counter)) 
    12711264                        len += snprintf(buf + len, sizeof(rtl->buf) - len, 
    12721265                                        "[%llu]\n", counter); 
     
    12841277                                      struct switch_val *val) 
    12851278{ 
     1279        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    12861280        struct rtl8366_vlan_mc vlanmc; 
    1287         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    12881281        struct switch_port *port; 
    12891282        int i; 
     
    12921285                return -EINVAL; 
    12931286 
    1294         rtl8366s_get_vlan_mc(rtl, val->port_vlan, &vlanmc); 
     1287        rtl8366s_get_vlan_mc(smi, val->port_vlan, &vlanmc); 
    12951288 
    12961289        port = &val->value.ports[0]; 
     
    13121305                                      struct switch_val *val) 
    13131306{ 
     1307        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    13141308        struct rtl8366_vlan_mc vlanmc; 
    13151309        struct rtl8366_vlan_4k vlan4k; 
    1316         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    13171310        struct switch_port *port; 
    13181311        int i; 
     
    13211314                return -EINVAL; 
    13221315 
    1323         rtl8366s_get_vlan_mc(rtl, val->port_vlan, &vlanmc); 
    1324         rtl8366s_get_vlan_4k(rtl, vlanmc.vid, &vlan4k); 
     1316        rtl8366s_get_vlan_mc(smi, val->port_vlan, &vlanmc); 
     1317        rtl8366s_get_vlan_4k(smi, vlanmc.vid, &vlan4k); 
    13251318 
    13261319        vlanmc.untag = 0; 
     
    13381331        vlan4k.untag = vlanmc.untag; 
    13391332 
    1340         rtl8366s_set_vlan_mc(rtl, val->port_vlan, &vlanmc); 
    1341         rtl8366s_set_vlan_4k(rtl, &vlan4k); 
     1333        rtl8366s_set_vlan_mc(smi, val->port_vlan, &vlanmc); 
     1334        rtl8366s_set_vlan_4k(smi, &vlan4k); 
    13421335        return 0; 
    13431336} 
     
    13451338static int rtl8366s_sw_get_port_pvid(struct switch_dev *dev, int port, int *val) 
    13461339{ 
    1347         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1348         return rtl8366s_get_vlan_port_pvid(rtl, port, val); 
     1340        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
     1341        return rtl8366s_get_vlan_port_pvid(smi, port, val); 
    13491342} 
    13501343 
    13511344static int rtl8366s_sw_set_port_pvid(struct switch_dev *dev, int port, int val) 
    13521345{ 
    1353         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
    1354         return rtl8366s_set_vlan_port_pvid(rtl, port, val); 
     1346        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
     1347        return rtl8366s_set_vlan_port_pvid(smi, port, val); 
    13551348} 
    13561349 
    13571350static int rtl8366s_sw_reset_switch(struct switch_dev *dev) 
    13581351{ 
    1359         struct rtl8366s *rtl = sw_to_rtl8366s(dev); 
     1352        struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 
    13601353        int err; 
    13611354 
    1362         err = rtl8366s_reset_chip(rtl); 
     1355        err = rtl8366s_reset_chip(smi); 
    13631356        if (err) 
    13641357                return err; 
    13651358 
    1366         return rtl8366s_reset_vlan(rtl); 
     1359        return rtl8366s_reset_vlan(smi); 
    13671360} 
    13681361 
     
    15261519static int rtl8366s_setup(struct rtl8366s *rtl) 
    15271520{ 
     1521        struct rtl8366_smi *smi = &rtl->smi; 
    15281522        int ret; 
    15291523 
    1530         ret = rtl8366s_reset_chip(rtl); 
     1524        ret = rtl8366s_reset_chip(smi); 
    15311525        if (ret) 
    15321526                return ret; 
Note: See TracChangeset for help on using the changeset viewer.