diff options
Diffstat (limited to 'target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c')
-rw-r--r-- | target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c | 1354 |
1 files changed, 0 insertions, 1354 deletions
diff --git a/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c b/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c deleted file mode 100644 index 28f49b1ba7..0000000000 --- a/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c +++ /dev/null @@ -1,1354 +0,0 @@ -/* - * Copyright (C) 2013 Realtek Semiconductor Corp. - * All Rights Reserved. - * - * Unless you and Realtek execute a separate written software license - * agreement governing use of this software, this software is licensed - * to you under the terms of the GNU General Public License version 2, - * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt - * - * $Revision: 76306 $ - * $Date: 2017-03-08 15:13:58 +0800 (週三, 08 三月 2017) $ - * - * Purpose : RTL8367C switch high-level API for RTL8367C - * Feature : Flow control related functions - * - */ - -#include <rtl8367c_asicdrv_fc.h> -/* Function Name: - * rtl8367c_setAsicFlowControlSelect - * Description: - * Set system flow control type - * Input: - * select - System flow control type 1: Ingress flow control 0:Egress flow control - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSelect(rtk_uint32 select) -{ - return rtl8367c_setAsicRegBit(RTL8367C_REG_FLOWCTRL_CTRL0, RTL8367C_FLOWCTRL_TYPE_OFFSET, select); -} -/* Function Name: - * rtl8367c_getAsicFlowControlSelect - * Description: - * Get system flow control type - * Input: - * pSelect - System flow control type 1: Ingress flow control 0:Egress flow control - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSelect(rtk_uint32 *pSelect) -{ - return rtl8367c_getAsicRegBit(RTL8367C_REG_FLOWCTRL_CTRL0, RTL8367C_FLOWCTRL_TYPE_OFFSET, pSelect); -} -/* Function Name: - * rtl8367c_setAsicFlowControlJumboMode - * Description: - * Set Jumbo threhsold for flow control - * Input: - * enabled - Jumbo mode flow control 1: Enable 0:Disable - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlJumboMode(rtk_uint32 enabled) -{ - return rtl8367c_setAsicRegBit(RTL8367C_REG_FLOWCTRL_JUMBO_SIZE, RTL8367C_JUMBO_MODE_OFFSET, enabled); -} -/* Function Name: - * rtl8367c_getAsicFlowControlJumboMode - * Description: - * Get Jumbo threhsold for flow control - * Input: - * pEnabled - Jumbo mode flow control 1: Enable 0:Disable - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlJumboMode(rtk_uint32* pEnabled) -{ - return rtl8367c_getAsicRegBit(RTL8367C_REG_FLOWCTRL_JUMBO_SIZE, RTL8367C_JUMBO_MODE_OFFSET, pEnabled); -} -/* Function Name: - * rtl8367c_setAsicFlowControlJumboModeSize - * Description: - * Set Jumbo size for Jumbo mode flow control - * Input: - * size - Jumbo size 0:3Kbytes 1:4Kbytes 2:6Kbytes 3:9Kbytes - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlJumboModeSize(rtk_uint32 size) -{ - if(size >= FC_JUMBO_SIZE_END) - return RT_ERR_OUT_OF_RANGE; - - return rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SIZE, RTL8367C_JUMBO_SIZE_MASK, size); -} -/* Function Name: - * rtl8367c_getAsicFlowControlJumboModeSize - * Description: - * Get Jumbo size for Jumbo mode flow control - * Input: - * pSize - Jumbo size 0:3Kbytes 1:4Kbytes 2:6Kbytes 3:9Kbytes - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlJumboModeSize(rtk_uint32* pSize) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SIZE, RTL8367C_JUMBO_SIZE_MASK, pSize); -} - -/* Function Name: - * rtl8367c_setAsicFlowControlQueueEgressEnable - * Description: - * Set flow control ability for each queue - * Input: - * port - Physical port number (0~7) - * qid - Queue id - * enabled - 1: enabled, 0: disabled - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * RT_ERR_QUEUE_ID - Invalid queue id - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlQueueEgressEnable(rtk_uint32 port, rtk_uint32 qid, rtk_uint32 enabled) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - - if(qid > RTL8367C_QIDMAX) - return RT_ERR_QUEUE_ID; - - return rtl8367c_setAsicRegBit(RTL8367C_FLOWCRTL_EGRESS_QUEUE_ENABLE_REG(port), RTL8367C_FLOWCRTL_EGRESS_QUEUE_ENABLE_REG_OFFSET(port)+ qid, enabled); -} -/* Function Name: - * rtl8367c_getAsicFlowControlQueueEgressEnable - * Description: - * Get flow control ability for each queue - * Input: - * port - Physical port number (0~7) - * qid - Queue id - * pEnabled - 1: enabled, 0: disabled - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * RT_ERR_QUEUE_ID - Invalid queue id - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlQueueEgressEnable(rtk_uint32 port, rtk_uint32 qid, rtk_uint32* pEnabled) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - - if(qid > RTL8367C_QIDMAX) - return RT_ERR_QUEUE_ID; - - return rtl8367c_getAsicRegBit(RTL8367C_FLOWCRTL_EGRESS_QUEUE_ENABLE_REG(port), RTL8367C_FLOWCRTL_EGRESS_QUEUE_ENABLE_REG_OFFSET(port)+ qid, pEnabled); -} -/* Function Name: - * rtl8367c_setAsicFlowControlDropAll - * Description: - * Set system-based drop parameters - * Input: - * dropall - Whole system drop threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlDropAll(rtk_uint32 dropall) -{ - if(dropall >= RTL8367C_PAGE_NUMBER) - return RT_ERR_OUT_OF_RANGE; - - return rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_CTRL0, RTL8367C_DROP_ALL_THRESHOLD_MASK, dropall); -} -/* Function Name: - * rtl8367c_getAsicFlowControlDropAll - * Description: - * Get system-based drop parameters - * Input: - * pDropall - Whole system drop threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlDropAll(rtk_uint32* pDropall) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_CTRL0, RTL8367C_DROP_ALL_THRESHOLD_MASK, pDropall); -} -/* Function Name: - * rtl8367c_setAsicFlowControlPauseAll - * Description: - * Set system-based all ports enable flow control parameters - * Input: - * threshold - Whole system pause all threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPauseAllThreshold(rtk_uint32 threshold) -{ - if(threshold >= RTL8367C_PAGE_NUMBER) - return RT_ERR_OUT_OF_RANGE; - - return rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_ALL_ON, RTL8367C_FLOWCTRL_ALL_ON_THRESHOLD_MASK, threshold); -} -/* Function Name: - * rtl8367c_getAsicFlowControlPauseAllThreshold - * Description: - * Get system-based all ports enable flow control parameters - * Input: - * pThreshold - Whole system pause all threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPauseAllThreshold(rtk_uint32 *pThreshold) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_ALL_ON, RTL8367C_FLOWCTRL_ALL_ON_THRESHOLD_MASK, pThreshold); -} -/* Function Name: - * rtl8367c_setAsicFlowControlSystemThreshold - * Description: - * Set system-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSystemThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_SYS_OFF, RTL8367C_FLOWCTRL_SYS_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_SYS_ON, RTL8367C_FLOWCTRL_SYS_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlSystemThreshold - * Description: - * Get system-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSystemThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_SYS_OFF, RTL8367C_FLOWCTRL_SYS_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_SYS_ON, RTL8367C_FLOWCTRL_SYS_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlSharedThreshold - * Description: - * Set share-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSharedThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_SHARE_OFF, RTL8367C_FLOWCTRL_SHARE_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_SHARE_ON, RTL8367C_FLOWCTRL_SHARE_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlSharedThreshold - * Description: - * Get share-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSharedThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_SHARE_OFF, RTL8367C_FLOWCTRL_SHARE_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_SHARE_ON, RTL8367C_FLOWCTRL_SHARE_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlPortThreshold - * Description: - * Set Port-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPortThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_OFF, RTL8367C_FLOWCTRL_PORT_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_ON, RTL8367C_FLOWCTRL_PORT_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlPortThreshold - * Description: - * Get Port-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPortThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_OFF, RTL8367C_FLOWCTRL_PORT_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_ON, RTL8367C_FLOWCTRL_PORT_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlPortPrivateThreshold - * Description: - * Set Port-private-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPortPrivateThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_PRIVATE_OFF, RTL8367C_FLOWCTRL_PORT_PRIVATE_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_PRIVATE_ON, RTL8367C_FLOWCTRL_PORT_PRIVATE_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlPortPrivateThreshold - * Description: - * Get Port-private-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPortPrivateThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_PRIVATE_OFF, RTL8367C_FLOWCTRL_PORT_PRIVATE_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_PRIVATE_ON, RTL8367C_FLOWCTRL_PORT_PRIVATE_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlSystemDropThreshold - * Description: - * Set system-based drop parameters - * Input: - * onThreshold - Drop turn ON threshold - * offThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSystemDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SYS_OFF, RTL8367C_FLOWCTRL_FCOFF_SYS_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SYS_ON, RTL8367C_FLOWCTRL_FCOFF_SYS_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlSystemDropThreshold - * Description: - * Get system-based drop parameters - * Input: - * pOnThreshold - Drop turn ON threshold - * pOffThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSystemDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SYS_OFF, RTL8367C_FLOWCTRL_FCOFF_SYS_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SYS_ON, RTL8367C_FLOWCTRL_FCOFF_SYS_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlSharedDropThreshold - * Description: - * Set share-based fdrop parameters - * Input: - * onThreshold - Drop turn ON threshold - * offThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSharedDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SHARE_OFF, RTL8367C_FLOWCTRL_FCOFF_SHARE_OFF_MASK, offThreshold); - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SHARE_ON, RTL8367C_FLOWCTRL_FCOFF_SHARE_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlSharedDropThreshold - * Description: - * Get share-based fdrop parameters - * Input: - * pOnThreshold - Drop turn ON threshold - * pOffThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSharedDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SHARE_OFF, RTL8367C_FLOWCTRL_FCOFF_SHARE_OFF_MASK, pOffThreshold); - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_SHARE_ON, RTL8367C_FLOWCTRL_FCOFF_SHARE_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlPortDropThreshold - * Description: - * Set Port-based drop parameters - * Input: - * onThreshold - Drop turn ON threshold - * offThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPortDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_OFF, RTL8367C_FLOWCTRL_FCOFF_PORT_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_ON, RTL8367C_FLOWCTRL_FCOFF_PORT_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlPortDropThreshold - * Description: - * Get Port-based drop parameters - * Input: - * pOnThreshold - Drop turn ON threshold - * pOffThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPortDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_OFF, RTL8367C_FLOWCTRL_FCOFF_PORT_OFF_MASK, pOffThreshold); - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_ON, RTL8367C_FLOWCTRL_FCOFF_PORT_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlPortPrivateDropThreshold - * Description: - * Set Port-private-based drop parameters - * Input: - * onThreshold - Drop turn ON threshold - * offThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPortPrivateDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_PRIVATE_OFF, RTL8367C_FLOWCTRL_FCOFF_PORT_PRIVATE_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_PRIVATE_ON, RTL8367C_FLOWCTRL_FCOFF_PORT_PRIVATE_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlPortPrivateDropThreshold - * Description: - * Get Port-private-based drop parameters - * Input: - * pOnThreshold - Drop turn ON threshold - * pOffThreshold - Drop turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPortPrivateDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_PRIVATE_OFF, RTL8367C_FLOWCTRL_FCOFF_PORT_PRIVATE_OFF_MASK, pOffThreshold); - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_FCOFF_PORT_PRIVATE_ON, RTL8367C_FLOWCTRL_FCOFF_PORT_PRIVATE_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlSystemJumboThreshold - * Description: - * Set Jumbo system-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSystemJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SYS_OFF, RTL8367C_FLOWCTRL_JUMBO_SYS_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SYS_ON, RTL8367C_FLOWCTRL_JUMBO_SYS_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlSystemJumboThreshold - * Description: - * Get Jumbo system-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSystemJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SYS_OFF, RTL8367C_FLOWCTRL_JUMBO_SYS_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SYS_ON, RTL8367C_FLOWCTRL_JUMBO_SYS_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlSharedJumboThreshold - * Description: - * Set Jumbo share-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlSharedJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SHARE_OFF, RTL8367C_FLOWCTRL_JUMBO_SHARE_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SHARE_ON, RTL8367C_FLOWCTRL_JUMBO_SHARE_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlSharedJumboThreshold - * Description: - * Get Jumbo share-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlSharedJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SHARE_OFF, RTL8367C_FLOWCTRL_JUMBO_SHARE_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_SHARE_ON, RTL8367C_FLOWCTRL_JUMBO_SHARE_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlPortJumboThreshold - * Description: - * Set Jumbo Port-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPortJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_OFF, RTL8367C_FLOWCTRL_JUMBO_PORT_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_ON, RTL8367C_FLOWCTRL_JUMBO_PORT_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlPortJumboThreshold - * Description: - * Get Jumbo Port-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPortJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_OFF, RTL8367C_FLOWCTRL_JUMBO_PORT_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_ON, RTL8367C_FLOWCTRL_JUMBO_PORT_ON_MASK, pOnThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_setAsicFlowControlPortPrivateJumboThreshold - * Description: - * Set Jumbo Port-private-based flow control parameters - * Input: - * onThreshold - Flow control turn ON threshold - * offThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlPortPrivateJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold) -{ - ret_t retVal; - - if((onThreshold >= RTL8367C_PAGE_NUMBER) || (offThreshold >= RTL8367C_PAGE_NUMBER)) - return RT_ERR_OUT_OF_RANGE; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_PRIVATE_OFF, RTL8367C_FLOWCTRL_JUMBO_PORT_PRIVATE_OFF_MASK, offThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_PRIVATE_ON, RTL8367C_FLOWCTRL_JUMBO_PORT_PRIVATE_ON_MASK, onThreshold); - - return retVal; -} -/* Function Name: - * rtl8367c_getAsicFlowControlPortPrivateJumboThreshold - * Description: - * Get Jumbo Port-private-based flow control parameters - * Input: - * pOnThreshold - Flow control turn ON threshold - * pOffThreshold - Flow control turn OFF threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlPortPrivateJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold) -{ - ret_t retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_PRIVATE_OFF, RTL8367C_FLOWCTRL_JUMBO_PORT_PRIVATE_OFF_MASK, pOffThreshold); - - if(retVal != RT_ERR_OK) - return retVal; - - retVal = rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_JUMBO_PORT_PRIVATE_ON, RTL8367C_FLOWCTRL_JUMBO_PORT_PRIVATE_ON_MASK, pOnThreshold); - - return retVal; -} - - - -/* Function Name: - * rtl8367c_setAsicEgressFlowControlQueueDropThreshold - * Description: - * Set Queue-based egress flow control turn on or ingress flow control drop on threshold - * Input: - * qid - The queue id - * threshold - Queue-based flown control/drop turn ON threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * RT_ERR_QUEUE_ID - Invalid queue id - * Note: - * None - */ -ret_t rtl8367c_setAsicEgressFlowControlQueueDropThreshold(rtk_uint32 qid, rtk_uint32 threshold) -{ - if( threshold >= RTL8367C_PAGE_NUMBER) - return RT_ERR_OUT_OF_RANGE; - - if(qid > RTL8367C_QIDMAX) - return RT_ERR_QUEUE_ID; - - return rtl8367c_setAsicRegBits(RTL8367C_FLOWCTRL_QUEUE_DROP_ON_REG(qid), RTL8367C_FLOWCTRL_QUEUE_DROP_ON_MASK, threshold); -} -/* Function Name: - * rtl8367c_getAsicEgressFlowControlQueueDropThreshold - * Description: - * Get Queue-based egress flow control turn on or ingress flow control drop on threshold - * Input: - * qid - The queue id - * pThreshold - Queue-based flown control/drop turn ON threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_QUEUE_ID - Invalid queue id - * Note: - * None - */ -ret_t rtl8367c_getAsicEgressFlowControlQueueDropThreshold(rtk_uint32 qid, rtk_uint32 *pThreshold) -{ - if(qid > RTL8367C_QIDMAX) - return RT_ERR_QUEUE_ID; - - return rtl8367c_getAsicRegBits(RTL8367C_FLOWCTRL_QUEUE_DROP_ON_REG(qid), RTL8367C_FLOWCTRL_QUEUE_DROP_ON_MASK, pThreshold); -} -/* Function Name: - * rtl8367c_setAsicEgressFlowControlPortDropThreshold - * Description: - * Set port-based egress flow control turn on or ingress flow control drop on threshold - * Input: - * port - Physical port number (0~7) - * threshold - Queue-based flown control/drop turn ON threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicEgressFlowControlPortDropThreshold(rtk_uint32 port, rtk_uint32 threshold) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - - if(threshold >= RTL8367C_PAGE_NUMBER) - return RT_ERR_OUT_OF_RANGE; - - return rtl8367c_setAsicRegBits(RTL8367C_FLOWCTRL_PORT_DROP_ON_REG(port), RTL8367C_FLOWCTRL_PORT_DROP_ON_MASK, threshold); -} -/* Function Name: - * rtl8367c_setAsicEgressFlowControlPortDropThreshold - * Description: - * Set port-based egress flow control turn on or ingress flow control drop on threshold - * Input: - * port - Physical port number (0~7) - * pThreshold - Queue-based flown control/drop turn ON threshold - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * Note: - * None - */ -ret_t rtl8367c_getAsicEgressFlowControlPortDropThreshold(rtk_uint32 port, rtk_uint32 *pThreshold) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - - return rtl8367c_getAsicRegBits(RTL8367C_FLOWCTRL_PORT_DROP_ON_REG(port), RTL8367C_FLOWCTRL_PORT_DROP_ON_MASK, pThreshold); -} -/* Function Name: - * rtl8367c_setAsicEgressFlowControlPortDropGap - * Description: - * Set port-based egress flow control turn off or ingress flow control drop off gap - * Input: - * gap - Flow control/drop turn OFF threshold = turn ON threshold - gap - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicEgressFlowControlPortDropGap(rtk_uint32 gap) -{ - if(gap >= RTL8367C_PAGE_NUMBER) - return RT_ERR_OUT_OF_RANGE; - - return rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_GAP, RTL8367C_FLOWCTRL_PORT_GAP_MASK, gap); -} -/* Function Name: - * rtl8367c_getAsicEgressFlowControlPortDropGap - * Description: - * Get port-based egress flow control turn off or ingress flow control drop off gap - * Input: - * pGap - Flow control/drop turn OFF threshold = turn ON threshold - gap - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicEgressFlowControlPortDropGap(rtk_uint32 *pGap) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT_GAP, RTL8367C_FLOWCTRL_PORT_GAP_MASK, pGap); -} -/* Function Name: - * rtl8367c_setAsicEgressFlowControlQueueDropGap - * Description: - * Set Queue-based egress flow control turn off or ingress flow control drop off gap - * Input: - * gap - Flow control/drop turn OFF threshold = turn ON threshold - gap - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - input parameter out of range - * Note: - * None - */ -ret_t rtl8367c_setAsicEgressFlowControlQueueDropGap(rtk_uint32 gap) -{ - if(gap >= RTL8367C_PAGE_NUMBER) - return RT_ERR_OUT_OF_RANGE; - - return rtl8367c_setAsicRegBits(RTL8367C_REG_FLOWCTRL_QUEUE_GAP, RTL8367C_FLOWCTRL_QUEUE_GAP_MASK, gap); -} -/* Function Name: - * rtl8367c_getAsicEgressFlowControlQueueDropGap - * Description: - * Get Queue-based egress flow control turn off or ingress flow control drop off gap - * Input: - * pGap - Flow control/drop turn OFF threshold = turn ON threshold - gap - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicEgressFlowControlQueueDropGap(rtk_uint32 *pGap) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_QUEUE_GAP, RTL8367C_FLOWCTRL_QUEUE_GAP_MASK, pGap); -} -/* Function Name: - * rtl8367c_getAsicEgressQueueEmptyPortMask - * Description: - * Get queue empty port mask - * Input: - * pPortmask - Queue empty port mask - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicEgressQueueEmptyPortMask(rtk_uint32 *pPortmask) -{ - return rtl8367c_getAsicReg(RTL8367C_REG_PORT_QEMPTY, pPortmask); -} -/* Function Name: - * rtl8367c_getAsicTotalPage - * Description: - * Get system total page usage number - * Input: - * pPageCount - page usage number - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicTotalPage(rtk_uint32 *pPageCount) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_TOTAL_PAGE_COUNTER, RTL8367C_FLOWCTRL_TOTAL_PAGE_COUNTER_MASK, pPageCount); -} -/* Function Name: - * rtl8367c_getAsicPulbicPage - * Description: - * Get system public page usage number - * Input: - * pPageCount - page usage number - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicPulbicPage(rtk_uint32 *pPageCount) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PUBLIC_PAGE_COUNTER, RTL8367C_FLOWCTRL_PUBLIC_PAGE_COUNTER_MASK, pPageCount); -} -/* Function Name: - * rtl8367c_getAsicMaxTotalPage - * Description: - * Get system total page max usage number - * Input: - * pPageCount - page usage number - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicMaxTotalPage(rtk_uint32 *pPageCount) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_TOTAL_PAGE_MAX, RTL8367C_FLOWCTRL_TOTAL_PAGE_MAX_MASK, pPageCount); -} -/* Function Name: - * rtl8367c_getAsicPulbicPage - * Description: - * Get system public page max usage number - * Input: - * pPageCount - page usage number - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * None - */ -ret_t rtl8367c_getAsicMaxPulbicPage(rtk_uint32 *pPageCount) -{ - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PUBLIC_PAGE_MAX, RTL8367C_FLOWCTRL_PUBLIC_PAGE_MAX_MASK, pPageCount); -} -/* Function Name: - * rtl8367c_getAsicPortPage - * Description: - * Get per-port page usage number - * Input: - * port - Physical port number (0~7) - * pPageCount - page usage number - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * Note: - * None - */ -ret_t rtl8367c_getAsicPortPage(rtk_uint32 port, rtk_uint32 *pPageCount) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - - if(port < 8) - return rtl8367c_getAsicRegBits(RTL8367C_FLOWCTRL_PORT_PAGE_COUNTER_REG(port), RTL8367C_FLOWCTRL_PORT_PAGE_COUNTER_MASK, pPageCount); - else - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT8_PAGE_COUNTER+port - 8, RTL8367C_FLOWCTRL_PORT_PAGE_COUNTER_MASK, pPageCount); -} -/* Function Name: - * rtl8367c_getAsicPortPage - * Description: - * Get per-port page max usage number - * Input: - * port - Physical port number (0~7) - * pPageCount - page usage number - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * Note: - * None - */ -ret_t rtl8367c_getAsicPortPageMax(rtk_uint32 port, rtk_uint32 *pPageCount) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - if(port < 8) - return rtl8367c_getAsicRegBits(RTL8367C_FLOWCTRL_PORT_PAGE_MAX_REG(port), RTL8367C_FLOWCTRL_PORT_PAGE_MAX_MASK, pPageCount); - else - return rtl8367c_getAsicRegBits(RTL8367C_REG_FLOWCTRL_PORT0_PAGE_MAX+port-8, RTL8367C_FLOWCTRL_PORT_PAGE_MAX_MASK, pPageCount); - - -} - -/* Function Name: - * rtl8367c_setAsicFlowControlEgressPortIndep - * Description: - * Set per-port egress flow control independent - * Input: - * port - Physical port number (0~7) - * enabled - Egress port flow control usage 1:enable 0:disable. - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * Note: - * None - */ -ret_t rtl8367c_setAsicFlowControlEgressPortIndep(rtk_uint32 port, rtk_uint32 enable) -{ - if(port > RTL8367C_PORTIDMAX) - return RT_ERR_PORT_ID; - - return rtl8367c_setAsicRegBit(RTL8367C_REG_PORT0_MISC_CFG + (port *0x20), RTL8367C_PORT0_MISC_CFG_FLOWCTRL_INDEP_OFFSET,enable); -} - -/* Function Name: - * rtl8367c_getAsicFlowControlEgressPortIndep - * Description: - * Get per-port egress flow control independent - * Input: - * port - Physical port number (0~7) - * enabled - Egress port flow control usage 1:enable 0:disable. - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port number - * Note: - * None - */ -ret_t rtl8367c_getAsicFlowControlEgressPortIndep(rtk_uint32 port, rtk_uint32 *pEnable) -{ - return rtl8367c_getAsicRegBit(RTL8367C_REG_PORT0_MISC_CFG + (port *0x20),RTL8367C_PORT0_MISC_CFG_FLOWCTRL_INDEP_OFFSET,pEnable); -} |