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

Commit e09f2dc7 authored by Sujith Manoharan's avatar Sujith Manoharan Committed by John W. Linville
Browse files

ath9k: Add a module parameter to enable diversity

parent 362cd03f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ struct ath_common {

	bool btcoex_enabled;
	bool disable_ani;
	bool antenna_diversity;
};

struct sk_buff *ath_rxbuf_alloc(struct ath_common *common,
+4 −0
Original line number Diff line number Diff line
@@ -776,6 +776,7 @@ void ath_ant_comb_scan(struct ath_softc *sc, struct ath_rx_status *rs)
void ath_ant_comb_update(struct ath_softc *sc)
{
	struct ath_hw *ah = sc->sc_ah;
	struct ath_common *common = ath9k_hw_common(ah);
	struct ath_hw_antcomb_conf div_ant_conf;
	u8 lna_conf;

@@ -790,4 +791,7 @@ void ath_ant_comb_update(struct ath_softc *sc)
	div_ant_conf.alt_lna_conf = lna_conf;

	ath9k_hw_antdiv_comb_conf_set(ah, &div_ant_conf);

	if (common->antenna_diversity)
		ath9k_hw_antctrl_shared_chain_lnadiv(ah, true);
}
+12 −0
Original line number Diff line number Diff line
@@ -46,6 +46,10 @@ static int ath9k_btcoex_enable;
module_param_named(btcoex_enable, ath9k_btcoex_enable, int, 0444);
MODULE_PARM_DESC(btcoex_enable, "Enable wifi-BT coexistence");

static int ath9k_enable_diversity;
module_param_named(enable_diversity, ath9k_enable_diversity, int, 0444);
MODULE_PARM_DESC(enable_diversity, "Enable Antenna diversity for AR9565");

bool is_ath9k_unloaded;
/* We use the hw_value as an index into our private channel structure */

@@ -546,6 +550,14 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
	common->debug_mask = ath9k_debug;
	common->btcoex_enabled = ath9k_btcoex_enable == 1;
	common->disable_ani = false;

	/*
	 * Enable Antenna diversity only when BTCOEX is disabled
	 * and the user manually requests the feature.
	 */
	if (!common->btcoex_enabled && ath9k_enable_diversity)
		common->antenna_diversity = 1;

	spin_lock_init(&common->cc_lock);

	spin_lock_init(&sc->sc_serial_rw);