The first part of build_channel_array()identifies the number of enabled channels.
Further down this count is used to allocate the ci_array. The next section parses the
scan_elements directory again, and fills ci_array regardless if the channel is enabled or not.
So if less than available channels are enabled ci_array memory is overflowed.
This fix makes sure that we allocate enough memory. But the whole approach looks a bit
cumbersome to me. Why not allocate memory for MAX_CHANNLES, less say 64
(I never seen a part with more than that channels). And skip the first part entirely.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
IIO: ADC: New driver for the AD7298 8-channel SPI ADC
This patch adds support for the
AD7298: 8-Channel, 1MSPS, 12-Bit SAR ADC with Temperature Sensor
via SPI bus.
This patch replaces the existing ad7298.c driver completely.
It was necessary since, the old driver did not comply with the
IIO ABI for such devices.
Changes since V1:
IIO: ADC: New driver for the AD7298 8-channel SPI ADC
Add documentation for new sysfs file tempX_input.
Simplify bit defines.
Remove outdated comments.
Fix indention style.
ad7298_show_temp():
Add locking.
Simplify temperature calculation.
Change temperature result from degrees into milli degrees Celsius.
Rename file according to new sysfs ABI documentation
This driver adds mouse support to the hyper-v subsystem.
The code was originally written by Citrix, modified heavily by Hank at
Microsoft, and then further by me, to get it to build properly due to
all of the recent hyperv changes in the tree.
At the moment, it is marked "BROKEN" as it has not been tested well, and
it will conflict with other api changes that KY is doing, which I will
fix up later in this driver.
It still needs lots of work, and normal "cleanup". I don't recommend
anyone running it on their machine unless they are very brave and know
how to debug kernel drivers in a hyperv system.
Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Cc: K. Y. Srinivasan <kys@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Nils Faerber [Sat, 26 Feb 2011 22:45:42 +0000 (23:45 +0100)]
Staging: samsung-laptop: fix brightness level and add new device ids
The patch is against the 2.6.37 drivers/staging/samsung-laptop
driver and implements some extra enhancements.
It fixes an issue that the brightness would not change the level at
once as well as and some other oddities. It was resolved by
reallocated the SABI memory reagion using the "nocache" option.
The patch also introduces a new set of supported netbook models,
especially the NC10plus which was used for testing this patch. This new
set of models also offer 9 instead of just 8 brightness levels so it
also introduces an additional parameter for the models struct so that
models can define their own brightness range.
Signed-off-by: Nils Faerber <nils.faerber@kernelconcepts.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
staging: IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4
This patch adds support for the:
AD7606/AD7606-6/AD7606-4 8/6/4-Channel Data Acquisition
system (DAS) with 16-Bit, Bipolar, Simultaneous Sampling ADC.
Changes since V1:
IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4: Apply review feedback
Rename sysfs node oversampling to oversampling_ratio.
Kconfig: Add GPIOLIB dependency.
Use range in mV to better match HWMON.
Rename ad7606_check_oversampling.
Fix various comments and style.
Reorder is_visible cases.
Use new gpio_request_one/array and friends.
Drop check for SPI max_speed_hz.
Changes since V2:
IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4: Apply review feedback
Documentation: specify unit
Avoid raise condition in ad7606_scan_direct()
Check return value of bus ops read_block()
Changes since V3:
IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4: Add missing include file
Add linux/sched.h
Changes since V4:
IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4: Fix kconfig declaration
consistently use tristate to avoid configuration mismatches
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Pavan Savoy [Mon, 21 Feb 2011 04:41:16 +0000 (22:41 -0600)]
Bluetooth: btwilink driver
This is the bluetooth protocol driver for the TI WiLink7 chipsets.
Texas Instrument's WiLink chipsets combine wireless technologies
like BT, FM, GPS and WLAN onto a single chip.
This Bluetooth driver works on top of the TI_ST shared transport
line discipline driver which also allows other drivers like
FM V4L2 and GPS character driver to make use of the same UART interface.
Kconfig and Makefile modifications to enable the Bluetooth
driver for Texas Instrument's WiLink 7 chipset.
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Chris Ball <cjb@laptop.org> Cc: Jon Nettleton <jon.nettleton@gmail.com> Acked-By: Andres Salomon <dilinger@queued.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The cur_item variable from keyhelp.c is an index into a table of
messages. The following condition should always hold:
MSG_FUNCNAMES_START + cur_item <= MSG_FUNCNAMES_END.
The check in keyhelp.c was wrong. It allowed cur_item to be
incremented to an out-of-bounds value.
Signed-off-by: Christopher Brannon <chris@the-brannons.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Commit 1bd751c1abc1029e8a0ae63ef4f19357c735a2a3
("Staging: et131x: Clean up rxdma_csr") changed csr from bitfield to
u32, but failed to convert 2 uses of halt_status bit. It did:
- if (csr.bits.halt_status != 1)
+ if ((csr & 0x00020000) != 1)
which is wrong, because second version is always true.
Fix it.
This bug was found by coccinelle (http://coccinelle.lip6.fr/).
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
xgifb staging driver for XG20, XG21, XG40, XG42 frame buffer device
has a accelerator engine that never get used (XGIfb_accel is always 0).
Also the driver has a set of defines that hides the synchronization
mechanism used to access critical sections and a way to disable spinlocks
use at compile time.
In a earlier patch all the code that depends on the accelerator being active
was deleted because it was dead code. Since the only usage of this
synchronization defines were in that dead code, this patch removes all the
now unused spinlock conditional compilation logic.
Signed-off-by: Javier Martinez Canillas <martinez.javier@gmail.com> Acked-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Earlier patch removed code that never got executed because it depended on
XGIfb_accel variable value to de distinct than 0. But this variable is
always 0 in current driver.
That dead code used a set of functions that not remains unused.
This patch removes these unused functions.
Signed-off-by: Javier Martinez Canillas <martinez.javier@gmail.com> Acked-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
xgifb staging driver has code that dependens on XGIfb_accel != 0.
But as Dan Carpenter noticed, XGIfb_accel value is always 0 in current driver.
So there is code that never gets executed.
This patch removes this dead code.
Signed-off-by: Javier Martinez Canillas <martinez.javier@gmail.com> Acked-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Tomas Winkler [Mon, 21 Feb 2011 14:09:55 +0000 (16:09 +0200)]
staging/easycap: use USB_SUBCLASS_AUDIOSTREAMING instead of 0x02
use USB_SUBCLASS_AUDIOSTREAMING constant from usb/audio.h
instead of 0x02
Cc: Mike Thomas <rmthomas@sciolus.org> Cc: Dan Carpenter <error27@gmail.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Tomas Winkler [Mon, 21 Feb 2011 11:23:27 +0000 (13:23 +0200)]
staging/easycap: easycap_usb_probe: more indentation cleanups
Cc: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Reviewed-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Tomas Winkler [Mon, 21 Feb 2011 11:23:26 +0000 (13:23 +0200)]
staging/easycap: revamp inputset population code
make inputset population to be more compact and readable
Cc: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Reviewed-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Tomas Winkler [Mon, 21 Feb 2011 11:23:25 +0000 (13:23 +0200)]
staging/easycap: fix style issues in easycap_usb_probe function
fix some code styles and drop too verbose printouts
and non relevant code
Cc: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Reviewed-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Wed, 23 Feb 2011 11:48:53 +0000 (12:48 +0100)]
staging: brcm80211: added locks in wl_mac80211.c
Increasing robustness of the code, although no problem has been reported
in the field. Several code paths were unshielded for multi thread access.
Several lock acquisitions have been added to wl_mac80211.c
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Wed, 23 Feb 2011 11:48:52 +0000 (12:48 +0100)]
staging: brcm80211: removed locks around Mac80211 calls
A spinlock was acquired prior to calling the Mac80211 functions
ieee80211_wake_queues() and ieee80211_stop_queues() and Cfg80211 functions
wiphy_rfkill_set_hw_state() and wiphy_rfkill_start_polling().
This is not required and could even lead to instability. Therefore the locks
were removed.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Arend van Spriel [Tue, 22 Feb 2011 10:12:09 +0000 (11:12 +0100)]
staging: brcm80211: allow changing channel by mac80211 when associated
When associated on 5G the driver receives a probe request for 2G with
a 2G rate specified. The driver asserts as the operating band is still
5G when the probe request packet is given. Root cause was that ioctl
function did fail upon setting the channel as requested by mac80211
when we are associated.
Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Roland Vossen [Mon, 21 Feb 2011 08:07:12 +0000 (09:07 +0100)]
staging: brcm80211: bugfix for crash on heavy transmit traffic
With heavy transmit traffic, once in a while (range 15mins-1hr)
a tx packet was added to a full transmit queue. Under certain
conditions an other packet in the queue gets bumped to make room
for the new packet. This is not considered an error condition, but
normal operation. Despite that, there was an ASSERT(0) that caused
the driver to oops. The ASSERT(0) has been removed. Driver was tested
afterwards.
Signed-off-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Nitin Gupta [Fri, 18 Feb 2011 22:33:18 +0000 (17:33 -0500)]
staging: Allow sharing xvmalloc for zram and zcache
Both zram and zcache use xvmalloc allocator. If xvmalloc
is compiled separately for both of them, we will get linker
error if they are both selected as "built-in". We can also
get linker error regarding missing xvmalloc symbols if zram
is not built.
So, we now compile xvmalloc separately and export its symbols
which are then used by both of zram and zcache.
Vipin Mehta [Sun, 20 Feb 2011 15:00:38 +0000 (07:00 -0800)]
staging: ath6kl: Eliminate cfg80211 warnings
Cancel the pending scan operation once the interface is going down to
avoid warnings from the cfg80211 module. Once the interface is down,
cfg80211 checks for any pending scan requests and dumps a warning if it
finds one. It expects the driver to abort any ongoing scan operation
once the driver detects that the interface is going down.
Dan Carpenter [Sun, 20 Feb 2011 12:49:08 +0000 (15:49 +0300)]
staging: ath6kl: cleanup in SEND_FRAME ioctl
The original code was written in a funny way where every statement was
part of else if blocks. I broke them up into separate statements by
adding breaks on failure conditions.
Alan Cox [Tue, 22 Feb 2011 14:27:58 +0000 (14:27 +0000)]
staging: gma500: Intel GMA500 staging driver
This is an initial staging driver for the GMA500. It's been stripped out
of the PVR drivers and crunched together from various bits of code and
different kernels.
Currently it's unaccelerated but still pretty snappy even compositing with
the frame buffer X server.
Lots of work is needed to rework the ttm and bo interfaces from being
ripped out and then 2D acceleration wants putting back for framebuffer and
somehow eventually via DRM.
There is no support for the parts without open source userspace (video
accelerators, 3D) as per kernel policy.
Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Haiyang Zhang [Fri, 18 Feb 2011 23:05:52 +0000 (15:05 -0800)]
staging: hv: Remove unnecessary ASSERTs in netvsc_initialize()
These fields have been assigned in netvsc_drv_init() before calling
netvsc_initialize(), so there is no need to check them.
The ASSERTs were already commented out, and this patch removes
them.
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Vipin Mehta [Fri, 18 Feb 2011 21:13:16 +0000 (13:13 -0800)]
staging: ath6kl: Fixing disappearing of scan list due to jiffies wrap over
When jiffies wrap-over, all the BSS in the cache is removed. Wrap-over of
jiffies is not handled in the correct way. This cause the scan list to go
empty during this time for a small duration
Vipin Mehta [Fri, 18 Feb 2011 21:13:15 +0000 (13:13 -0800)]
staging: ath6kl: Fixing accidental overwriting of probed ssid list in the hardware
Fixing the code to avoid overwriting of the first index in the probed ssid
list maintained by the hardware. This index is used to store broadcast SSID.
Vipin Mehta [Fri, 18 Feb 2011 21:13:14 +0000 (13:13 -0800)]
staging: ath6kl: Adding state in driver to track the sme state
Adding state in driver to track the sme state. The connect/disconnect
events from the driver were messing up the state maintained within the
cfg80211 module.
Vipin Mehta [Fri, 18 Feb 2011 21:13:11 +0000 (13:13 -0800)]
staging: ath6kl: Add configuration for excessive TX retry threshold
Adding host side interface to configure the excessive TX retry threshold.
It is used by the target to determine disconnection triggers. Additionally,
some definitions have been added to header file wmi.h to bridge the gap
for the newly added command.
Vipin Mehta [Fri, 18 Feb 2011 21:13:05 +0000 (13:13 -0800)]
staging: ath6kl: Fixing target crash due to mismatch connect/disconnect
Firmware design requires a WMI_DISCONNECT_CMD for every WMI_CONNECT_CMD to
clear the firmware previous profile state. There is one case in linux host
driver where two WMI_CONNECT_CMD are given without a WMI_DISCONNECT_CMD.
This causes firmware state to mismatch causing an ASSERT. Use the driver
state variable arConnectPending to track whether a WMI_CONNECT_CMD is
issued to firmware.
Vipin Mehta [Fri, 18 Feb 2011 21:13:03 +0000 (13:13 -0800)]
staging: ath6kl: Fixing key settings for WPA/WPA2
A bug was observed during the reconnection phase in the WPA/WPA2-PSK scenario
where the EAPOL frames were going encrypted during an auto reconnection
attempt. The initial 4-way handshake would go fine but then the driver
was getting a command to set default keys sometime later. Setting of an
incorrect flag (TX_USAGE) in the hadrware was causing the EAPOL frames during
the subsequent 4-way handshake attempts to go encrypted causing the AP to
reject the station.
Vipin Mehta [Fri, 18 Feb 2011 21:13:02 +0000 (13:13 -0800)]
staging: ath6kl: Fixing a NULL pointer exception
The driver was dereferencing a NULL pointer because of the device instance
being registered via the set_wiphy_dev() function. The function
ar6000_avail_ev() was passing the argument as NULL instead of using the one
returned by the MMC stack through the probe callback.
Jerome Marchand [Thu, 17 Feb 2011 16:11:49 +0000 (17:11 +0100)]
Staging: zram: initialize device on first read
Currently the device is initialized when first write is done to the
device. Any read attempt before the first write would fail, including
"hidden" read the user may not know about (as for example if he tries
to write a partial block).
This patch initializes the device on first request, whether read or
write.
Jonathan Cameron [Fri, 11 Feb 2011 14:20:00 +0000 (14:20 +0000)]
staging:iio:gyro:adis16060 cleanup and dead code removal
Removed stubs related to buffering and triggering. Put them back
when they are actually needed.
Fixed line length issues.
Made a number of functions static as no longer in header.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>