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.
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:
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.
Nitin Gupta [Mon, 9 Aug 2010 17:26:48 +0000 (22:56 +0530)]
Staging: zram: Remove need for explicit device initialization
Currently, the user has to explicitly write a positive value to
initstate sysfs node before the device can be used. This event
triggers allocation of per-device metadata like memory pool,
table array and so on.
We do not pre-initialize all zram devices since the 'table' array,
mapping disk blocks to compressed chunks, takes considerable amount
of memory (8 bytes per page). So, pre-initializing all devices will
be quite wasteful if only few or none of the devices are actually
used.
This explicit device initialization from user is an odd requirement and
can be easily avoided. We now initialize the device when first write is
done to the device.
Nitin Gupta [Mon, 9 Aug 2010 17:26:47 +0000 (22:56 +0530)]
Staging: zram: Replace ioctls with sysfs interface
Creates per-device sysfs nodes in /sys/block/zram<id>/
Currently following stats are exported:
- disksize
- num_reads
- num_writes
- invalid_io
- zero_pages
- orig_data_size
- compr_data_size
- mem_used_total
By default, disksize is set to 0. So, to start using
a zram device, fist write a disksize value and then
initialize device by writing any positive value to
initstate. For example:
# initialize /dev/zram0 with 50MB disksize
echo 50*1024*1024 | bc > /sys/block/zram0/disksize
echo 1 > /sys/block/zram0/initstate
When done using a disk, issue reset to free its memory
by writing any positive value to reset node:
echo 1 > /sys/block/zram0/reset
This change also obviates the need for 'rzscontrol' utility.
Julia Lawall [Sat, 28 Aug 2010 15:41:00 +0000 (17:41 +0200)]
staging: rtl8193*: Remove double test
The 1 element of the array is tested twice. Change the code so that the
remaining 3 element of the array is tested instead of testing the 1 element
a second time.
The sematic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@expression@
expression E;
@@
(
* E
|| ... || E
|
* E
&& ... && E
)
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arjan van de Ven [Wed, 25 Aug 2010 14:22:10 +0000 (15:22 +0100)]
Staging: mrst-touchscreen: fix channel allocation in the touch screen driver
the touch screen driver tries to find a range of free channels (which
are an array of bytes), by scanning for the "end of used channel" marker.
however it tries to be WAAAAY too smart and does 32 bit logic on 8 bit
quantities, and in the process completely gets it wrong
(repeatedly read the same register instead of incrementing in the loop,
assuming that if any of the 4 bytes in the 32 byte quantity is free,
all four are free, returning the channel number divided by 4 rather than
the actual first free channel number)
On the setting side, the same mistakes are made by and large; changed
this to just use the byte SCU write functions....
with these fixes we go from a completely non detected touchscreen to
something that appears to completely get detected.
(after also fixing the ordering issue that Jacobs patch should solve)
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pavan Savoy [Thu, 19 Aug 2010 18:08:51 +0000 (14:08 -0400)]
Staging: ti-st: remove st_get_plat_device
In order to support multiple ST platform devices, a new symbol
'st_get_plat_device' earlier needed to be exported by the arch/XX/brd-XX.c
file which intends to add the ST platform device.
On removing this dependency, now inside ST driver maintain the array of
ST platform devices that would be registered.
As of now let id=0, as and when we end up having such platforms
where mutliple ST devices can exist, id would come from
protocol drivers (BT, FM and GPS) as to on which platform device
they want to register to.
Neil Munro [Sat, 14 Aug 2010 22:39:51 +0000 (23:39 +0100)]
Staging: RT2860: Fixed all warnings and errors in the iface directory
I have cleaned both files inside the iface directory (fileo rtmp_pci.h
and rtmp_usb.h). I am not sure about some of the changes I have made
however my adjustments have solved all errors. There were also a few
issues on my machine with ap.h on my machine, however I have since
cleaned that too.
Signed-off-by: Neil Munro <neilmunro@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Randy Dunlap [Tue, 10 Aug 2010 15:46:44 +0000 (08:46 -0700)]
Staging: xgifb: fix lots of sparse warnings
Fix many sparse warnings about data or functions being static.
Fix many sparse warnings about data or functions not being used
(put them inside #if 0/#endif blocks).
Fix sparse warnings about 0 being used for NULL.
Fixed a small bit of source formatting when those lines were being
modified anyway, but there is still lots of this yet to be done.
Jarod Wilson [Tue, 17 Aug 2010 21:41:08 +0000 (17:41 -0400)]
Staging: lirc: fix compiler warning
On Fri, Aug 13, 2010 at 03:38:40PM +0200, Dan Carpenter wrote:
> Speak of left over stuff, it's weird that I didn't notice this before
> but gcc complains about an unitialized variable in
> imon_incoming_packet().
>
> drivers/staging/lirc/lirc_imon.c: In function ‘imon_incoming_packet’:
> drivers/staging/lirc/lirc_imon.c:661: warning: ‘chunk_num’ may be used
> uninitialized in this function
>
> I don't know how to fix that, but it looks important.
Ew. Yeah, that doesn't look so hot like it is right now. The old lirc_imon
driver had chunk_num = buf[7], and made much more extensive use of
chunk_num. Simply removing chunk_num and using buf[7] should be fine.
Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Kulikov Vasiliy [Fri, 6 Aug 2010 19:52:57 +0000 (23:52 +0400)]
staging: cx25821: call disable_pci_device() if pci_probe() failed
Driver should call disable_pci_device() if it returns from pci_probe()
with error. Also it must not be called if pci_request_region() fails as
it means that somebody uses device resources and rules the device.
Dan Carpenter [Tue, 10 Aug 2010 05:42:25 +0000 (07:42 +0200)]
Staging: quickstart: acpi_status is unsigned
acpi_bus_register_driver() returns an int, not acpi_status. It returns
zero on success and negative error codes on failure, but acpi_status is
unsigned. We can just use "ret" here.
Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Dan Carpenter [Tue, 10 Aug 2010 06:15:52 +0000 (08:15 +0200)]
Staging: rtl8192e: add curly braces to if statement
In the original code there was some extra semicolons after the if
statement:
if (!channel_map[ieee->current_network.channel]);
^^^
>From the indenting it looked like that should be curly braces instead.
Also I made some white space changes to stop checkpatch.pl from
complaining.
Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Dan Carpenter [Tue, 10 Aug 2010 06:00:12 +0000 (08:00 +0200)]
Staging: vt6656: problems in error handling
The first kfree(pDevice) is pointless because pDevice is NULL. The
second kfree(pDevice) is a double free because pDevice is the driver's
private data and that is already freed by free_netdev(netdev). Also the
free_netdev() error path doesn't call usb_put_dev().
Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
staging: tidspbridge: Remove services.c and services.h
The services_init() and services_exit() functions don't do anything,
so they are removed, and as these are the only two functions defined
in services.c and services.h, then these files are also removed.
Signed-off-by: Ivan Gomez Castellanos <ivan.gomez@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
As the services directory is going to be removed, the cfg_get_exec_file
function has also to be removed.
This patch also avoids a possible NULL pointer dereference in function
cfg_get_exec_file(), when drv_datap is checked for NULL and then pass
drv_datap->base_img as argument to strlen().
Signed-off-by: Ivan Gomez Castellanos <ivan.gomez@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
staging: tidspbridge: Remove cfg_get_dev_object() and do a trivial cleanup
The cfg_get_dev_object function is only used in one place and because of
its simplicity, it can be removed.
The parameter *value can be left uninitialized if the strcmp() returns a
nonzero value, so in the function dev_remove_device(), the hdev_obj could
be used uninitialized and could be dereferenced in dev_destroy_device().
This patch fixes this issue, and also removes the dev_obj pointer which
is not used.
Signed-off-by: Ivan Gomez Castellanos <ivan.gomez@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
As the services directory is going to be removed, this patch is needed.
The function cfg_get_auto_start() only assigns a value to the flag
tmp, and it is only called by the function api_init_complete2(). So
the function cfg_get_auto_start() is not required.
Signed-off-by: Ivan Gomez Castellanos <ivan.gomez@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>