Changeset 21978


Ignore:
Timestamp:
2010-06-28T19:23:41+02:00 (6 years ago)
Author:
juhosg
Message:

generic: rtl8366: add cpu_port, num_ports and num_vlan_mc to struct rtl8366_smi

Location:
trunk/target/linux/generic/files/drivers/net/phy
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h

    r21977 r21978  
    2525        struct mii_bus          *mii_bus; 
    2626        int                     mii_irq[PHY_MAX_ADDR]; 
     27 
     28        unsigned int            cpu_port; 
     29        unsigned int            num_ports; 
     30        unsigned int            num_vlan_mc; 
    2731 
    2832        struct rtl8366_smi_ops  *ops; 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366rb.c

    r21977 r21978  
    692692 
    693693        /* Try to find an existing MC entry for this VID */ 
    694         for (i = 0; i < RTL8366RB_NUM_VLANS; i++) { 
     694        for (i = 0; i < smi->num_vlan_mc; i++) { 
    695695                struct rtl8366_vlan_mc vlanmc; 
    696696 
     
    738738 
    739739        *used = 0; 
    740         for (i = 0; i < RTL8366RB_NUM_PORTS; i++) { 
     740        for (i = 0; i < smi->num_ports; i++) { 
    741741                int index = 0; 
    742742 
     
    763763 
    764764        /* Try to find an existing MC entry for this VID */ 
    765         for (i = 0; i < RTL8366RB_NUM_VLANS; i++) { 
     765        for (i = 0; i < smi->num_vlan_mc; i++) { 
    766766                err = smi->ops->get_vlan_mc(smi, i, &vlanmc); 
    767767                if (err) 
     
    779779 
    780780        /* We have no MC entry for this VID, try to find an empty one */ 
    781         for (i = 0; i < RTL8366RB_NUM_VLANS; i++) { 
     781        for (i = 0; i < smi->num_vlan_mc; i++) { 
    782782                err = smi->ops->get_vlan_mc(smi, i, &vlanmc); 
    783783                if (err) 
     
    804804 
    805805        /* MC table is full, try to find an unused entry and replace it */ 
    806         for (i = 0; i < RTL8366RB_NUM_VLANS; i++) { 
     806        for (i = 0; i < smi->num_vlan_mc; i++) { 
    807807                int used; 
    808808 
     
    862862        vlanmc.untag = 0; 
    863863        vlanmc.fid = 0; 
    864         for (i = 0; i < RTL8366RB_NUM_VLANS; i++) { 
     864        for (i = 0; i < smi->num_vlan_mc; i++) { 
    865865                err = smi->ops->set_vlan_mc(smi, i, &vlanmc); 
    866866                if (err) 
     
    868868        } 
    869869 
    870         for (i = 0; i < RTL8366RB_NUM_PORTS; i++) { 
    871                 if (i == RTL8366RB_PORT_CPU) 
     870        for (i = 0; i < smi->num_ports; i++) { 
     871                if (i == smi->cpu_port) 
    872872                        continue; 
    873873 
    874874                err = rtl8366rb_set_vlan(smi, (i + 1), 
    875                                          (1 << i) | RTL8366RB_PORT_CPU, 
    876                                          (1 << i) | RTL8366RB_PORT_CPU, 
     875                                         (1 << i) | (1 << smi->cpu_port), 
     876                                         (1 << i) | (1 << smi->cpu_port), 
    877877                                         0); 
    878878                if (err) 
     
    16931693        smi->gpio_sck = pdata->gpio_sck; 
    16941694        smi->ops = &rtl8366rb_smi_ops; 
     1695        smi->cpu_port = RTL8366RB_PORT_NUM_CPU; 
     1696        smi->num_ports = RTL8366RB_NUM_PORTS; 
     1697        smi->num_vlan_mc = RTL8366RB_NUM_VLANS; 
    16951698 
    16961699        err = rtl8366_smi_init(smi); 
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8366s.c

    r21977 r21978  
    682682 
    683683        /* Try to find an existing MC entry for this VID */ 
    684         for (i = 0; i < RTL8366S_NUM_VLANS; i++) { 
     684        for (i = 0; i < smi->num_vlan_mc; i++) { 
    685685                struct rtl8366_vlan_mc vlanmc; 
    686686 
     
    728728 
    729729        *used = 0; 
    730         for (i = 0; i < RTL8366S_NUM_PORTS; i++) { 
     730        for (i = 0; i < smi->num_ports; i++) { 
    731731                int index = 0; 
    732732 
     
    753753 
    754754        /* Try to find an existing MC entry for this VID */ 
    755         for (i = 0; i < RTL8366S_NUM_VLANS; i++) { 
     755        for (i = 0; i < smi->num_vlan_mc; i++) { 
    756756                err = smi->ops->get_vlan_mc(smi, i, &vlanmc); 
    757757                if (err) 
     
    769769 
    770770        /* We have no MC entry for this VID, try to find an empty one */ 
    771         for (i = 0; i < RTL8366S_NUM_VLANS; i++) { 
     771        for (i = 0; i < smi->num_vlan_mc; i++) { 
    772772                err = smi->ops->get_vlan_mc(smi, i, &vlanmc); 
    773773                if (err) 
     
    794794 
    795795        /* MC table is full, try to find an unused entry and replace it */ 
    796         for (i = 0; i < RTL8366S_NUM_VLANS; i++) { 
     796        for (i = 0; i < smi->num_vlan_mc; i++) { 
    797797                int used; 
    798798 
     
    851851        vlanmc.untag = 0; 
    852852        vlanmc.fid = 0; 
    853         for (i = 0; i < RTL8366S_NUM_VLANS; i++) { 
     853        for (i = 0; i < smi->num_vlan_mc; i++) { 
    854854                err = smi->ops->set_vlan_mc(smi, i, &vlanmc); 
    855855                if (err) 
     
    857857        } 
    858858 
    859         for (i = 0; i < RTL8366S_NUM_PORTS; i++) { 
    860                 if (i == RTL8366S_PORT_CPU) 
     859        for (i = 0; i < smi->num_ports; i++) { 
     860                if (i == smi->cpu_port) 
    861861                        continue; 
    862862 
    863863                err = rtl8366s_set_vlan(smi, (i + 1), 
    864                                          (1 << i) | RTL8366S_PORT_CPU, 
    865                                          (1 << i) | RTL8366S_PORT_CPU, 
     864                                         (1 << i) | (1 << smi->cpu_port), 
     865                                         (1 << i) | (1 << smi->cpu_port), 
    866866                                         0); 
    867867                if (err) 
     
    16831683        smi->gpio_sck = pdata->gpio_sck; 
    16841684        smi->ops = &rtl8366s_smi_ops; 
     1685        smi->cpu_port = RTL8366S_PORT_NUM_CPU; 
     1686        smi->num_ports = RTL8366S_NUM_PORTS; 
     1687        smi->num_vlan_mc = RTL8366S_NUM_VLANS; 
    16851688 
    16861689        err = rtl8366_smi_init(smi); 
Note: See TracChangeset for help on using the changeset viewer.