summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio/stdio.c
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2015-10-09 22:28:56 +0000
committerian <ian@FreeBSD.org>2015-10-09 22:28:56 +0000
commit0fec972d61176205b027afb563c843df9b03d010 (patch)
tree9b03e111cea4dadc3df9db016c8586aadc44cbb7 /lib/libc/stdio/stdio.c
parent626dfed37b2d9cc2220210fac8774afe30c40fcf (diff)
downloadFreeBSD-src-0fec972d61176205b027afb563c843df9b03d010.zip
FreeBSD-src-0fec972d61176205b027afb563c843df9b03d010.tar.gz
Mostly rewrite the imx i2c driver. This started out as an attempt to fix
one specific problem: the driver didn't check for ACK/NAK after writing a slave address byte to the bus, and some slaves signal that they are busy (such as when completing an internal write to flash memory) by sending a NAK in response to being addressed. While working on that problem I discovered that the driver's handling of error conditions in general didn't match the state transition diagram in the reference manual, and making that right resulted in a lot of code reorganization. Along the way various other changes also happened... - Remove a mutex that wasn't protecting anything. - Remove some mystery DELAY()s, document the few that remain. - Use pause_sbt(9) to yield the processor for the bulk of the time it takes to transfer each byte rather than busy-polling the whole time. - Disable the controller when no transfers are in progress; since we don't operate in slave mode, there's no reason to run the hardware. - Remove a bunch of unecessary code from probe().
Diffstat (limited to 'lib/libc/stdio/stdio.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud