Revision b23ff0e9330e4b11e18af984d50573598e10e7f9 authored by Mahesh Salgaonkar on 21 January 2010, 12:55:16 UTC, committed by Frederic Weisbecker on 28 January 2010, 13:15:51 UTC
On a given architecture, when hardware breakpoint registration fails
due to un-supported access type (read/write/execute), we lose the bp
slot since register_perf_hw_breakpoint() does not release the bp slot
on failure.
Hence, any subsequent hardware breakpoint registration starts failing
with 'no space left on device' error.

This patch introduces error handling in register_perf_hw_breakpoint()
function and releases bp slot on error.

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: K. Prasad <prasad@linux.vnet.ibm.com>
Cc: Maneesh Soni <maneesh@in.ibm.com>
LKML-Reference: <20100121125516.GA32521@in.ibm.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
1 parent 7f5102c
Raw File
isl29003
Kernel driver isl29003
=====================

Supported chips:
* Intersil ISL29003
Prefix: 'isl29003'
Addresses scanned: none
Datasheet:
http://www.intersil.com/data/fn/fn7464.pdf

Author: Daniel Mack <daniel@caiaq.de>


Description
-----------
The ISL29003 is an integrated light sensor with a 16-bit integrating type
ADC, I2C user programmable lux range select for optimized counts/lux, and
I2C multi-function control and monitoring capabilities. The internal ADC
provides 16-bit resolution while rejecting 50Hz and 60Hz flicker caused by
artificial light sources.

The driver allows to set the lux range, the bit resolution, the operational
mode (see below) and the power state of device and can read the current lux
value, of course.


Detection
---------

The ISL29003 does not have an ID register which could be used to identify
it, so the detection routine will just try to read from the configured I2C
addess and consider the device to be present as soon as it ACKs the
transfer.


Sysfs entries
-------------

range:
	0: 0 lux to 1000 lux (default)
	1: 0 lux to 4000 lux
	2: 0 lux to 16,000 lux
	3: 0 lux to 64,000 lux

resolution:
	0: 2^16 cycles (default)
	1: 2^12 cycles
	2: 2^8 cycles
	3: 2^4 cycles

mode:
	0: diode1's current (unsigned 16bit) (default)
	1: diode1's current (unsigned 16bit)
	2: difference between diodes (l1 - l2, signed 15bit)

power_state:
	0: device is disabled (default)
	1: device is enabled

lux (read only):
	returns the value from the last sensor reading

back to top