Пример #1
0
/*
@func ret_t | rtl8367b_getAsicLedSerialModeConfig | Get LED serial mode setup
@parm rtk_uint32*| active | Active High or Low.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_INPUT | Invalid input value.
@comm
    The API can get LED serial mode setup and get signal active high/low.
 */
ret_t rtl8367b_getAsicLedSerialModeConfig(rtk_uint32 *active, rtk_uint32 *serimode)
{
    ret_t retVal;

    if((retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_LED_SYS_CONFIG, RTL8367B_SERI_LED_ACT_LOW_OFFSET, active))!=  RT_ERR_OK)
        return retVal;

    /*get to 8G mode (not 16G mode)*/
    if((retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_LED_MODE, RTL8367B_DLINK_TIME_OFFSET, serimode))!=  RT_ERR_OK)
        return retVal;

    return RT_ERR_OK;
}
Пример #2
0
/* Function Name:
 *      rtl8367b_getAsicPortBlockSpa
 * Description:
 *      Get disabling blocking frame if source port and destination port are the same
 * Input:
 *      port 	- Physical port number (0~7)
 *      pPermit 	- 0: block; 1: permit
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortBlockSpa(rtk_uint32 port, rtk_uint32* pPermit)
{
	if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;

	return rtl8367b_getAsicRegBit(RTL8367B_SOURCE_PORT_BLOCK_REG, port, pPermit);
}
Пример #3
0
/* Function Name:
 *      rtl8367b_getAsicGreenHighPriorityTraffic
 * Description:
 *      Get indicator which ASIC had received high priority traffic or not
 * Input:
 *      port 		- Physical port number (0~7)
 *      pIndicator 	- Have received high priority traffic indicator. If 1 means ASCI had received high priority in 1second checking priod
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicGreenHighPriorityTraffic(rtk_uint32 port, rtk_uint32* pIndicator)
{
    if(port > RTL8367B_PORTIDMAX)
        return RT_ERR_PORT_ID;

    return rtl8367b_getAsicRegBit(RTL8367B_REG_HIGHPRI_INDICATOR, port, pIndicator);
}
Пример #4
0
/* Function Name:
 *      rtl8367b_getAsicIgmp
 * Description:
 *      Get IGMP/MLD state
 * Input:
 *      enabled 	- 1: enabled, 0: disabled
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 	- Success
 *      RT_ERR_SMI  - SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicIgmp(rtk_uint32 *ptr_enabled)
{
    ret_t retVal;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_IGMP_MLD_CFG0, RTL8367B_IGMP_MLD_EN_OFFSET, ptr_enabled);
    return retVal;
}
/* Function Name:
 *      rtl8367b_getAsicPortBasedFidEn
 * Description:
 *      Get port based FID selection enable
 * Input:
 *      port 	- Physical port number (0~7)
 *      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
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortBasedFidEn(rtk_uint32 port, rtk_uint32* pEnabled)
{
    if(port > RTL8367B_PORTIDMAX)
        return RT_ERR_PORT_ID;

    return rtl8367b_getAsicRegBit(RTL8367B_REG_PORT_PBFIDEN,port, pEnabled);
}
Пример #6
0
/* Function Name:
 *      rtl8367b_getAsicGreenTrafficType
 * Description:
 *      Get traffic type for each priority
 * Input:
 *      priority 	- internal priority (0~7)
 *      pTraffictype - high/low traffic type, 1:high priority traffic type, 0:low priority traffic type
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 				- Success
 *      RT_ERR_SMI  			- SMI access error
 *      RT_ERR_QOS_INT_PRIORITY - Invalid priority
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicGreenTrafficType(rtk_uint32 priority, rtk_uint32* pTraffictype)
{
    if(priority > RTL8367B_PRIMAX)
        return RT_ERR_QOS_INT_PRIORITY;

    return rtl8367b_getAsicRegBit(RTL8367B_REG_HIGHPRI_CFG, priority, pTraffictype);
}
Пример #7
0
/* Function Name:
 *      rtl8367b_getAsicGpioAclEnClear
 * Description:
 *      Get gpio output
 * Input:
 *      gpioPin 		- GPIO pin number
 *      pGpioEn			- GPIO enabled
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 				- Success
 *      RT_ERR_SMI  			- SMI access error
 *      RT_ERR_OUT_OF_RANGE 	- input out of range.
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicGpioAclEnClear(rtk_uint32 gpioPin, rtk_uint32* pGpioEn)
{
	if(gpioPin >= RTL8367B_GPIOPINNO)
		return RT_ERR_OUT_OF_RANGE;
	
    return rtl8367b_getAsicRegBit(RTL8367B_REG_ACL_GPIO, gpioPin, pGpioEn);
}
/* Function Name:
 *      rtl8367b_getAsicEeepTxEnable
 * Description:
 *      Get per-port EEEP Tx function enable/disable
 * Input:
 *      port 		- Physical port number (0~7)
 *      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
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicEeepTxEnable(rtk_uint32 port, rtk_uint32 *pEnabled)
{
	if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;
	
    return rtl8367b_getAsicRegBit(RTL8367B_EEEP_CFG_REG(port), RTL8367B_PORT0_EEECFG_EEEP_ENABLE_TX_OFFSET, pEnabled);
}
Пример #9
0
/* Function Name:
 *      rtl8367b_getAsicPortLoopback
 * Description:
 *      Set MAC loopback
 * Input:
 *      port 	- Physical port number (0~7)
 * Output:
 *      pEnable - 0: Disable, 1: enable
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortLoopback(rtk_uint32 port, rtk_uint32 *pEnable)
{
    if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;

    return rtl8367b_getAsicRegBit(RTL8367B_PORT_MISC_CFG_REG(port), RTL8367B_PORT0_MISC_CFG_MAC_LOOPBACK_OFFSET, pEnable);
}
Пример #10
0
/* Function Name:
 *      rtl8367b_getAsicMIBsLoggingType
 * Description:
 *      MIB logging counter type
 * Input:
 *      index 	- logging counter mode index (0~15)
 *      pType 	- 0:Packet count 1:Byte count
 * 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 rtl8367b_getAsicMIBsLoggingType(rtk_uint32 index, rtk_uint32* pType)
{
	if(index > RTL8367B_MIB_MAX_LOG_MODE_IDX)
		return RT_ERR_OUT_OF_RANGE;
	
    return rtl8367b_getAsicRegBit(RTL8367B_REG_MIB_CTRL5, index,pType);        
}
Пример #11
0
/* Function Name:
 *      rtl8367b_getAsic1xPBOpdirConfig
 * Description:
 *      Get 802.1x port-based operational direction
 * Input:
 *      port 	- Physical port number (0~7)
 *      pOpdir 	- Operation direction 1: IN, 0:BOTH
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsic1xPBOpdirConfig(rtk_uint32 port, rtk_uint32* pOpdir)
{
	if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;

	return rtl8367b_getAsicRegBit(RTL8367B_DOT1X_PORT_OPDIR_REG, port, pOpdir);
}
Пример #12
0
/* Function Name:
 *      rtl8367b_getAsicPortSmallIpg
 * Description:
 *      Get small ipg egress mode
 * Input:
 *      port 	- Physical port number (0~7)
 *      pEnable 	- 0: normal, 1: small
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortSmallIpg(rtk_uint32 port, rtk_uint32* pEnable)
{
	if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;

	return rtl8367b_getAsicRegBit(RTL8367B_PORT_SMALL_IPG_REG(port), RTL8367B_PORT0_MISC_CFG_SMALL_TAG_IPG_OFFSET, pEnable);
}
Пример #13
0
/*
@func ret_t | rtl8367b_getAsicEeeGiga | Get 100M eee enable/disable.
@parm rtk_uint32 | port | The port number.
@parm rtk_uint32* | enabled | 1: enabled, 0: disabled.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API get the 100M EEE function.
*/
ret_t rtl8367b_getAsicEeeGiga(rtk_uint32 port, rtk_uint32 *enable)
{
    if(port >= RTL8367B_PORTNO)
        return RT_ERR_PORT_ID;
	
    return rtl8367b_getAsicRegBit(RTL8367B_PORT_EEE_CFG_REG(port), RTL8367B_PORT_EEE_GIGA_OFFSET, enable);
}
Пример #14
0
/* Function Name:
 *      rtl8367b_getAsicPortDos
 * Description:
 *      Get DOS function
 * Input:
 *      type 	- DOS type
 *      pDrop 	- 0: permit; 1: drop
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 			- Success
 *      RT_ERR_SMI  		- SMI access error
 *      RT_ERR_OUT_OF_RANGE - Invalid payload index
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortDos(rtk_uint32 type, rtk_uint32* pDrop)
{
	if(type >= DOS_END)
		return RT_ERR_OUT_OF_RANGE;

	return rtl8367b_getAsicRegBit(RTL8367B_REG_DOS_CFG, RTL8367B_DROP_DAEQSA_OFFSET + type,pDrop);
}
Пример #15
0
/* Function Name:
 *      rtl8367b_getAsicGpioOutput
 * Description:
 *      Get gpio output
 * Input:
 *      gpioPin 		- GPIO pin number
 *      pGpioOutput 	- GPIO output
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 				- Success
 *      RT_ERR_SMI  			- SMI access error
 *      RT_ERR_OUT_OF_RANGE 	- input out of range.
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicGpioOutput(rtk_uint32 gpioPin, rtk_uint32* pGpioOutput)
{
	if(gpioPin >= RTL8367B_GPIOPINNO)
		return RT_ERR_OUT_OF_RANGE;
	
    return rtl8367b_getAsicRegBit(RTL8367B_REG_CTRL_GPIO, gpioPin, pGpioOutput);
}
Пример #16
0
/* Function Name:
 *      rtl8367b_getAsic1xPBAuthConfig
 * Description:
 *      Get 802.1x port-based authorised port configuration
 * Input:
 *      port 	- Physical port number (0~7)
 *      pAuth 	- 1: authorised, 0: non-authorised
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsic1xPBAuthConfig(rtk_uint32 port, rtk_uint32 *pAuth)
{
	if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;

	return rtl8367b_getAsicRegBit(RTL8367B_DOT1X_PORT_AUTH_REG, port, pAuth);
}
Пример #17
0
/* Function Name:
 *      rtl8367b_getAsic1xPBEnConfig
 * Description:
 *      Get 802.1x port-based port enable configuration
 * Input:
 *      port 	- Physical port number (0~7)
 *      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
 * Note:
 *      None
 */
