09 Sep, 2009
24 commits
-
Add support for communicating with a Sonics Silicon Backplane through a
SDIO interface, as found in the Nintendo Wii WLAN daughter card.The Nintendo Wii WLAN card includes a custom Broadcom 4318 chip with
a SDIO host interface.Signed-off-by: Albert Herranz
Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
On Sun, 2009-09-06 at 12:26 -0700, Luis R. Rodriguez wrote:
> On Sun, Sep 6, 2009 at 10:59 AM, Joe Perches wrote:
> > On Thu, 2009-09-03 at 15:54 -0700, Luis R. Rodriguez wrote:
> >> I'm pleased to announce the new home page to Atheros Linux wireless drivers:
> >> http://wireless.kernel.org/en/users/Drivers/Atheros
> > Perhaps add this to MAINTAINERS?
> Fine by me, except ath5k and ath9k also have their own respective page
> so those can also be added.(cc's trimmed and maintainers added)
Perhaps this instead:
Signed-off-by: Joe Perches
Acked-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
This fixes a sparse warning in the hardware-TKIP code:
drivers/net/wireless/b43/xmit.c:272:18: warning: incorrect type in assignment (different base types)
drivers/net/wireless/b43/xmit.c:272:18: expected unsigned short [unsigned] [short]
drivers/net/wireless/b43/xmit.c:272:18: got restricted unsigned short [usertype]The code should work correctly with and without this patch applied.
Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
Currently, when QoS-disable is requested, we would leave QoS enabled
in firmware, but only queue frames on one queue.
Change that and also tell firmware about disabled QoS, so it
completely ignores all the QoS parameters. Also don't upload the parameters,
if QoS is disabled.Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
The calculated values for the ACK timeout and ACK
consume time are different then the values as
used by the Legacy drivers.After testing from James Ledwith it appeared that
the calculated values caused a high amount of TX
failures, and the values from the Legacy drivers
were the most optimal to prevent TX failure due to
excessive retries.The symptoms of this problem:
- Rate control module always falls back to 1Mbs
- Low throughput when bitrate was fixedPossible side-effects (not confirmed but highly likely)
- Problems with DHCP
- Broken connections due to lack of probe responseThis should fix at least:
Kernel bugzilla reports: [13362], [13009], [9273]
Fedora bugzilla reports: [443203]
but possible some additional bugs as well.Signed-off-by: Ivo van Doorn
Signed-off-by: John W. Linville -
PCMCIA support works well and is not experimental anymore.
Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
apply the conformance test limits (CTL) stored in the eeprom upon
the values calculated for the tx power (ar->power_*).This is based on the implementation in the vendor driver
(hal/hpmain.c, line 3700 ff.) with one difference:
If any ctl mode isn't found in the eeprom, we fall back to the "lower",
legacy modes (5GHT20,11A or 2GHT20,11G,11B). Otus only did 5GHT20->11A.Currently CTL are applied for the FCC group only.
Signed-off-by: Joerg Albert
Signed-off-by: John W. Linville -
The ar9170 driver needs the defines for conformance test limit groups
and cannot include regd_common.hSigned-off-by: Joerg Albert
Acked-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
SSB modinit should not succeed, if busattach failed.
Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville -
This removes the SHM spinlock.
SHM is protected by wl->mutex.Signed-off-by: Michael Buesch
Tested-by: Larry Finger
Signed-off-by: John W. Linville -
This removes the PIO RX work. It's not needed anymore, because
we can sleep in the threaded interrupt handler.Signed-off-by: Michael Buesch
Tested-by: Larry Finger
Signed-off-by: John W. Linville -
This removes the DMA/PIO queue locks. Locking is handled by
wl->mutex now.Signed-off-by: Michael Buesch
Tested-by: Larry Finger
Signed-off-by: John W. Linville -
This removes the TX spinlock and defers TX to a workqueue to allow
locking wl->mutex instead and to allow sleeping for register accesses.Signed-off-by: Michael Buesch
Tested-by: Larry Finger
Signed-off-by: John W. Linville -
Use a threaded IRQ handler to allow locking the mutex and
sleeping while executing an interrupt.
This removes usage of the irq_lock spinlock, but introduces
a new hardirq_lock, which is _only_ used for the PCI/SSB lowlevel
hard-irq handler. Sleeping busses (SDIO) will use mutex instead.Signed-off-by: Michael Buesch
Tested-by: Larry Finger
Signed-off-by: John W. Linville -
cfg80211 is now *the* wireless configuration API. Lets also
give a little explanation as to what it is and refer people to
the wireless wiki for more information.Cc: Johannes Berg
Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
This patch ports some code from the vendor driver, which is
supposed to upload the right calibration values for the
chosen frequency.In theory, this should give a better range and throughput
for all users with the open, or one-stage firmware.Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
CHANNEL_G has to be set for 2GHZ channels since
IS_CHAN_G() checks for this in channelFlags and not in
chanmode. To make things messier, ath9k_hw_process_ini()
checks for CHANNEL_G in chanmode and not in channelFlags.
The supreme, brain-searing fix is to set the
flag in both cases.Signed-off-by: Sujith
Signed-off-by: John W. Linville -
BAR frames have to be sent to mac80211 only if the
current channel is HT. Also, move the macro to
enum ath9k_rx_filter.Signed-off-by: Sujith
Signed-off-by: John W. Linville -
ath9k ahb requests an IRQ and indicates 'ath9k' claimed it,
ath9k pci requests an IRQ and indicates 'ath' claims it;
since 'ath' is another module sync both ahb and pci to claim
the irq using 'ath9k'.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
We've cleaned up ath_init_device() and its children enough
to pass meaninful errors back from probe. When this fails
it means our device could not be initialized and a meaninful
error will have been passed.Do the same for request_irq() and also synchronize the error
messages while at it.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
The -ENOMEM was never being passed on failure.
While at it use dev_err() as ahb does upon failure.Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville -
This patch adds the initialisation of some PHY registers
from the modal_header[] values in the EEPROM
(see otus/hal/hpmain.c, line 333 ff.)Signed-off-by: Joerg Albert
Acked-by: Christian Lamparter
Signed-off-by: John W. Linville
06 Sep, 2009
6 commits
-
This patch adds a classful dummy scheduler which can be used as root qdisc
for multiqueue devices and exposes each device queue as a child class.This allows to address queues individually and graft them similar to regular
classes. Additionally it presents an accumulated view of the statistics of
all real root qdiscs in the dummy root.Two new callbacks are added to the qdisc_ops and qdisc_class_ops:
- cl_ops->select_queue selects the tx queue number for new child classes.
- qdisc_ops->attach() overrides root qdisc device grafting to attach
non-shared qdiscs to the queues.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
It will be used in a following patch by the multiqueue qdisc.
Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
Currently the multiqueue integration with the qdisc API suffers from
a few problems:- with multiple queues, all root qdiscs use the same handle. This means
they can't be exposed to userspace in a backwards compatible fashion.- all API operations always refer to queue number 0. Newly created
qdiscs are automatically shared between all queues, its not possible
to address individual queues or restore multiqueue behaviour once a
shared qdisc has been attached.- Dumps only contain the root qdisc of queue 0, in case of non-shared
qdiscs this means the statistics are incomplete.This patch reintroduces dev->qdisc, which points to the (single) root qdisc
from userspace's point of view. Currently it either points to the first
(non-shared) default qdisc, or a qdisc shared between all queues. The
following patches will introduce a classful dummy qdisc, which will be used
as root qdisc and contain the per-queue qdiscs as children.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
The class argument to the ->graft(), ->leaf(), ->dump(), ->dump_stats() all
originate from either ->get() or ->walk() and are always valid.Remove unnecessary checks.
Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
Some schedulers don't support creating, changing or deleting classes.
Make the respective callbacks optionally and consistently return
-EOPNOTSUPP for unsupported operations, instead of currently either
-EOPNOTSUPP, -ENOSYS or no error.In case of sch_prio and sch_multiq, the removed operations additionally
checked for an invalid class. This is not necessary since the class
argument can only orginate from ->get() or in case of ->change is 0
for creation of new classes, in which case ->change() incorrectly
returned -ENOENT.As a side-effect, this patch fixes a possible (root-only) NULL pointer
function call in sch_ingress, which didn't implement a so far mandatory
->delete() operation.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
Some qdiscs don't support attaching filters. Handle this centrally in
cls_api and return a proper errno code (EOPNOTSUPP) instead of EINVAL.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller
05 Sep, 2009
10 commits
-
If the parent qdisc doesn't support classes, use EOPNOTSUPP.
If the parent class doesn't exist, use ENOENT. Currently EINVAL
is returned in both cases.Additionally check whether grafting is supported and remove a now
unnecessary graft function from sch_ingress.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
CC net/netlink/genetlink.o
net/netlink/genetlink.c: In function ‘genl_register_mc_group’:
net/netlink/genetlink.c:139: warning: ‘err’ may be used uninitialized in this functionFrom following the code 'err' is initialized, but set it to zero to
silence the warning.Signed-off-by: Brian Haley
Signed-off-by: David S. Miller -
Since our TSN map is capable of holding at most a 4K chunk gap,
there is no way that during this gap, a stream sequence number
(unsigned short) can wrap such that the new number is smaller
then the next expected one. If such a case is encountered,
this is a protocol violation.Signed-off-by: Vlad Yasevich
-
Use sctp_packet_reset() instead of dup code.
Signed-off-by: Wei Yongjun
Signed-off-by: Vlad Yasevich -
This shrinks the size of struct sctp_association a little.
Signed-off-by: Wei Yongjun
Signed-off-by: Vlad Yasevich -
This patch introduces a new sysctl option to make IPv4 Address Scoping
configurable .In networking environments where DNAT rules in iptables prerouting
chains convert destination IP's to link-local/private IP addresses,
SCTP connections fail to establish as the INIT chunk is dropped by the
kernel due to address scope match failure.
For example to support overlapping IP addresses (same IP address with
different vlan id) a Layer-5 application listens on link local IP's,
and there is a DNAT rule that maps the destination IP to a link local
IP. Such applications never get the SCTP INIT if the address-scoping
draft is strictly followed.This sysctl configuration allows SCTP to function in such
unconventional networking environments.Sysctl options:
0 - Disable IPv4 address scoping draft altogether
1 - Enable IPv4 address scoping (default, current behavior)
2 - Enable address scoping but allow IPv4 private addresses in init/init-ack
3 - Enable address scoping but allow IPv4 link local address in init/init-ackSigned-off-by: Bhaskar Dutta
Signed-off-by: Vlad Yasevich -
We used to perform 2 routing lookups for a new transport: one
just for path mtu detection, and one to actually route to destination
and path mtu update when sending a packet. There is no point in doing
both of them, especially since the first one just for path mtu doesn't
take into account source address and sometimes gives the wrong route,
causing path mtu updates anyway.We now do just the one call to do both route to destination and get
path mtu updates.Signed-off-by: Vlad Yasevich
-
This shrinks the size of sctp_packet a little.
Signed-off-by: Vlad Yasevich
-
We currently track if AUTH has been bundled using the 'auth'
pointer to the chunk. However, AUTH is disallowed after DATA
is already in the packet, so we need to instead use the
'has_auth' field.Signed-off-by: Vlad Yasevich
-
The packet information does not reset after packet transmit, this
may cause some problems such as following DATA chunk be sent without
AUTH chunk, even if the authentication of DATA chunk has been
requested by the peer.Signed-off-by: Wei Yongjun
Signed-off-by: Vlad Yasevich