int auvia_read_codec(void *addr, u_int8_t reg, u_int16_t *val) { struct auvia_softc *sc = addr; if (auvia_waitready_codec(sc)) return 1; bus_space_write_4(sc->sc_iot, sc->sc_ioh, AUVIA_CODEC_CTL, AUVIA_CODEC_PRIVALID | AUVIA_CODEC_READ | AUVIA_CODEC_INDEX(reg)); if (auvia_waitready_codec(sc)) return 1; if (auvia_waitvalid_codec(sc)) return 1; *val = bus_space_read_2(sc->sc_iot, sc->sc_ioh, AUVIA_CODEC_CTL); return 0; }
static int auvia_write_codec(void *addr, u_int8_t reg, u_int16_t val) { struct auvia_softc *sc; sc = addr; if (auvia_waitready_codec(sc)) return 1; bus_space_write_4(sc->sc_iot, sc->sc_ioh, AUVIA_CODEC_CTL, AUVIA_CODEC_PRIVALID | AUVIA_CODEC_INDEX(reg) | val); return 0; }