soc: Fix issues with 64-bit stores to IO bridge
The IO bridge would latch the top half of write data and selection signals
when issuing the second downstream store. Unfortunately at this point the
bridge has already "accepted" the upstream store from the core (due to
stall being 0 on the cycle when stb/cyc are 1), so the values on the
wishbone signals aren't stable and might already reflect a subsequent
wishbone command.
This causes occasional data corruption of 64-bit stores through the IO
bridge.
While at it, take out a bunch of useless conditions on the data latch
path. It doesn't matter whether we is 0 or 1, we can just always latch
the data, the destination will decide whether to use the content or not,
which should save a bit of hardware.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>