Lines Matching +full:4 +full:ghz +full:- +full:coexistence
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
33 * This implements some very basic bluetooth coexistence methods for
34 * the ath(4) hardware.
77 * Initial AR9285 / (WB195) bluetooth coexistence settings,
83 * bluetooth coexistence is enabled.
90 struct ath_hal *ah = sc->sc_ah; in ath_btcoex_cfg_wb195()
98 device_printf(sc->sc_dev, "Enabling WB195 BTCOEX\n"); in ath_btcoex_cfg_wb195()
136 * Initial AR9485 / (WB225) bluetooth coexistence settings,
146 struct ath_hal *ah = sc->sc_ah; in ath_btcoex_cfg_wb225()
154 device_printf(sc->sc_dev, "Enabling WB225 BTCOEX\n"); in ath_btcoex_cfg_wb225()
162 btinfo.bt_gpio_bt_active = 4; in ath_btcoex_cfg_wb225()
197 struct ath_hal *ah = sc->sc_ah; in ath_btcoex_cfg_mci()
205 sc->sc_ah->ah_config.ath_hal_mci_config = mci_cfg; in ath_btcoex_cfg_mci()
208 device_printf(sc->sc_dev, "Failed to setup btcoex\n"); in ath_btcoex_cfg_mci()
217 * to the bluetooth module - it's a command based in ath_btcoex_cfg_mci()
225 btinfo.bt_gpio_bt_active = 4; in ath_btcoex_cfg_mci()
248 ath_hal_btcoex_enable(sc->sc_ah); in ath_btcoex_cfg_mci()
263 * Initial AR9462 / (WB222) bluetooth coexistence settings.
271 device_printf(sc->sc_dev, "Enabling WB222 BTCOEX\n"); in ath_btcoex_cfg_wb222()
277 * Initial QCA9565 / (WB335B) bluetooth coexistence settings.
290 /* 1-ant and 2-ant AR9565 */ in ath_btcoex_cfg_wb335b()
295 if (sc->sc_pci_devinfo & ATH_PCI_AR9565_1ANT) { in ath_btcoex_cfg_wb335b()
299 } else if (sc->sc_pci_devinfo & ATH_PCI_AR9565_2ANT) { in ath_btcoex_cfg_wb335b()
305 if (sc->sc_pci_devinfo & ATH_PCI_BT_ANT_DIV) { in ath_btcoex_cfg_wb335b()
309 device_printf(sc->sc_dev, "Enabling WB335 BTCOEX\n"); in ath_btcoex_cfg_wb335b()
316 * When using bluetooth coexistence, ASPM needs to be disabled
344 struct ath_hal *ah = sc->sc_ah; in ath_btcoex_attach()
348 * No chipset bluetooth coexistence? Then do nothing. in ath_btcoex_attach()
357 ret = resource_string_value(device_get_name(sc->sc_dev), in ath_btcoex_attach()
358 device_get_unit(sc->sc_dev), in ath_btcoex_attach()
393 if (sc->sc_btcoex_mci) { in ath_btcoex_detach()
401 * Configure or disable bluetooth coexistence on the given channel.
403 * For AR9285/AR9287/AR9485, we'll never see a 5GHz channel, so we just
404 * assume bluetooth coexistence is always on.
406 * For AR9462, we may see a 5GHz channel; bluetooth coexistence should
412 if (sc->sc_btcoex_mci) { in ath_btcoex_enable()
429 unsigned int id = ad->ad_id & ATH_DIAG_ID; in ath_btcoex_ioctl()
432 u_int32_t insize = ad->ad_in_size; in ath_btcoex_ioctl()
433 u_int32_t outsize = ad->ad_out_size; in ath_btcoex_ioctl()
437 if (ad->ad_id & ATH_DIAG_IN) { in ath_btcoex_ioctl()
446 error = copyin(ad->ad_in_data, indata, insize); in ath_btcoex_ioctl()
450 if (ad->ad_id & ATH_DIAG_DYN) { in ath_btcoex_ioctl()
469 if (outsize < ad->ad_out_size) in ath_btcoex_ioctl()
470 ad->ad_out_size = outsize; in ath_btcoex_ioctl()
471 if (outdata && copyout(outdata, ad->ad_out_data, ad->ad_out_size)) in ath_btcoex_ioctl()
474 if ((ad->ad_id & ATH_DIAG_IN) && indata != NULL) in ath_btcoex_ioctl()
476 if ((ad->ad_id & ATH_DIAG_DYN) && outdata != NULL) in ath_btcoex_ioctl()