ret_t rtl8367b_getAsic1xPBEnConfig(rtk_uint32 port, rtk_uint32 *pEnabled)
{
	if(port >= RTL8367B_PORTNO)
		return RT_ERR_PORT_ID;

	return rtl8367b_getAsicRegBit(RTL8367B_DOT1X_PORT_ENABLE_REG, port, pEnabled);
}
/* Function Name:
 *      rtl8367b_getAsicVlanIngressFilter
 * Description:
 *      Get VLAN Ingress Filter
 * Input:
 *      port 		- Physical port number (0~7)
 *      pEnable 	- Enable or disable Ingress filter
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 *      RT_ERR_PORT_ID  - Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicVlanIngressFilter(rtk_uint32 port, rtk_uint32 *pEnable)
{
    if(port > RTL8367B_PORTIDMAX)
        return RT_ERR_PORT_ID;

    return rtl8367b_getAsicRegBit(RTL8367BG_VLAN_INGRESS_REG, port, pEnable);
}
Пример #19
0
/* Function Name:
 *      rtl8367b_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 rtl8367b_getAsicFlowControlQueueEgressEnable(rtk_uint32 port, rtk_uint32 qid, rtk_uint32* pEnabled)
{
    if(port > RTL8367B_PORTIDMAX)
        return RT_ERR_PORT_ID;

    if(qid > RTL8367B_QIDMAX) 
		return RT_ERR_QUEUE_ID;
    
    return  rtl8367b_getAsicRegBit(RTL8367B_FLOWCRTL_EGRESS_QUEUE_ENABLE_REG(port), RTL8367B_FLOWCRTL_EGRESS_QUEUE_ENABLE_REG_OFFSET(port)+ qid, pEnabled);
}
Пример #20
0
/* Function Name:
 *      rtl8367b_getAsicIpMulticastVlanLeaky
 * Description:
 *      Get IP multicast VLAN Leaky function
 * Input:
 *      port 		- Physical port number (0~7)
 *      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
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicIpMulticastVlanLeaky(rtk_uint32 port, rtk_uint32 *ptr_enabled)
{
    ret_t  retVal;

    if(port > RTL8367B_PORTIDMAX)
        return RT_ERR_PORT_ID;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_IPMCAST_VLAN_LEAKY, port, ptr_enabled);

    return retVal;
}
Пример #21
0
/* Function Name:
 *      rtl8367b_getAsicLutCamTbUsage
 * Description:
 *      Get Lut CAM table usage
 * Input:
 *      pEnabled - L2 CAM table usage 1: enabled, 0: disabled
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 	- Success
 *      RT_ERR_SMI  - SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicLutCamTbUsage(rtk_uint32* pEnabled)
{
	ret_t       retVal;
    rtk_uint32  regData;

	if ((retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_LUT_CFG, RTL8367B_BCAM_DISABLE_OFFSET, &regData)) != RT_ERR_OK)
        return retVal;

    *pEnabled = regData ? 0 : 1;
	return RT_ERR_OK;
}
Пример #22
0
/* Function Name:
 *      rtl8367b_getAsicIGMPDropLeaveZero
 * Description:
 *      Get the function of droppping Leave packet with group IP = 0.0.0.0
 * Input:
 *      None
 * Output:
 *      pDrop    - 1: Drop, 0:Bypass
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicIGMPDropLeaveZero(rtk_uint32 *pDrop)
{
    ret_t   retVal;
    rtk_uint32  regData;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_IGMP_MLD_CFG1, RTL8367B_DROP_LEAVE_ZERO_OFFSET, &regData);
    if(retVal != RT_ERR_OK)
		return retVal;

    *pDrop = regData;
	return RT_ERR_OK;
}
Пример #23
0
/* Function Name:
 *      rtl8367b_getAsicIGMPVLANLeaky
 * Description:
 *      Get VLAN leaky for IGMP/MLD packet
 * Input:
 *      Noen
 * Output:
 *      pLeaky    - 1: Leaky, 0:not leaky
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicIGMPVLANLeaky(rtk_uint32 *pLeaky)
{
    ret_t   retVal;
    rtk_uint32  regData;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_IGMP_MLD_CFG0, RTL8367B_IGMP_MLD_VLAN_LEAKY_OFFSET, &regData);
    if(retVal != RT_ERR_OK)
		return retVal;

    *pLeaky = regData;
	return RT_ERR_OK;
}
Пример #24
0
/* Function Name:
 *      rtl8367b_getAsicIGMPReportFlood
 * Description:
 *      Get IGMPv1/v2 MLD v1 Report flood
 * Input:
 *      None
 * Output:
 *      pflood 	- 1: flooding to all port, 0: forward to router ports only
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicIGMPReportFlood(rtk_uint32 *pFlood)
{
    ret_t   retVal;
    rtk_uint32  regData;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_IGMP_MLD_CFG0, RTL8367B_REPORT_FORWARD_OFFSET, &regData);
    if(retVal != RT_ERR_OK)
		return retVal;

    *pFlood = regData;
	return RT_ERR_OK;
}
Пример #25
0
/* Function Name:
 *      rtl8367b_getAsicIGMPBypassStormCTRL
 * Description:
 *      Set the function of bypass strom control for IGMP/MLD packet
 * Input:
 *      None
 * Output:
 *      pBypass    - 1: Bypass, 0:not bypass
 * Return:
 *      RT_ERR_OK 		- Success
 *      RT_ERR_SMI  	- SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicIGMPBypassStormCTRL(rtk_uint32 *pBypass)
{
    ret_t   retVal;
    rtk_uint32  regData;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_IGMP_MLD_CFG0, RTL8367B_IGMP_MLD_DISCARD_STORM_FILTER_OFFSET, &regData);
    if(retVal != RT_ERR_OK)
		return retVal;

    *pBypass = regData;
	return RT_ERR_OK;
}
Пример #26
0
/* Function Name:
 *      rtl8367b_getAsicLedGroupMode
 * Description:
 *      Get Led Group mode
 * Input:
 *      pMode 	- LED mode
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 	- Success
 *      RT_ERR_SMI  - SMI access error
 * Note:
 *		None
 */
