The main issue is this: I really don't like the USB driver stuff in the kernel.
When I last checked, there was no clean example of a wifi or ethernet
driver which handles all of the odd corner cases of things correctly.
So you'd end up with things like taskqueues still running whilst the
NIC had been pulled out, all sleeping on a wakeup that'll never come,
or the ioctl path not really being locked the right way with the rest
of the USB driver.
I started tinkering with a driver for the AR9170, but I still couldn't
get the command handling side of things right. It's tricky because USB
is effectively a network protocol, but all the drivers are written
assuming register accesses are synchronous. So you end up having to
craft some kind of command structure that handles sleeping for
commands that it expects a response on from another USB endpoint (eg
register reads), but not sleeping for commands that are asynchronous.
I gave up because it became "non-fun."
So yeah. Almost all of the work is done in the atheros driver side of
things. Heck, the AR9271 bits for the HAL are likely just an evenings
worth of work for me. I just don't want to deal with the USB side of
I'm not being paid to do any of the wireless stuff in FreeBSD, so it
has to clear the "is it fun" threshold.
email@example.com mailing list
To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"