summaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-sa1100.c
diff options
context:
space:
mode:
authorRoland Stigge <stigge@antcom.de>2012-08-08 09:42:32 +0200
committerWolfram Sang <w.sang@pengutronix.de>2012-09-12 17:52:44 +0200
commitc076ada4e4aaf45e1a31ad6de7c6cce36081e045 (patch)
tree0c1676608ef8316d271ed0a54f275c21feb3008e /drivers/rtc/rtc-sa1100.c
parentb3aafe80c83097403d2b5edccfc440fac3d5f028 (diff)
downloadop-kernel-dev-c076ada4e4aaf45e1a31ad6de7c6cce36081e045.zip
op-kernel-dev-c076ada4e4aaf45e1a31ad6de7c6cce36081e045.tar.gz
i2c: pnx: Fix read transactions of >= 2 bytes
On transactions with n>=2 bytes, the controller actually wrongly clocks in n+1 bytes. This is caused by the (wrong) assumption that RFE in the Status Register is 1 iff there is no byte already ordered (via a dummy TX byte). This lead to the implementation of synchronized byte ordering, e.g.: Dummy-TX - RX - Dummy-TX - RX - ... But since RFE actually stays high after some Dummy-TX, it rather looks like: Dummy-TX - Dummy-TX - RX - Dummy-TX - RX - (RX) The last RX byte is clocked in by the bus controller, but ignored by the kernel when filling the userspace buffer. This patch fixes the issue by asking for RX via Dummy-TX asynchronously. Introducing a separate counter for TX bytes. Signed-off-by: Roland Stigge <stigge@antcom.de> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Diffstat (limited to 'drivers/rtc/rtc-sa1100.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud