Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cddad3c authored by Larry Finger's avatar Larry Finger Committed by John W. Linville
Browse files

rtlwifi: Prepare existing drivers for new driver



A driver for the RTL8723BE will soon be added. This patch adds the
necessary parts to the common headers, and modifies the existing
drivers for those changes.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent aa45a673
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -746,6 +746,11 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
				rtlpriv->cfg->ops->linked_set_reg(hw);
			rcu_read_lock();
			sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid);
			if (!sta) {
				pr_err("ieee80211_find_sta returned NULL\n");
				rcu_read_unlock();
				goto out;
			}

			if (vif->type == NL80211_IFTYPE_STATION && sta)
				rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0);
@@ -914,6 +919,11 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
		if (bss_conf->assoc) {
			if (ppsc->fwctrl_lps) {
				u8 mstatus = RT_MEDIA_CONNECT;
				u8 keep_alive = 10;
				rtlpriv->cfg->ops->set_hw_reg(hw,
						 HW_VAR_KEEP_ALIVE,
						 (u8 *)(&keep_alive));

				rtlpriv->cfg->ops->set_hw_reg(hw,
						      HW_VAR_H2C_FW_JOINBSSRPT,
						      &mstatus);
+1 −1
Original line number Diff line number Diff line
@@ -1066,7 +1066,7 @@ static void _rtl_pci_init_struct(struct ieee80211_hw *hw,
	mac->current_ampdu_factor = 3;

	/*QOS*/
	rtlpci->acm_method = eAcmWay2_SW;
	rtlpci->acm_method = EACMWAY2_SW;

	/*task */
	tasklet_init(&rtlpriv->works.irq_tasklet,
+4 −0
Original line number Diff line number Diff line
@@ -199,6 +199,10 @@ struct rtl_pci {

	u16 shortretry_limit;
	u16 longretry_limit;

	/* MSI support */
	bool msi_support;
	bool using_msi;
};

struct mp_adapter {
+3 −3
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ void rtl88e_dm_txpower_track_adjust(struct ieee80211_hw *hw,
	u8 pwr_val = 0;
	u8 cck_base = rtldm->swing_idx_cck_base;
	u8 cck_val = rtldm->swing_idx_cck;
	u8 ofdm_base = rtldm->swing_idx_ofdm_base;
	u8 ofdm_base = rtldm->swing_idx_ofdm_base[0];
	u8 ofdm_val = rtlpriv->dm.swing_idx_ofdm[RF90_PATH_A];

	if (type == 0) {
@@ -726,7 +726,7 @@ static void rtl88e_dm_pwdb_monitor(struct ieee80211_hw *hw)
	static u64 last_rx;
	long tmp_entry_max_pwdb = 0, tmp_entry_min_pwdb = 0xff;

	if (rtlhal->oem_id == RT_CID_819x_HP) {
	if (rtlhal->oem_id == RT_CID_819X_HP) {
		u64 cur_txok_cnt = 0;
		u64 cur_rxok_cnt = 0;
		cur_txok_cnt = rtlpriv->stats.txbytesunicast - last_txok;
@@ -912,7 +912,7 @@ static void rtl88e_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
	for (i = 0; i < OFDM_TABLE_LENGTH; i++) {
		if (ele_d == (ofdmswing_table[i] & MASKOFDM_D)) {
			ofdm_old[0] = (u8) i;
			rtldm->swing_idx_ofdm_base = (u8)i;
			rtldm->swing_idx_ofdm_base[0] = (u8)i;
			RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
				 "Initial pathA ele_d reg0x%x = 0x%lx, ofdm_index = 0x%x\n",
				 ROFDM0_XATXIQIMBAL,
+9 −9
Original line number Diff line number Diff line
@@ -509,7 +509,7 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
		u8 e_aci = *((u8 *)val);
		rtl88e_dm_init_edca_turbo(hw);

		if (rtlpci->acm_method != eAcmWay2_SW)
		if (rtlpci->acm_method != EACMWAY2_SW)
			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL,
						      (u8 *)(&e_aci));
		break; }
@@ -1097,7 +1097,7 @@ int rtl88ee_hw_init(struct ieee80211_hw *hw)
	if (ppsc->rfpwr_state == ERFON) {
		if ((rtlefuse->antenna_div_type == CGCS_RX_HW_ANTDIV) ||
		    ((rtlefuse->antenna_div_type == CG_TRX_HW_ANTDIV) &&
		    (rtlhal->oem_id == RT_CID_819x_HP))) {
		    (rtlhal->oem_id == RT_CID_819X_HP))) {
			rtl88e_phy_set_rfpath_switch(hw, true);
			rtlpriv->dm.fat_table.rx_idle_ant = MAIN_ANT;
		} else {
@@ -1873,15 +1873,15 @@ static void _rtl88ee_read_adapter_info(struct ieee80211_hw *hw)
		case EEPROM_CID_DEFAULT:
			if (rtlefuse->eeprom_did == 0x8179) {
				if (rtlefuse->eeprom_svid == 0x1025) {
					rtlhal->oem_id = RT_CID_819x_Acer;
					rtlhal->oem_id = RT_CID_819X_ACER;
				} else if ((rtlefuse->eeprom_svid == 0x10EC &&
					    rtlefuse->eeprom_smid == 0x0179) ||
					    (rtlefuse->eeprom_svid == 0x17AA &&
					    rtlefuse->eeprom_smid == 0x0179)) {
					rtlhal->oem_id = RT_CID_819x_Lenovo;
					rtlhal->oem_id = RT_CID_819X_LENOVO;
				} else if (rtlefuse->eeprom_svid == 0x103c &&
					 rtlefuse->eeprom_smid == 0x197d) {
					rtlhal->oem_id = RT_CID_819x_HP;
					rtlhal->oem_id = RT_CID_819X_HP;
				} else {
					rtlhal->oem_id = RT_CID_DEFAULT;
				}
@@ -1893,7 +1893,7 @@ static void _rtl88ee_read_adapter_info(struct ieee80211_hw *hw)
			rtlhal->oem_id = RT_CID_TOSHIBA;
			break;
		case EEPROM_CID_QMI:
			rtlhal->oem_id = RT_CID_819x_QMI;
			rtlhal->oem_id = RT_CID_819X_QMI;
			break;
		case EEPROM_CID_WHQL:
		default:
@@ -1912,14 +1912,14 @@ static void _rtl88ee_hal_customized_behavior(struct ieee80211_hw *hw)
	pcipriv->ledctl.led_opendrain = true;

	switch (rtlhal->oem_id) {
	case RT_CID_819x_HP:
	case RT_CID_819X_HP:
		pcipriv->ledctl.led_opendrain = true;
		break;
	case RT_CID_819x_Lenovo:
	case RT_CID_819X_LENOVO:
	case RT_CID_DEFAULT:
	case RT_CID_TOSHIBA:
	case RT_CID_CCX:
	case RT_CID_819x_Acer:
	case RT_CID_819X_ACER:
	case RT_CID_WHQL:
	default:
		break;
Loading