Lines Matching full:scp
83 csamidi_readio(struct csa_midi_softc *scp, u_long offset)
86 return bus_space_read_4(rman_get_bustag(scp->io), rman_get_bushandle(scp->io), offset) & 0xffffffff;
92 csamidi_writeio(struct csa_midi_softc *scp, u_long offset, u_int32_t data)
95 bus_space_write_4(rman_get_bustag(scp->io), rman_get_bushandle(scp->io), offset, data);
101 struct csa_midi_softc *scp = (struct csa_midi_softc *)arg;
103 if (scp->mpu_intr)
104 (scp->mpu_intr)(scp->mpu);
110 struct csa_midi_softc *scp = cookie;
118 uart_stat = csamidi_readio(scp, BA0_MIDSR);
125 rc = csamidi_readio(scp, BA0_MIDRP);
137 struct csa_midi_softc *scp = cookie;
146 val = csamidi_readio(scp, BA0_MIDCR);
148 csamidi_writeio(scp, BA0_MIDCR, MIDCR_MRST);
149 csamidi_writeio(scp, BA0_MIDCR, MIDCR_MLB);
150 csamidi_writeio(scp, BA0_MIDCR, 0x00);
152 csamidi_writeio(scp, BA0_MIDCR, val);
162 csamidi_writeio(scp, BA0_MIDWP, b);
173 struct csa_midi_softc *scp = cookie;
175 mtx_lock(&scp->mtx);
176 scp->mpu_intr = NULL;
177 mtx_unlock(&scp->mtx);
200 struct csa_midi_softc *scp;
203 scp = device_get_softc(dev);
205 bzero(scp, sizeof(struct csa_midi_softc));
206 scp->dev = dev;
209 scp->io_rid = PCIR_BAR(0);
210 scp->io = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
211 &scp->io_rid, RF_ACTIVE);
212 if (scp->io == NULL)
216 scp->mpu = mpu401_init(&csamidi_mpu_class, scp, csamidi_midi_intr,
217 &scp->mpu_intr);
218 if (scp->mpu == NULL) {
223 mtx_init(&scp->mtx, device_get_nameunit(dev), "csamidi softc",
227 csamidi_writeio(scp, BA0_MIDCR, MIDCR_MRST);
229 csamidi_writeio(scp, BA0_MIDCR, MIDCR_TXE | MIDCR_RXE);
230 csamidi_writeio(scp, BA0_HICR, HICR_IEV | HICR_CHGM);
234 bus_release_resource(dev, SYS_RES_MEMORY, scp->io_rid, scp->io);
235 scp->io = NULL;
243 struct csa_midi_softc *scp;
246 scp = device_get_softc(dev);
247 rc = mpu401_uninit(scp->mpu);
250 if (scp->io != NULL) {
251 bus_release_resource(dev, SYS_RES_MEMORY, scp->io_rid,
252 scp->io);
253 scp->io = NULL;
255 mtx_destroy(&scp->mtx);