ret_t rtl8367b_getAsicLedGroupMode(rtk_uint32* pMode)
{
    ret_t retVal;
	rtk_uint32 regData;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_LED_CONFIGURATION, RTL8367B_LED_CONFIG_SEL_OFFSET, &regData);
    if(retVal != RT_ERR_OK)
        return retVal;

	if(regData!=1)
		return RT_ERR_FAILED;

    return rtl8367b_getAsicRegBits(RTL8367B_REG_LED_CONFIGURATION, RTL8367B_DATA_LED_MASK, pMode);
}
/* Function Name:
 *      rtl8367b_getAsicPortIngressBandwidth
 * Description:
 *      Get per-port total ingress bandwidth
 * Input:
 *      port 		- Physical port number (0~7)
 *      pBandwidth 	- The total ingress bandwidth (unit: 8Kbps), 0x1FFFF:disable
 *      pPreifg 		- Include preamble and IFG, 0:Exclude, 1:Include
 *      pEnableFC 	- Action when input rate exceeds. 0: Drop	1: Flow Control
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 			- Success
 *      RT_ERR_SMI  		- SMI access error
 *      RT_ERR_PORT_ID  	- Invalid port number
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortIngressBandwidth(rtk_uint32 port, rtk_uint32* pBandwidth, rtk_uint32* pPreifg, rtk_uint32* pEnableFC)
{
    ret_t retVal;
    rtk_uint32 regData;
    rtk_uint32 regAddr;

    /* Invalid input parameter */
    if(port >= RTL8367B_PORTNO)
        return RT_ERR_PORT_ID;

    regAddr = RTL8367B_INGRESSBW_PORT_RATE_LSB_REG(port);
    retVal = rtl8367b_getAsicReg(regAddr, &regData);
    if(retVal != RT_ERR_OK)
        return retVal;

    *pBandwidth = regData;

    regAddr += 1;
    retVal = rtl8367b_getAsicRegBit(regAddr, 0, &regData);
    if(retVal != RT_ERR_OK)
        return retVal;

    *pBandwidth |= (regData << RTL8367B_QOS_GRANULARTY_MSB_OFFSET);

    regAddr = RTL8367B_PORT_MISC_CFG_REG(port);
    retVal = rtl8367b_getAsicRegBit(regAddr, RTL8367B_PORT0_MISC_CFG_INGRESSBW_IFG_OFFSET, pPreifg);
    if(retVal != RT_ERR_OK)
        return retVal;

    regAddr = RTL8367B_PORT_MISC_CFG_REG(port);
    retVal = rtl8367b_getAsicRegBit(regAddr, RTL8367B_PORT0_MISC_CFG_INGRESSBW_FLOWCTRL_OFFSET, pEnableFC);
    if(retVal != RT_ERR_OK)
        return retVal;

    return RT_ERR_OK;
}
Пример #28
0
/* Function Name:
 *      rtl8367B_getAsicPortEnableAll
 * Description:
 *      Set ALL ports enable.
 * Input:
 *      enable - enable all ports.
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK 			- Success
 *      RT_ERR_SMI  		- SMI access error
 * Note:
 *      None
 */
