summaryrefslogtreecommitdiffstats
path: root/drivers/i2c/busses/i2c-ali1563.c
diff options
context:
space:
mode:
authorShinya Kuribayashi <shinya.kuribayashi@necel.com>2009-11-06 21:51:18 +0900
committerBen Dooks <ben-linux@fluff.org>2009-12-09 00:19:12 +0000
commit8f588e40c788e63756ca1028c253f9f663d7d1c5 (patch)
treedbebba165e7e926206b5d244ea26da4b32d966e8 /drivers/i2c/busses/i2c-ali1563.c
parent69151e532c97f983b498ea03e20b1598a5487318 (diff)
downloadblackbird-op-linux-8f588e40c788e63756ca1028c253f9f663d7d1c5.tar.gz
blackbird-op-linux-8f588e40c788e63756ca1028c253f9f663d7d1c5.zip
i2c-designware: i2c_dw_xfer_msg: Fix error handling procedures
Current error handling procedures are not good in two respects: * Forgot to mark dev->cmd_complete as "completed" on errors Once an I2C transaction is initiated, wait_for_completion_ interruptible_timeout() waits for dev->cmd_complete to be completed. We have to take care of it whenever an error is detected, otherwise we will have a needless HZ timeout. * Forgot to disable interrupts In the previous patch, interrupt mask operations have been changed. We don't disable interrupts at the end of the interrupt handler any more, and try to keep RX_FULL (and TX_EMPTY if required) enabled during the transaction so that we can send longer data than the size of Tx/Rx FIFO. If an error is detected, we need to disable interrupts before quitting current transaction. We can work around above points using dev->msg_err effectively. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'drivers/i2c/busses/i2c-ali1563.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud