| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Patch by Benjamin Baier
ok ratchov@ mpi@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Also fix support for AR7010 devices, fix mode hostap by properly
managing the firmware station table, and fix Tx rate reporting.
Tested on AR7010 and AR9271 devices.
ok kevlo@
|
|
|
|
| |
ok jsg@, stsp@
|
|
|
|
|
| |
Errors will result in nice clean panic messages so we know what's wrong.
Reviewed by dhill visa natano jsg.
|
|
|
|
| |
ok natano visa
|
|
|
|
|
|
|
| |
this means packets are consistently counted in one place, unlike the
many and various ways that drivers thought they should do it.
ok mpi@ deraadt@
|
|
|
|
|
|
|
|
|
|
|
| |
The heavy lifting was done by damien@ years ago. I didn't even have
to figure out what the hardware expects, the code was already there.
This driver now supports MCS 0-15 in client and hostap mode.
No Tx aggregation and no 40 MHz channels yet.
tested by vgross@, bmercer@, tb@, jmc@, Vadim Vygonets, Peter Kay
ok bmercer@ tb@ phessler@
|
|
|
|
|
|
| |
NULL tests.
ok mpi@
|
|
|
|
|
|
| |
similar to config_defer(9).
ok mikeb@, deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there are two things shared between the network stack and drivers
in the send path: the send queue and the IFF_OACTIVE flag. the send
queue is now protected by a mutex. this diff makes the oactive
functionality mpsafe too.
IFF_OACTIVE is part of if_flags. there are two problems with that.
firstly, if_flags is a short and we dont have any MI atomic operations
to manipulate a short. secondly, while we could make the IFF_OACTIVE
operates mpsafe, all changes to other flags would have to be made
safe at the same time, otherwise a read-modify-write cycle on their
updates could clobber the oactive change.
instead, this moves the oactive mark into struct ifqueue and provides
an API for changing it. there's ifq_set_oactive, ifq_clr_oactive,
and ifq_is_oactive. these are modelled on ifsq_set_oactive,
ifsq_clr_oactive, and ifsq_is_oactive in dragonflybsd.
this diff includes changes to all the drivers manipulating IFF_OACTIVE
to now use the ifsq_{set,clr_is}_oactive API too.
ok kettenis@ mpi@ jmatthew@ deraadt@
|
|
|
|
|
|
|
|
|
| |
This header is only needed because <netinet/if_ether.h> declares a
structure that needs it. But it turns out that <net/if.h> already
includes it as workaround.
A proper solution would be to stop declarting "struct ether_arp"
there. But no driver should need this header.
|
| |
|
|
|
|
|
|
|
|
| |
the specific queues are ic_mgtq, ic_pwrsaveq, and ni_savedq. rtw
had its own queue for beacons.
tested by mpi@ and jmc@
ok mpi@
|
| |
|
|
|
|
|
| |
the problem on one of my machines and the patch doesn't help.
See http://marc.info/?l=openbsd-tech&m=143645936727569&w=2
|
|
|
|
|
|
|
|
|
| |
are running into the previous 1 second timeout on some machines, which the
driver will treat as fatal. Not sure if this will really fix the issue but
it won't hurt. Also reported in NetBSD land which inherited our driver:
http://mail-index.netbsd.org/current-users/2014/05/06/msg024793.html
ok mpi@
|
|
|
|
|
|
|
|
| |
Most of the WiFi/Ethernet USB adapter only have one configuration and always
use its first interface. In order to improve USB descriptors parsing start
by reducing the number of places where a configuration is set.
Tests & ok stsp@
|
| |
|
|
|
|
| |
Count these dropped frames as input errors.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sending the firmware a NODE_ADD command for our BSS doesn't seem to have the
desired effect in station mode. It made a new association after ifconfig
down/up impossible until the device was re-plugged. Leave the code in place
but limit it to hostap mode, just in case it is needed there (hard to tell
since hostap mode seems to be broken -- no beacons are sent by the device).
Also, when leaving run state, reset the RX filer to allow all beacons again.
ok mpi@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous code was racy and could dead-lock the USB task thread when a
firmware command timed out (e.g. because the user pulled out the device).
Handle this condition by marking the device as dying as soon as the interrupt
handler gets an IOERROR and making sleeping firmware command threads check
for a dying device when waking up.
Ensure that no thread will try to send a command before the previous one
has completed. There is only a single xfer data structure for firmware
command transfers and reusing an in-flight xfer will give the USB stack
curly toenails ("xfer not free").
Allow up to ATHN_USB_HOST_CMD_RING_COUNT firmware commands to be enqueued
on the command ring, rather than just one. Use standard usdb_wait_task()
when waiting for command ring completion instead of hand-rolled tsleep()s.
discussed with and ok mpi@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The driver artificially limited the number of slots for nodes in its net80211
node cache to 8, the rationale being the device firmware can only handle 8
associated nodes at a time. But that's not a good reason to only cache 8 of
potentially many APs in the area.
Instead of crippling upper layer data structures, impose the limit locally
by raising an error if more than 8 nodes are trying to associate (which can
only happen in hostap mode, and hostap mode seems to be broken anyway).
This matches what Linux ath9k does.
Also, use a USB-specific scan timeout callback to we can do USB refcounting
while scanning.
ok mpi@
|
|
|
|
|
|
|
| |
required since this code runs during device detach but looks prettier.
Also remove an unneeded call to usbd_abort_pipe() which is implied by
usbd_close_pipe().
ok mpi@
|
|
|
|
|
| |
confusion in the USB stack. Also add some usbd_is_dying checks.
suggested by + ok mpi@
|
|
|
|
|
|
|
| |
on every received mbuf, so there's no need to initialize this pointer in
the drivers.
Tested by and ok phessler@
|
| |
|
|
|
|
| |
ok dlg@ mpi@ bcook@ millert@ miod@
|
| |
|
| |
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
set the 'dying' flag of a device. Such handlers are useless now that
usbd_detach() already set this flag.
Even if the purpose of this flag is questionnable on OpenBSD because
DVACT_DEACTIVATE acts as a pre-detach event, this is just a first small
step towards the simplification of the autoconf(9) device states.
This cleaning is now possible thanks to the work of pirofti@ to convert
all the USB drivers to properly use usbd_is_dying().
Discussed many times with deraadt@
|
|
|
|
|
|
|
|
|
|
| |
driver start routines. Instead add & use a pointer in the pkthdr
since we don't want the overhead of using a mbuf_tags(9).
claudio@ pointed out that other subsystems might want to use this
pointer too, so here's a new cookie!
ok claudio@, mikeb@, deraadt@
|
|
|
|
|
| |
don't have to. Just remove these include lines.
Compiled on amd64 i386 sparc64; OK henning@ mikeb@
|
| |
|
|
|
|
|
|
|
|
|
| |
definitions instead. We don't change usb.h for now to stay compatible
with userland.
Tested by mpi@ on macppc and myself on i386.
ok mpi@
|
|
|
|
|
|
|
| |
transfer synchronously just pass the USBD_SYNCHRONOUS flag like any
other flags when creating a transfer.
ok sthen@, mglocker@
|
|
|
|
|
|
|
|
| |
so there is no HostAP. athn_usb_newassoc() would return if not in HostAP mode
so just stub out the function and don't build the callback function for
the RAMDISK.
ok deraadt@
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
can prevent calling athn_detach if it wasn't; suggestion and ok stsp
|
|
|
|
|
|
|
|
| |
that's ever used it, and it's long since been changed to use
DVACT_{QUIESCE,SUSPEND,RESUME} instead.
ok deraadt@, dlg@; miod@ also agreed with this idea when I brought it
up a few weeks ago
|
|
|
|
|
|
| |
them from userland, and nothing in the kernel uses them.
ok krw@, miod@
|
| |
|
|
|
|
|
|
|
| |
do not read back the LED GPIO pin since it is configured in output
only mode.
makes the link LED blink on the WiFiStation EXT when scanning (the
LEDs indicating the signal strength are not working yet).
|
|
|
|
| |
remove padding after 802.11 header if any.
|
|
|
|
|
|
| |
this dramatically reduces the number of register reads/writes and
thus the number of context switches when changing channel.
makes scanning much faster.
|