ret_t rtl8367b_getAsicPortEnableAll(rtk_uint32 *pEnable)
{
    ret_t retVal;
    rtk_uint32 regData;

    retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_PHY_AD, RTL8367B_PDNPHY_OFFSET, &regData);
    if(retVal !=  RT_ERR_OK)
        return retVal;

    if (regData==0)
        *pEnable = 1;
    else
        *pEnable = 0;

    return RT_ERR_OK;
}
Пример #29
0
/*
@func ret_t | rtl8367b_getAsicLedOperationMode | Get LED OP mode setup
@parm rtk_uint32*| mode | LED mode. 1:scan mode 1, 2:parallel mode, 3:mdx mode (serial mode)
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_INPUT | Invalid input value.
@comm
    The API can get LED serial mode setup and get signal active high/low.
 */
ret_t rtl8367b_getAsicLedOperationMode(rtk_uint32 *mode)
{
    ret_t retVal;
    rtk_uint32 regData;

    if((retVal = rtl8367b_getAsicRegBit(RTL8367B_REG_LED_SYS_CONFIG, RTL8367B_LED_SELECT_OFFSET, &regData))!=  RT_ERR_OK)
		return retVal;

    if (regData == 1)
        *mode = LEDOP_SERIAL;
    else if (regData == 0)
        *mode = LEDOP_PARALLEL;
    else
        return RT_ERR_FAILED;

    return RT_ERR_OK;
}
Пример #30
0
/* Function Name:
 *      rtl8367b_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 rtl8367b_getAsicFlowControlJumboMode(rtk_uint32* pEnabled)
{
    return rtl8367b_getAsicRegBit(RTL8367B_REG_FLOWCTRL_JUMBO_SIZE, RTL8367B_JUMBO_MODE_OFFSET, pEnabled);
}