ath9k usb Wi-Fi driver

Colin Parker cvparker at
Wed May 31 06:40:11 CEST 2023

Hi Josef,
   Thanks also for your help on this, the run scripts are a big time saver
over building a new Sculpt each time.

as you may have noticed, besides briefly looking into your branches
> and pushing simple changes to make it easier to test the driver in Qemu
> I unfortunately did not find the time to dig deeper why it apparently
> was not working properly for me.

Did you try with a recent branch? I've been having success with rt2x00 and
ath9k both lately.

> That being said, yesterday I rebased [1] your changes to add hot-plugging
> support to the 'wpa_supplicant' (they compile but I did not test whether
> they work or not) to the staging branch containg the wifi stack changes
> for the upcoming release.

I was able to get this to work with my "world" version [1]. You can see the
small changes I needed to make to the main repo in [2]. Commit 7f5c967
fixes a small issue that wasn't revealed earlier where
wpa_supplicant_ctrl_iface_deinit is called with a null pointer for the
second argument. Commit 0b24c1c adds some switches to the linux compile
without which the usb version of rt2x00 won't build, and 76c138d adds
usb_report_filter to the config scenario and is not strictly necessary
unless you want to switch between two types of devices (ath9k and rt2x00)

> I also sketched using the 'virt_linux' Linux
> target as basis for a USB wifi driver - it will not link as 'virt_linux'
> is not yet properly prepared for that scenario - as I believe that is
> beneficial for an USB driver where DMA memory (and to that extend the
> usage of the Platform service) is not necessary.

Yes, very much agree that USB drivers should not need/want access to DMA
memory, Platform service, or PCI bus. I will try to tackle this next.

> My (somewhat uninformed) guess is that it could be as simple as using
> your 'lx_emul_usb.c' back end instead of, for example, 'lx_emul_pci.c'
> (omitting the gory details/obstacles lurking in the dark…).
> Maybe you want to give that a try?

Ok. It may not be so completely simple. Likely there would need to be at
least small changes to wifi_drv, for example compare "frontend.h" between
the two, you will see some additional features like _remove_all_aps(), and
IFACE-DEINIT had to be added to support hot-plug.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the users mailing list