Commit Graph

13 Commits

Author SHA1 Message Date
Vasiliy Kulikov
8db3271cb2 staging: ath6kl: use free_netdev(netdev) instead of kfree()
It is not guaranteed that free_netdev() is macro.
Freeing netdev without free_netdev() leads to net, tx leaks.
I might lead to dereferencing freed pointer.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-30 04:14:08 -07:00
Vipin Mehta
9b906a33e0 staging: ath6kl: Fixing a race condition during initialization
The commit fixes a race condition in the initialization portion of the
driver. The problem was observed while testing with the kernel in the
staging-next tree. The wait on the ready event is signalled prematurely
before setting the arVersion.wlan_ver and arVersion.abi_ver. The code
waiting on this semaphore checks for the validity of these values and
hence may proceed with an un-updated values of these fields. The wakeup
signal is now sent after these values are set.

Signed-off-by: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-20 17:02:02 -07:00
Vipin Mehta
103281df0b staging: ath6kl: Fixing a compile error
The commit fixes a compilation error that was encountered while using
a specific kernel configuration file. The problem was the use of some
functions defined in <linux/semaphore.h> without including the header
file explicitly. It was probably working before because of the
dependency getting implicitly satisfied via some other header file.

Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-20 17:02:02 -07:00
Vipin Mehta
86fc4c897e staging: ath6kl: Removing duplicate includes
Eliminating the inclusion of the same header file more than once.
The files being removed are already included by osapi_linux.h.

Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-20 17:02:01 -07:00
Andy Shevchenko
97d2354518 staging: ath6kl: '&pointer[0]' to 'pointer' fix
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-20 16:10:56 -07:00
Joe Perches
03a6cddbb8 staging: Use static const char * const where possible
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-16 13:02:37 -07:00
Andy Shevchenko
fa1ae16c97 staging: ath6kl: use '%pM' format to print MAC address
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-16 12:26:13 -07:00
Vipin Mehta
fbc69d379c staging: ath6kl: Eliminating the symlink to 2.0 header files
Moving the AR6002 hw 2.0 specific register definitions files from
the hw.0 directory to a new directory, 'hw' within hw2.0.

Signed-off-by: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-08 21:26:41 -07:00
Vipin Mehta
b6c78757f9 staging: ath6kl: Fixing a compilation error introduced by commit ec53d6123b.
Signed-off-by: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-08 02:02:26 -07:00
Andy Shevchenko
c8e7978ee4 staging: ath6kl: use native methods from kernel library
There are already implemented methods such hex_to_bin() or isxdigit() in
the kernel. Let's use them.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Vipin Mehta <Vipin.Mehta@Atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-08 01:59:54 -07:00
Vasiliy Kulikov
ec53d6123b staging: ath6kl: check return code of get_user and put_user
Function get_user may fail. Check for it.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-05 16:59:53 -07:00
Jiri Slaby
2a4724a76d Staging: ath6kl, remove unneeded ptr checking
In wmi_bssInfo_event_rx, there is unneeded check for bss, because it
is in the branch where the bss is checked to be non-null already.

Remove the superfluous check.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-04 21:26:06 -07:00
Vipin Mehta
30295c8936 staging: add ath6kl driver for AR6003 chip
AR6003 is a single stream, SDIO based 802.11 chipset from
Atheros optimized for mobile and embedded devices. ath6kl is a
cfg80211 driver for AR6003 and supports both the station and
AP mode of operation.

Station mode supports 802.11 a/b/g/n with HT20 on 2.4/5GHz and
HT40 only on 5GHz. Some of the other features include WPA/WPA2,
WPS, WMM, WMM-PS, and BT coexistence. AP mode can be operated
only in b/g mode with support for a subset of features mentioned
above.

The driver supports cfg80211 but comes with its own set of
wext ioctls which have historically supported some of our
customers with features like BT 3.0 and AP mode of operation.

For further details, please refer to:

http://wireless.kernel.org/en/users/Drivers/ath6kl

The driver requires firmware that runs on the chip's network
processor. The majority of it is stored in ROM. The binaries
that are downloaded and executed from RAM are as follows:

1) Patch against the code in ROM for bug fixes and feature
   enhancements.
2) Code to copy the data from the OTP region of the memory
   into RAM.
3) Calibration file carrying board specific data.

The above files need to be present in the directory
'/lib/firmware/ath6k/AR6003/hw2.0/' for the driver to initialize
the chip upon enumeration. The files can be downloaded from the
link specified at the following location:

http://wireless.kernel.org/en/users/Drivers/ath6kl#Download

This driver is only provided in the interim while we work on
the mac80211 replacement, ath6k. Once the mac80211 driver
achieves feature parity with the ath6kl driver, the ath6kl will
be deprecated and removed from staging.

Signed-off-by: Vipin Mehta <vmehta@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-02 11:43:26 -07:00