Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Aug 2014 12:16:04 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        atar <atar.yosef@gmail.com>
Cc:        "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>, "freebsd-questions@freebsd.org" <freebsd-questions@freebsd.org>
Subject:   Re: TL-WN722N support on FreeBSD.
Message-ID:  <CAJ-VmombJ8Ky8Lmj70YgUH7%2BfQkiwJQ9XyD7OqfkYfx7=OfdcA@mail.gmail.com>
In-Reply-To: <C18F5819-A884-4A86-9FBA-FF7CEFF70695@gmail.com>
References:  <C18F5819-A884-4A86-9FBA-FF7CEFF70695@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

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
it.

I'm not being paid to do any of the wireless stuff in FreeBSD, so it
has to clear the "is it fun" threshold.


-a



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmombJ8Ky8Lmj70YgUH7%2BfQkiwJQ9XyD7OqfkYfx7=OfdcA>