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

Commit 241b128b authored by Kalle Valo's avatar Kalle Valo
Browse files

ath6kl: add back beginnings of USB support



John Linville had to revert the part of USB support which was already
in ath6kl due to build problems in commit cb00ec38 ("ath6kl: revert
USB support"). Now that I fixed the build problems properly by adding
ath6kl_core.ko kernel module it's possible to add back the
(incomplete) USB support. This patch is a revert of John's patch and
adds back the USB code which as already in ath6kl, only difference
being minor changes in Makefile and adapting usb.c to new core
function names.

Note that USB support in ath6kl is not complete yet. This code only
makes it possible to boot firmware but as HTC layer does not yet
support USB it's not possible to send any WMI commands nor data
packets to the firmware. That will be added soon.

Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent d6a434d6
Loading
Loading
Loading
Loading
+21 −4
Original line number Diff line number Diff line
config ATH6KL
	tristate "Atheros ath6kl support"
	tristate "Atheros mobile chipsets support"

config ATH6KL_SDIO
	tristate "Atheros ath6kl SDIO support"
	depends on ATH6KL
	depends on MMC
	depends on CFG80211
	---help---
	  This module adds support for wireless adapters based on
	  Atheros AR6003 chipset running over SDIO. If you choose to
	  build it as a module, it will be called ath6kl. Pls note
	  that AR6002 and AR6001 are not supported by this driver.
	  Atheros AR6003 and AR6004 chipsets running over SDIO. If you
	  choose to build it as a module, it will be called ath6kl_sdio.
	  Please note that AR6002 and AR6001 are not supported by this
	  driver.

config ATH6KL_USB
	tristate "Atheros ath6kl USB support"
	depends on ATH6KL
	depends on USB
	depends on CFG80211
	depends on EXPERIMENTAL
	---help---
	  This module adds support for wireless adapters based on
	  Atheros AR6004 chipset running over USB. This is still under
	  implementation and it isn't functional. If you choose to
	  build it as a module, it will be called ath6kl_usb.

config ATH6KL_DEBUG
	bool "Atheros ath6kl debugging"
+3 −0
Original line number Diff line number Diff line
@@ -36,3 +36,6 @@ ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o

obj-$(CONFIG_ATH6KL_SDIO) += ath6kl_sdio.o
ath6kl_sdio-y += sdio.o

obj-$(CONFIG_ATH6KL_USB) += ath6kl_usb.o
ath6kl_usb-y += usb.o
+8 −2
Original line number Diff line number Diff line
@@ -57,8 +57,14 @@ int ath6kl_bmi_get_target_info(struct ath6kl *ar,
		return ret;
	}

	if (ar->hif_type == ATH6KL_HIF_TYPE_USB) {
		ret = ath6kl_hif_bmi_read(ar, (u8 *)targ_info,
					  sizeof(*targ_info));
	} else {
		ret = ath6kl_hif_bmi_read(ar, (u8 *)&targ_info->version,
				sizeof(targ_info->version));
	}

	if (ret) {
		ath6kl_err("Unable to recv target info: %d\n", ret);
		return ret;
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ enum ATH6K_DEBUG_MASK {
	ATH6KL_DBG_BOOT		= BIT(18),    /* driver init and fw boot */
	ATH6KL_DBG_WMI_DUMP	= BIT(19),
	ATH6KL_DBG_SUSPEND	= BIT(20),
	ATH6KL_DBG_USB		= BIT(21),
	ATH6KL_DBG_ANY	        = 0xffffffff  /* enable all logs */
};

+5 −0
Original line number Diff line number Diff line
@@ -693,6 +693,11 @@ int ath6kl_hif_setup(struct ath6kl_device *dev)
	ath6kl_dbg(ATH6KL_DBG_HIF, "hif block size %d mbox addr 0x%x\n",
		   dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr);

	/* usb doesn't support enabling interrupts */
	/* FIXME: remove check once USB support is implemented */
	if (dev->ar->hif_type == ATH6KL_HIF_TYPE_USB)
		return 0;

	status = ath6kl_hif_disable_intrs(dev);

fail_setup:
Loading