tree:
https://github.com/frank-w/BPI-R2-4.14 5.15-rtl8367dsa
head: d23232d65379337787348ac851424897bf65ac92
commit: e011078a3905661586c48399e06ab99ab4be40c2 [50/60] net: dsa: rtl8367: add
rtk_vlan_portPvid_set
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/frank-w/BPI-R2-4.14/commit/e011078a3905661586c48399e06...
git remote add frank-w-bpi-r2-4.14
https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.15-rtl8367dsa
git checkout e011078a3905661586c48399e06ab99ab4be40c2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the frank-w-bpi-r2-4.14/5.15-rtl8367dsa HEAD
d23232d65379337787348ac851424897bf65ac92 builds fine.
It only hurts bisectability.
All errors (new ones prefixed by >>):
In file included from drivers/net/dsa/rtl8367s_mdio.c:23:
drivers/net/dsa/rtl8367s_mdio.h:884:15: error: no previous prototype for
'rtk_switch_logicalPortCheck' [-Werror=missing-prototypes]
884 | rtk_api_ret_t rtk_switch_logicalPortCheck(rtk_port_t logicalPort)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:897:12: error: no previous prototype for
'rtk_switch_phyPortMask_get' [-Werror=missing-prototypes]
897 | rtk_uint32 rtk_switch_phyPortMask_get(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:910:15: error: no previous prototype for
'rtk_switch_isExtPort' [-Werror=missing-prototypes]
910 | rtk_api_ret_t rtk_switch_isExtPort(rtk_port_t logicalPort)
| ^~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:924:15: error: no previous prototype for
'rtk_switch_isUtpPort' [-Werror=missing-prototypes]
924 | rtk_api_ret_t rtk_switch_isUtpPort(rtk_port_t logicalPort)
| ^~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:938:15: error: no previous prototype for
'rtk_switch_isHsgPort' [-Werror=missing-prototypes]
938 | rtk_api_ret_t rtk_switch_isHsgPort(rtk_port_t logicalPort)
| ^~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:952:15: error: no previous prototype for
'rtk_switch_isSgmiiPort' [-Werror=missing-prototypes]
952 | rtk_api_ret_t rtk_switch_isSgmiiPort(rtk_port_t logicalPort)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:966:12: error: no previous prototype for
'rtk_switch_port_L2P_get' [-Werror=missing-prototypes]
966 | rtk_uint32 rtk_switch_port_L2P_get(rtk_port_t logicalPort)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:977:15: error: no previous prototype for
'rtk_switch_isPortMaskValid' [-Werror=missing-prototypes]
977 | rtk_api_ret_t rtk_switch_isPortMaskValid(rtk_portmask_t *pPmask)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:991:15: error: no previous prototype for
'rtk_switch_portmask_L2P_get' [-Werror=missing-prototypes]
991 | rtk_api_ret_t rtk_switch_portmask_L2P_get(rtk_portmask_t *pLogicalPmask,
rtk_uint32 *pPhysicalPortmask)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.h:1019:12: error: no previous prototype for
'rtk_switch_maxMeterId_get' [-Werror=missing-prototypes]
1019 | rtk_uint32 rtk_switch_maxMeterId_get(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:46:14: error: no previous prototype for
'mii_mgr_read' [-Werror=missing-prototypes]
46 | unsigned int mii_mgr_read(unsigned int phy_addr,unsigned int
phy_register,unsigned int *read_data)
| ^~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:59:14: error: no previous prototype for
'mii_mgr_write' [-Werror=missing-prototypes]
59 | unsigned int mii_mgr_write(unsigned int phy_addr,unsigned int
phy_register,unsigned int write_data)
| ^~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:76:11: error: no previous prototype for
'smi_read' [-Werror=missing-prototypes]
76 | rtk_int32 smi_read(rtk_uint32 mAddrs, rtk_uint32 *rData)
| ^~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:105:11: error: no previous prototype for
'smi_write' [-Werror=missing-prototypes]
105 | rtk_int32 smi_write(rtk_uint32 mAddrs, rtk_uint32 rData)
| ^~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:137:7: error: no previous prototype for
'rtl8367c_setAsicReg' [-Werror=missing-prototypes]
137 | ret_t rtl8367c_setAsicReg(rtk_uint32 reg, rtk_uint32 value)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:148:7: error: no previous prototype for
'rtl8367c_getAsicReg' [-Werror=missing-prototypes]
148 | ret_t rtl8367c_getAsicReg(rtk_uint32 reg, rtk_uint32 *pValue)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:164:7: error: no previous prototype for
'rtl8367c_setAsicRegBit' [-Werror=missing-prototypes]
164 | ret_t rtl8367c_setAsicRegBit(rtk_uint32 reg, rtk_uint32 bit, rtk_uint32 value)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:188:7: error: no previous prototype for
'rtl8367c_getAsicRegBit' [-Werror=missing-prototypes]
188 | ret_t rtl8367c_getAsicRegBit(rtk_uint32 reg, rtk_uint32 bit, rtk_uint32
*pValue)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:203:7: error: no previous prototype for
'rtl8367c_getAsicRegBits' [-Werror=missing-prototypes]
203 | ret_t rtl8367c_getAsicRegBits(rtk_uint32 reg, rtk_uint32 bits, rtk_uint32
*pValue)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:229:7: error: no previous prototype for
'rtl8367c_setAsicRegBits' [-Werror=missing-prototypes]
229 | ret_t rtl8367c_setAsicRegBits(rtk_uint32 reg, rtk_uint32 bits, rtk_uint32
value)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:266:7: error: no previous prototype for
'rtl8367c_setAsicPHYOCPReg' [-Werror=missing-prototypes]
266 | ret_t rtl8367c_setAsicPHYOCPReg(rtk_uint32 phyNo, rtk_uint32 ocpAddr,
rtk_uint32 ocpData )
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:287:7: error: no previous prototype for
'rtl8367c_getAsicPHYOCPReg' [-Werror=missing-prototypes]
287 | ret_t rtl8367c_getAsicPHYOCPReg(rtk_uint32 phyNo, rtk_uint32 ocpAddr,
rtk_uint32 *pRegData )
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:308:7: error: no previous prototype for
'rtl8367c_setAsicSdsReg' [-Werror=missing-prototypes]
308 | ret_t rtl8367c_setAsicSdsReg(rtk_uint32 sdsId, rtk_uint32 sdsReg, rtk_uint32
sdsPage, rtk_uint32 value)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:325:7: error: no previous prototype for
'rtl8367c_getAsicSdsReg' [-Werror=missing-prototypes]
325 | ret_t rtl8367c_getAsicSdsReg(rtk_uint32 sdsId, rtk_uint32 sdsReg, rtk_uint32
sdsPage, rtk_uint32 *value)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:351:7: error: no previous prototype for
'rtl8367c_setAsicPHYReg' [-Werror=missing-prototypes]
351 | ret_t rtl8367c_setAsicPHYReg(rtk_uint32 phyNo, rtk_uint32 phyAddr, rtk_uint32
phyData )
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:362:7: error: no previous prototype for
'rtl8367c_getAsicPHYReg' [-Werror=missing-prototypes]
362 | ret_t rtl8367c_getAsicPHYReg(rtk_uint32 phyNo, rtk_uint32 phyAddr, rtk_uint32
*pRegData )
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:374:7: error: no previous prototype for
'rtl8367c_setAsicPortEnableAll' [-Werror=missing-prototypes]
374 | ret_t rtl8367c_setAsicPortEnableAll(rtk_uint32 enable)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:383:7: error: no previous prototype for
'rtl8367c_setAsicPortExtMode' [-Werror=missing-prototypes]
383 | ret_t rtl8367c_setAsicPortExtMode(rtk_uint32 id, rtk_uint32 mode)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:760:7: error: no previous prototype for
'rtl8367c_setAsicPortForceLinkExt' [-Werror=missing-prototypes]
760 | ret_t rtl8367c_setAsicPortForceLinkExt(rtk_uint32 id, rtl8367c_port_ability_t
*pPortAbility)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:846:7: error: no previous prototype for
'rtl8367c_getAsicPortForceLinkExt' [-Werror=missing-prototypes]
846 | ret_t rtl8367c_getAsicPortForceLinkExt(rtk_uint32 id, rtl8367c_port_ability_t
*pPortAbility)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/dsa/rtl8367s_mdio.c:1006:7: error: no previous
prototype for 'rtl8367c_getAsicVlan4kEntry' [-Werror=missing-prototypes]
1006 | ret_t rtl8367c_getAsicVlan4kEntry(rtl8367c_user_vlan4kentry *pVlan4kEntry )
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1078:7: error: no previous prototype for
'rtl8367c_setAsicVlan4kEntry' [-Werror=missing-prototypes]
1078 | ret_t rtl8367c_setAsicVlan4kEntry(rtl8367c_user_vlan4kentry *pVlan4kEntry )
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/dsa/rtl8367s_mdio.c:1133:7: error: no previous
prototype for 'rtl8367c_getAsicVlanMemberConfig' [-Werror=missing-prototypes]
1133 | ret_t rtl8367c_getAsicVlanMemberConfig(rtk_uint32 index,
rtl8367c_vlanconfiguser *pVlanCg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1164:7: error: no previous prototype for
'rtl8367c_setAsicVlanMemberConfig' [-Werror=missing-prototypes]
1164 | ret_t rtl8367c_setAsicVlanMemberConfig(rtk_uint32 index,
rtl8367c_vlanconfiguser *pVlanCg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1212:7: error: no previous prototype for
'rtl8367c_setAsicVlanEgressTagMode' [-Werror=missing-prototypes]
1212 | ret_t rtl8367c_setAsicVlanEgressTagMode(rtk_uint32 port, rtl8367c_egtagmode
tagMode)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1223:7: error: no previous prototype for
'rtl8367c_setAsicVlanPortBasedVID' [-Werror=missing-prototypes]
1223 | ret_t rtl8367c_setAsicVlanPortBasedVID(rtk_uint32 port, rtk_uint32 index,
rtk_uint32 pri)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1252:7: error: no previous prototype for
'rtl8367c_setAsicVlanIngressFilter' [-Werror=missing-prototypes]
1252 | ret_t rtl8367c_setAsicVlanIngressFilter(rtk_uint32 port, rtk_uint32 enabled)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1260:7: error: no previous prototype for
'rtl8367c_setAsicVlanFilter' [-Werror=missing-prototypes]
1260 | ret_t rtl8367c_setAsicVlanFilter(rtk_uint32 enabled)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1267:15: error: no previous prototype for
'rtk_port_macForceLinkExt_set' [-Werror=missing-prototypes]
1267 | rtk_api_ret_t rtk_port_macForceLinkExt_set(rtk_port_t port, rtk_mode_ext_t
mode, rtk_port_mac_ability_t *pPortability)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1336:15: error: no previous prototype for
'rtk_port_phyReg_set' [-Werror=missing-prototypes]
1336 | rtk_api_ret_t rtk_port_phyReg_set(rtk_port_t port, rtk_port_phy_reg_t reg,
rtk_port_phy_data_t regData)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1352:15: error: no previous prototype for
'rtk_port_phyReg_get' [-Werror=missing-prototypes]
1352 | rtk_api_ret_t rtk_port_phyReg_get(rtk_port_t port, rtk_port_phy_reg_t reg,
rtk_port_phy_data_t *pData)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1368:15: error: no previous prototype for
'rtk_port_phyEnableAll_set' [-Werror=missing-prototypes]
1368 | rtk_api_ret_t rtk_port_phyEnableAll_set(rtk_enable_t enable)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1409:15: error: no previous prototype for
'rtk_port_rgmiiDelayExt_set' [-Werror=missing-prototypes]
1409 | rtk_api_ret_t rtk_port_rgmiiDelayExt_set(rtk_port_t port, rtk_data_t txDelay,
rtk_data_t rxDelay)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1441:7: error: no previous prototype for
'rtl8367c_setSgmiiNway' [-Werror=missing-prototypes]
1441 | ret_t rtl8367c_setSgmiiNway(rtk_uint32 ext_id, rtk_uint32 state)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1528:15: error: no previous prototype for
'rtk_port_sgmiiNway_set' [-Werror=missing-prototypes]
1528 | rtk_api_ret_t rtk_port_sgmiiNway_set(rtk_port_t port, rtk_enable_t state)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:1548:7: error: no previous prototype for
'rtl8367c_resetVlan' [-Werror=missing-prototypes]
1548 | ret_t rtl8367c_resetVlan(void)
| ^~~~~~~~~~~~~~~~~~
> drivers/net/dsa/rtl8367s_mdio.c:1643:15: error: no previous
prototype for 'rtk_vlan_checkAndCreateMbr' [-Werror=missing-prototypes]
1643 | rtk_api_ret_t rtk_vlan_checkAndCreateMbr(rtk_vlan_t vid, rtk_uint32 *pIndex)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:2141:15: error: no previous prototype for
'rtk_switch_probe' [-Werror=missing-prototypes]
2141 | rtk_api_ret_t rtk_switch_probe(switch_chip_t *pSwitchChip)
| ^~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:2190:15: error: no previous prototype for
'rtk_switch_initialState_set' [-Werror=missing-prototypes]
2190 | rtk_api_ret_t rtk_switch_initialState_set(init_state_t state)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:2199:15: error: no previous prototype for
'rtk_switch_init' [-Werror=missing-prototypes]
2199 | rtk_api_ret_t rtk_switch_init(void)
| ^~~~~~~~~~~~~~~
drivers/net/dsa/rtl8367s_mdio.c:2310:6: error: no previous prototype for
'init_gsw' [-Werror=missing-prototypes]
2310 | void init_gsw(void)
| ^~~~~~~~
cc1: all warnings being treated as errors
vim +/rtl8367c_getAsicVlan4kEntry +1006 drivers/net/dsa/rtl8367s_mdio.c
1005
1006 ret_t rtl8367c_getAsicVlan4kEntry(rtl8367c_user_vlan4kentry
*pVlan4kEntry )
1007 {
1008 rtk_uint16 vlan_4k_entry[RTL8367C_VLAN_4KTABLE_LEN];
1009 rtk_uint32 page_idx;
1010 rtk_uint16 *tableAddr;
1011 ret_t retVal;
1012 rtk_uint32 regData;
1013 rtk_uint32 busyCounter;
1014
1015 if(pVlan4kEntry->vid > RTL8367C_VIDMAX)
1016 return RT_ERR_VLAN_VID;
1017
1018 /* Polling status */
1019 busyCounter = RTL8367C_VLAN_BUSY_CHECK_NO;
1020 while(busyCounter)
1021 {
1022 retVal = rtl8367c_getAsicRegBit(RTL8367C_TABLE_ACCESS_STATUS_REG,
RTL8367C_TABLE_LUT_ADDR_BUSY_FLAG_OFFSET,®Data);
1023 if(retVal != RT_ERR_OK)
1024 return retVal;
1025
1026 if(regData == 0)
1027 break;
1028
1029 busyCounter --;
1030 if(busyCounter == 0)
1031 return RT_ERR_BUSYWAIT_TIMEOUT;
1032 }
1033
1034 /* Write Address (VLAN_ID) */
1035 regData = pVlan4kEntry->vid;
1036 retVal = rtl8367c_setAsicReg(RTL8367C_TABLE_ACCESS_ADDR_REG, regData);
1037 if(retVal != RT_ERR_OK)
1038 return retVal;
1039
1040 /* Read Command */
1041 retVal = rtl8367c_setAsicRegBits(RTL8367C_TABLE_ACCESS_CTRL_REG,
RTL8367C_TABLE_TYPE_MASK | RTL8367C_COMMAND_TYPE_MASK,
RTL8367C_TABLE_ACCESS_REG_DATA(TB_OP_READ,TB_TARGET_CVLAN));
1042 if(retVal != RT_ERR_OK)
1043 return retVal;
1044
1045 /* Polling status */
1046 busyCounter = RTL8367C_VLAN_BUSY_CHECK_NO;
1047 while(busyCounter)
1048 {
1049 retVal = rtl8367c_getAsicRegBit(RTL8367C_TABLE_ACCESS_STATUS_REG,
RTL8367C_TABLE_LUT_ADDR_BUSY_FLAG_OFFSET,®Data);
1050 if(retVal != RT_ERR_OK)
1051 return retVal;
1052
1053 if(regData == 0)
1054 break;
1055
1056 busyCounter --;
1057 if(busyCounter == 0)
1058 return RT_ERR_BUSYWAIT_TIMEOUT;
1059 }
1060
1061 /* Read VLAN data from register */
1062 tableAddr = vlan_4k_entry;
1063 for(page_idx = 0; page_idx < RTL8367C_VLAN_4KTABLE_LEN; page_idx++)
1064 {
1065 retVal = rtl8367c_getAsicReg(RTL8367C_TABLE_ACCESS_RDDATA_BASE + page_idx,
®Data);
1066 if(retVal != RT_ERR_OK)
1067 return retVal;
1068
1069 *tableAddr = regData;
1070 tableAddr++;
1071 }
1072
1073 _rtl8367c_Vlan4kStSmi2User(vlan_4k_entry, pVlan4kEntry);
1074
1075 return RT_ERR_OK;
1076 }
1077
1078 ret_t rtl8367c_setAsicVlan4kEntry(rtl8367c_user_vlan4kentry *pVlan4kEntry )
1079 {
1080 rtk_uint16 vlan_4k_entry[RTL8367C_VLAN_4KTABLE_LEN];
1081 rtk_uint32 page_idx;
1082 rtk_uint16 *tableAddr;
1083 ret_t retVal;
1084 rtk_uint32 regData;
1085
1086 if(pVlan4kEntry->vid > RTL8367C_VIDMAX)
1087 return RT_ERR_VLAN_VID;
1088
1089 if(pVlan4kEntry->mbr > RTL8367C_PORTMASK)
1090 return RT_ERR_PORT_MASK;
1091
1092 if(pVlan4kEntry->untag > RTL8367C_PORTMASK)
1093 return RT_ERR_PORT_MASK;
1094
1095 if(pVlan4kEntry->fid_msti > RTL8367C_FIDMAX)
1096 return RT_ERR_L2_FID;
1097
1098 if(pVlan4kEntry->meteridx > RTL8367C_METERMAX)
1099 return RT_ERR_FILTER_METER_ID;
1100
1101 if(pVlan4kEntry->vbpri > RTL8367C_PRIMAX)
1102 return RT_ERR_QOS_INT_PRIORITY;
1103
1104 memset(vlan_4k_entry, 0x00, sizeof(rtk_uint16) * RTL8367C_VLAN_4KTABLE_LEN);
1105 _rtl8367c_Vlan4kStUser2Smi(pVlan4kEntry, vlan_4k_entry);
1106
1107 /* Prepare Data */
1108 tableAddr = vlan_4k_entry;
1109 for(page_idx = 0; page_idx < RTL8367C_VLAN_4KTABLE_LEN; page_idx++)
1110 {
1111 regData = *tableAddr;
1112 retVal = rtl8367c_setAsicReg(RTL8367C_TABLE_ACCESS_WRDATA_BASE + page_idx,
regData);
1113 if(retVal != RT_ERR_OK)
1114 return retVal;
1115
1116 tableAddr++;
1117 }
1118
1119 /* Write Address (VLAN_ID) */
1120 regData = pVlan4kEntry->vid;
1121 retVal = rtl8367c_setAsicReg(RTL8367C_TABLE_ACCESS_ADDR_REG, regData);
1122 if(retVal != RT_ERR_OK)
1123 return retVal;
1124
1125 /* Write Command */
1126 retVal = rtl8367c_setAsicRegBits(RTL8367C_TABLE_ACCESS_CTRL_REG,
RTL8367C_TABLE_TYPE_MASK |
RTL8367C_COMMAND_TYPE_MASK,RTL8367C_TABLE_ACCESS_REG_DATA(TB_OP_WRITE,TB_TARGET_CVLAN));
1127 if(retVal != RT_ERR_OK)
1128 return retVal;
1129
1130 return RT_ERR_OK;
1131 }
1132
1133 ret_t rtl8367c_getAsicVlanMemberConfig(rtk_uint32 index,
rtl8367c_vlanconfiguser *pVlanCg)
1134 {
1135 ret_t retVal;
1136 rtk_uint32 page_idx;
1137 rtk_uint32 regAddr;
1138 rtk_uint32 regData;
1139 rtk_uint16 *tableAddr;
1140 rtk_uint16 smi_vlancfg[RTL8367C_VLAN_MBRCFG_LEN];
1141
1142 if(index > RTL8367C_CVIDXMAX)
1143 return RT_ERR_VLAN_ENTRY_NOT_FOUND;
1144
1145 memset(smi_vlancfg, 0x00, sizeof(rtk_uint16) * RTL8367C_VLAN_MBRCFG_LEN);
1146 tableAddr = smi_vlancfg;
1147
1148 for(page_idx = 0; page_idx < 4; page_idx++) /* 4 pages per VLAN Member
Config */
1149 {
1150 regAddr = RTL8367C_VLAN_MEMBER_CONFIGURATION_BASE + (index * 4) +
page_idx;
1151
1152 retVal = rtl8367c_getAsicReg(regAddr, ®Data);
1153 if(retVal != RT_ERR_OK)
1154 return retVal;
1155
1156 *tableAddr = (rtk_uint16)regData;
1157 tableAddr++;
1158 }
1159
1160 _rtl8367c_VlanMCStSmi2User(smi_vlancfg, pVlanCg);
1161 return RT_ERR_OK;
1162 }
1163
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org