Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/ic



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Mar 31, 2010, at 10:45 AM, David Young wrote:

On Wed, Mar 31, 2010 at 05:09:41AM +0000, Michael Lorenz wrote:
Module Name:    src
Committed By:   macallan
Date:           Wed Mar 31 05:09:41 UTC 2010

Modified Files:
        src/sys/dev/ic: pcf8584.c

Log Message:
Do as OpenSolaris does and read the status register after each write.
Now this driver works on my Blade 2500.

void
pcfiic_write(struct pcfiic_softc *sc, bus_size_t r, u_int8_t v)
{
+       volatile uint8_t junk;
       bus_space_write_1(sc->sc_iot, sc->sc_ioh, sc->sc_regmap[r], v);
+       junk = bus_space_read_1(sc->sc_iot, sc->sc_ioh, PCF_S1);
       bus_space_barrier(sc->sc_iot, sc->sc_ioh, sc->sc_regmap[r], 1,
           BUS_SPACE_BARRIER_WRITE);
}

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().

have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iQEVAwUBS7OOX8pnzkX8Yg2nAQIfgwgAmhqpCkhfn5XBZ9bvj2ycADxjBVGg/7Cb
TGSOLhJ9lizzNZHYh9V2Vtwf3tRgLRS4xLrA6T/UyT5fO+t+uTWzCF77P30LIxrx
faoEPxrOwehxF0inVK/aaxjbOiiAN7zMBMwswC7dJOtG6m6pdpOMAo3mHU4zXWq4
7nFRcrdy1eOc/fGvxuwgnDPvf7CyriMKRMkO7m8QQCKnG4C1XDQ5VJYkLorPKqZm
UEwYl/JhQz1LdTJ6l8SUxAzoCprT7du/iaZvxOHdAsRNtPRhA1pc7E/fFOJg9e3M
1+GXWcY/8SUTTNhUNEreTGPycM6nf6AhjusBFZYeK9Q/lxSF0KI6WQ==
=gpun
-----END PGP SIGNATURE-----


Home | Main Index | Thread Index | Old Index