Home | History | Annotate | Download | only in ic

Lines Matching refs:ac

224 	struct aac_ccb *ac;
277 ac = fm->fm_ccbs + i;
281 BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW, &ac->ac_dmamap_xfer);
284 ac = fm->fm_ccbs + i;
286 ac->ac_dmamap_xfer);
294 ac->ac_fibmap = fm;
295 ac->ac_fib = (struct aac_fib *)
297 ac->ac_fibphys = fibpa + i * sc->sc_max_fib_size;
298 aac_ccb_free(sc, ac);
921 struct aac_ccb *ac;
956 ac = sc->sc_ccbs + (index >> 2);
957 fib = ac->ac_fib;
958 fm = ac->ac_fibmap;
970 ac->ac_flags |= AAC_CCB_COMPLETED;
972 if (ac->ac_intr != NULL)
973 (*ac->ac_intr)(ac);
975 wakeup(ac);
1128 struct aac_ccb *ac;
1144 ac = (struct aac_ccb *)(sc->sc_ccbs +
1147 SIMPLEQ_INSERT_TAIL(&sc->sc_ccb_complete, ac, ac_chain);
1154 while ((ac = SIMPLEQ_FIRST(&sc->sc_ccb_complete)) != NULL) {
1156 ac
1158 if (ac->ac_intr != NULL)
1159 (*ac->ac_intr)(ac);
1161 wakeup(ac);
1288 struct aac_ccb *ac;
1294 ac = SIMPLEQ_FIRST(&sc->sc_ccb_free);
1295 if (ac == NULL) {
1300 ac = SIMPLEQ_FIRST(&sc->sc_ccb_free);
1303 if (ac == NULL)
1309 ac->ac_flags = flags;
1310 return (ac);
1314 aac_ccb_free(struct aac_softc *sc, struct aac_ccb *ac)
1318 AAC_DPRINTF(AAC_D_QUEUE, ("aac_ccb_free(%p, %p) ", sc, ac));
1320 ac->ac_flags = 0;
1321 ac->ac_intr = NULL;
1322 ac->ac_fib->Header.XferState = htole32(AAC_FIBSTATE_EMPTY);
1323 ac->ac_fib->Header.StructType = AAC_FIBTYPE_TFIB;
1324 ac->ac_fib->Header.Flags = 0;
1325 ac->ac_fib->Header.SenderSize = htole16(sc->sc_max_fib_size);
1333 ac->ac_fib->Header.SenderFibAddress =
1334 htole32(((u_int32_t) (ac - sc->sc_ccbs)) << 2);
1335 ac->ac_fib->Header.ReceiverFibAddress = htole32(ac->ac_fibphys);
1339 SIMPLEQ_INSERT_HEAD(&sc->sc_ccb_free, ac, ac_chain);
1344 aac_ccb_map(struct aac_softc *sc, struct aac_ccb *ac)
1348 AAC_DPRINTF(AAC_D_QUEUE, ("aac_ccb_map(%p, %p) ", sc, ac));
1351 if ((ac->ac_flags & AAC_CCB_MAPPED) != 0)
1355 error = bus_dmamap_load(sc->sc_dmat, ac->ac_dmamap_xfer, ac->ac_data,
1356 ac->ac_datalen, NULL, BUS_DMA_NOWAIT | BUS_DMA_STREAMING |
1357 ((ac->ac_flags & AAC_CCB_DATA_IN) ? BUS_DMA_READ : BUS_DMA_WRITE));
1367 bus_dmamap_sync(sc->sc_dmat, ac->ac_dmamap_xfer, 0, ac->ac_datalen,
1368 (ac->ac_flags & AAC_CCB_DATA_IN) ? BUS_DMASYNC_PREREAD :
1372 ac->ac_flags |= AAC_CCB_MAPPED;
1378 aac_ccb_unmap(struct aac_softc *sc, struct aac_ccb *ac)
1381 AAC_DPRINTF(AAC_D_QUEUE, ("aac_ccb_unmap(%p, %p) ", sc, ac));
1384 if ((ac->ac_flags & AAC_CCB_MAPPED) == 0)
1388 bus_dmamap_sync(sc->sc_dmat, ac->ac_dmamap_xfer, 0, ac->ac_datalen,
1389 (ac->ac_flags & AAC_CCB_DATA_IN) ? BUS_DMASYNC_POSTREAD :
1391 bus_dmamap_unload(sc->sc_dmat, ac->ac_dmamap_xfer);
1394 ac->ac_flags &= ~AAC_CCB_MAPPED;
1399 aac_ccb_enqueue(struct aac_softc *sc, struct aac_ccb *ac)
1403 AAC_DPRINTF(AAC_D_QUEUE, ("aac_ccb_enqueue(%p, %p) ", sc, ac));
1407 if (ac != NULL)
1408 SIMPLEQ_INSERT_TAIL(&sc->sc_ccb_queue, ac, ac_chain);
1410 while ((ac = SIMPLEQ_FIRST(&sc->sc_ccb_queue)) != NULL) {
1411 if (aac_ccb_submit(sc, ac))
1420 aac_ccb_submit(struct aac_softc *sc, struct aac_ccb *ac)
1425 AAC_DPRINTF(AAC_D_QUEUE, ("aac_ccb_submit(%p, %p) ", sc, ac));
1427 acidx = (u_int32_t) (ac - sc->sc_ccbs);
1429 ac->ac_fib->Header.SenderFibAddress = htole32(acidx << 2);
1430 ac->ac_fib->Header.ReceiverFibAddress = htole32(ac->ac_fibphys);
1433 ac->ac_fib->Header.SenderData = acidx | 0x80000000;
1435 fm = ac->ac_fibmap;
1437 (char *)ac->ac_fib - (char *)fm->fm_fibs, sc->sc_max_fib_size,
1443 while (AAC_SEND_COMMAND(sc, ac) != 0) {
1452 return (aac_enqueue_fib(sc, AAC_ADAP_NORM_CMD_QUEUE, ac));
1457 aac_ccb_poll(struct aac_softc *sc, struct aac_ccb *ac, int timo)
1461 AAC_DPRINTF(AAC_D_QUEUE, ("aac_ccb_poll(%p, %p, %d) ", sc, ac, timo));
1465 if ((rv = aac_ccb_submit(sc, ac)) != 0) {
1475 if ((ac->ac_flags & AAC_CCB_COMPLETED) != 0)
1493 aac_enqueue_fib(struct aac_softc *sc, int queue, struct aac_ccb *ac)
1497 fib_size = le16toh(ac->ac_fib->Header.Size);
1498 fib_addr = le32toh(ac->ac_fib->Header.ReceiverFibAddress);
1545 struct aac_ccb *ac;
1583 ac = sc->sc_ccbs + (idx >> 2);
1584 *fib_addr = ac->ac_fib;
1586 fm = ac->ac_fibmap;
1588 (char *)ac->ac_fib - (char *)fm->fm_fibs,
1591 ac->ac_fib->Header.XferState |=
1593 *((u_int32_t*)(ac->ac_fib->data)) =