diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2018-06-07 11:26:46 +1000 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2018-06-07 11:26:46 +1000 |
commit | 2db7a8dadc060547f24a991e1fe2c500d3cc7c14 (patch) | |
tree | 4a9f62de8c6174352cd221544f883515099ca430 /dist-bin | |
parent | 39c7aeb82ed5d850cd55065eaedfb8c0cccef46f (diff) | |
download | cf-fsi-2db7a8dadc060547f24a991e1fe2c500d3cc7c14.tar.gz cf-fsi-2db7a8dadc060547f24a991e1fe2c500d3cc7c14.zip |
Fix problems with GPIO usage
The "value" register doesn't return the last data written when
read but returns the value sampled on the line, which may or
may not be the value written for an output GPIO. For example
it can be delayed by the synchronizers.
So whenever the CF reads the value to adjust its caches it needs
to use the "data read" register intead, otherwise it can clobber
values set by Linux when doing handshaking.
Also don't use %d0 for DTRA, use %d1 to avoid interrupts clobber
and do read/modify/write cycles on it as it's not a permanent
cached value, just a temporary.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'dist-bin')
0 files changed, 0 insertions, 0 deletions