> > I wonder, does the device need the read, or is the bus_space_barrier() > > insufficient to flush the write to the device? > > I thave no idea. It works without the read on some machines - might be > a quirk in the Blade 2500's hardware. Either way we can probably get > rid of the bus_space_barrier().
IIRC the pcf8584 has a timing constraint on consecutive bus writes. Something like 5 clocks minimum delay at 10MHz. The dummy read may be a sun-devised way to ensure this constraint is met (I don't think the ebus hardware enforces it).