As an update, I think I understand why the rt2x00 version cannot recover from the rfkill block. In addition to flushing the USBs tx queues, it also flushes the rx queue, which calls usb_kill_urb. I have emulated that function to simply wait for the packet to complete. For tx queues that's fine, either the transmission goes through or it errors and eventually it will clear. But rx urbs can sit indefinitely in the queue, and looking through the Usb::Connection interface and Packet_stream_tx I don't know if I can see a way to pull something out of the queue after it's been added. If I understand it right, that would require re-doing things in a pretty major way. But, on the bright side, if you don't use the rfkill feature (and you can always physically remove a USB device anyway), it's useable for me.
On Thu, Apr 27, 2023 at 11:40 AM Josef Söntgen < josef.soentgen@genode-labs.com> wrote:
Hi Colin,
[…]
Josef I am curious if this version will also work for you?
[1]
https://github.com/cvparker/genode-world/tree/ath9k_driver_support-2023-01-2...
[2]
https://github.com/cvparker/genode/tree/ath9k_driver_support-2023-01-22
Thanks for your continous effort, I'll give your branches a try.
Regards Josef
-- Josef Söntgen Genode Labs
http://www.genode-labs.com/ · http://genode.org/ _______________________________________________ Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users