Esempio n. 1
0
void
r88eu_post_init(struct rtwn_softc *sc)
{

	/* Enable per-packet TX report. */
	rtwn_setbits_1(sc, R88E_TX_RPT_CTRL, 0, R88E_TX_RPT1_ENA);

	/* Disable Tx if MACID is not associated. */
	rtwn_write_4(sc, R88E_MACID_NO_LINK, 0xffffffff);
	rtwn_write_4(sc, R88E_MACID_NO_LINK + 4, 0xffffffff);
	r88e_macid_enable_link(sc, RTWN_MACID_BC, 1);

	/* Perform LO and IQ calibrations. */
	r88e_iq_calib(sc);
	/* Perform LC calibration. */
	r92c_lc_calib(sc);

	rtwn_write_1(sc, R92C_USB_HRPWM, 0);

	if (sc->sc_ratectl_sysctl == RTWN_RATECTL_FW) {
		/* No support (yet?) for f/w rate adaptation. */
		sc->sc_ratectl = RTWN_RATECTL_NET80211;
	} else
		sc->sc_ratectl = sc->sc_ratectl_sysctl;
}
Esempio n. 2
0
void
r88e_set_media_status(struct rtwn_softc *sc, int macid)
{
	struct r88e_fw_cmd_msrrpt status;

	if (macid & RTWN_MACID_VALID)
		status.msrb0 = R88E_MSRRPT_B0_ASSOC;
	else
		status.msrb0 = R88E_MSRRPT_B0_DISASSOC;
	status.macid = (macid & ~RTWN_MACID_VALID);

	r88e_macid_enable_link(sc, status.macid,
	    (macid & RTWN_MACID_VALID) != 0);

#ifndef RTWN_WITHOUT_UCODE
	if (r88e_fw_cmd(sc, R88E_CMD_MSR_RPT, &status, sizeof(status)) != 0) {
		device_printf(sc->sc_dev, "%s: cannot change media status!\n",
		    __func__);
	}
#endif
}