opnsense-src/sys/dev/iicbus
Jason A. Harmening 0afebee290 Fix numerous issues in iic(4) and iicbus(4):
--Allow multiple open iic fds by storing addressing state in cdevpriv
--Fix, as much as possible, the baked-in race conditions in the iic
ioctl interface by requesting bus ownership on I2CSTART, releasing it on
I2CSTOP/I2CRSTCARD, and requiring bus ownership by the current cdevpriv
to use the I/O ioctls
--Reduce internal iic buffer size and remove 1K read/write limit by
iteratively calling iicbus_read/iicbus_write
--Eliminate dynamic allocation in I2CWRITE/I2CREAD
--Move handling of I2CRDWR to separate function and improve error handling
--Add new I2CSADDR ioctl to store address in current cdevpriv so that
I2CSTART is not needed for read(2)/write(2) to work
--Redesign iicbus_request_bus() and iicbus_release_bus():
    --iicbus_request_bus() no longer falls through if the bus is already
owned by the requesting device.  Multiple threads on the same device may
want exclusive access.  Also, iicbus_release_bus() was never
device-recursive anyway.
    --Previously, if IICBUS_CALLBACK failed in iicbus_release_bus(), but
the following iicbus_poll() call succeeded, IICBUS_CALLBACK would not be
issued again
    --Do not hold iicbus mtx during IICBUS_CALLBACK call.  There are
several drivers that may sleep in IICBUS_CALLBACK, if IIC_WAIT is passed.
    --Do not loop in iicbus_request_bus if IICBUS_CALLBACK returns
EWOULDBLOCK; instead pass that to the caller so that it can retry if so
desired.

Differential Revision:	https://reviews.freebsd.org/D2140
Reviewed by:	imp, jhb, loos
Approved by:	kib (mentor)
2015-04-21 11:50:31 +00:00
..
ad7417.c
ad7418.c
adm1030.c Move the adm1030 driver to the proper location, and rename it. 2014-10-16 01:32:22 +00:00
adt746x.c Use proper signed types. The ADT746x uses signed 8-bit numbers for the 2015-01-18 07:08:06 +00:00
ds133x.c
ds1307.c Add a driver for the Dallas/Maxim DS1307, another common i2c RTC. 2015-03-20 19:51:24 +00:00
ds1307reg.h Add a driver for the Dallas/Maxim DS1307, another common i2c RTC. 2015-03-20 19:51:24 +00:00
ds1374.c
ds1631.c
ds1672.c
ds1775.c
ds3231.c Fix off-by-one bugs. 2015-03-10 14:55:05 +00:00
ds3231reg.h Add a driver for the Maxim DS3231 a low-cost, extremely accurate (+-2PPM) 2015-02-28 19:02:44 +00:00
icee.c
if_ic.c Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
iic.c Fix numerous issues in iic(4) and iicbus(4): 2015-04-21 11:50:31 +00:00
iic.h Fix numerous issues in iic(4) and iicbus(4): 2015-04-21 11:50:31 +00:00
iicbb.c
iicbb_if.m
iicbus.c Allow i2c bus speed to be configured via hints, FDT data, and sysctl. 2014-11-18 01:54:31 +00:00
iicbus.h Allow i2c bus speed to be configured via hints, FDT data, and sysctl. 2014-11-18 01:54:31 +00:00
iicbus_if.m Fix numerous issues in iic(4) and iicbus(4): 2015-04-21 11:50:31 +00:00
iicoc.c
iicoc.h
iiconf.c Fix numerous issues in iic(4) and iicbus(4): 2015-04-21 11:50:31 +00:00
iiconf.h Revert r268543. 2014-07-12 06:23:42 +00:00
iicsmb.c
lm75.c Fix off-by-one bugs. 2015-03-10 14:55:05 +00:00
max6690.c Check error return from reading integer part of temperature. 2014-10-12 23:48:55 +00:00
pcf8563.c
pcf8563reg.h
s35390a.c