예제 #1
0
static u8 GetDegradeTxRate(struct net_device *dev, u8 rate)
{
    struct r8180_priv *priv = ieee80211_priv(dev);
    u8                      DownRate;

    /* Upgrade 1 degree. */
    switch (rate) {
    case 108: /* Down to 48Mbps. */
        DownRate = 96;
        break;

    case 96: /* Down to 36Mbps. */
        DownRate = 72;
        break;

    case 72: /* Down to 24Mbps. */
        DownRate = 48;
        break;

    case 48: /* Down to 18Mbps. */
        DownRate = 36;
        break;

    case 36: /* Down to 11Mbps. */
        DownRate = 22;
        break;

    case 22: /* Down to 5.5Mbps. */
        DownRate = 11;
        break;

    case 11: /* Down to 2Mbps. */
        DownRate = 4;
        break;

    case 4: /* Down to 1Mbps. */
        DownRate = 2;
        break;

    case 2: /* Down to 1Mbps. */
        DownRate = 2;
        break;

    default:
        printk("GetDegradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate);
        return rate;
    }
    /* Check if the rate is valid. */
    if (IncludedInSupportedRates(priv, DownRate)) {
        return DownRate;
    } else {
        return rate;
    }
    return rate;
}
u8 GetDegradeTxRate(struct net_device *dev, u8 rate)
{
	struct r8180_priv *priv = ieee80211_priv(dev);
	u8                      DownRate;

	
	switch (rate) {
	case 108: 
		DownRate = 96;
		break;

	case 96: 
		DownRate = 72;
		break;

	case 72: 
		DownRate = 48;
		break;

	case 48: 
		DownRate = 36;
		break;

	case 36: 
		DownRate = 22;
		break;

	case 22: 
		DownRate = 11;
		break;

	case 11: 
		DownRate = 4;
		break;

	case 4: 
		DownRate = 2;
		break;

	case 2: 
		DownRate = 2;
		break;

	default:
		printk("GetDegradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate);
		return rate;
	}
	
	if (IncludedInSupportedRates(priv, DownRate)) {
		return DownRate;
	} else {
		return rate;
	}
	return rate;
}
예제 #3
0
//
//	Description:
//		Get the Tx rate one degree down form the input rate in the supported rates.
//		Return the degrade rate if it is successed, otherwise return the input rate.
//	By Bruce, 2007-06-05.
// 
u16 GetDegradeTxRate(_adapter *padapter , u8 rate)
{
	u8			DownRate;

	// Upgrade 1 degree.
	switch(rate)
	{			
	case 108: // Down to 48Mbps.
		DownRate = 96;
		break;

	case 96: // Down to 36Mbps.
		DownRate = 72;
		break;

	case 72: // Down to 24Mbps.
		DownRate = 48;
		break;

	case 48: // Down to 18Mbps.
		DownRate = 36;
		break;

	case 36: // Down to 11Mbps.
		DownRate = 22;
		break;

	case 22: // Down to 5.5Mbps.
		DownRate = 11;
		break;

	case 11: // Down to 2Mbps.
		DownRate = 4;
		break;

	case 4: // Down to 1Mbps.
		DownRate = 2;
		break;	

	case 2: // Down to 1Mbps.
		DownRate = 2;
		break;	
		
	default:
		DEBUG_ERR(("GetDegradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate));
		return rate;		
	}

	// Check if the rate is valid.
	if(IncludedInSupportedRates(padapter, DownRate))
	{
		DEBUG_INFO(("GetDegradeTxRate(): GetDegrade Tx rate(%d) from %d!\n", DownRate, (padapter->_sys_mib.rate/10) * 2));
		return DownRate;
	}
	else
	{
		DEBUG_ERR(("GetDegradeTxRate(): Tx rate (%d) is not in supported rates\n", DownRate));		
		return rate;
	}
	return rate;
}
예제 #4
0
//
//      Description:
//              Get the Tx rate one degree down form the input rate in the supported rates.
//              Return the degrade rate if it is successed, otherwise return the input rate.
//      By Bruce, 2007-06-05.
//
u8
GetDegradeTxRate(
        struct net_device *dev,
        u8         rate
        )
{
        struct r8180_priv *priv = ieee80211_priv(dev);
        u8                      DownRate;

        // Upgrade 1 degree.
        switch(rate)
        {
        case 108: // Down to 48Mbps.
                DownRate = 96;
                break;

        case 96: // Down to 36Mbps.
                DownRate = 72;
                break;

        case 72: // Down to 24Mbps.
                DownRate = 48;
                break;

        case 48: // Down to 18Mbps.
                DownRate = 36;
                break;

        case 36: // Down to 11Mbps.
                DownRate = 22;
                break;

        case 22: // Down to 5.5Mbps.
                DownRate = 11;
                break;

        case 11: // Down to 2Mbps.
                DownRate = 4;
                break;

        case 4: // Down to 1Mbps.
                DownRate = 2;
                break;

        case 2: // Down to 1Mbps.
                DownRate = 2;
                break;

        default:
                printk("GetDegradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate);
                return rate;
        }
        // Check if the rate is valid.
        if(IncludedInSupportedRates(priv, DownRate))
        {
//              printk("GetDegradeTxRate(): GetDegrade Tx rate(%d) from %d!\n", DownRate, priv->CurrentOperaRate);
                return DownRate;
        }
        else
        {
                //printk("GetDegradeTxRate(): Tx rate (%d) is not in supported rates\n", DownRate);
                return rate;
        }
        return rate;
}