Lines Matching defs:hs
193 fhpibreset(struct hpibbus_softc *hs)
195 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
213 hs->sc_flags |= HPIBF_DMA16;
235 fhpibsend(struct hpibbus_softc *hs, int slave, int sec, void *ptr, int origcnt)
237 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
249 hd->hpib_data = C_TAG + hs->sc_ba;
296 fhpibrecv(struct hpibbus_softc *hs, int slave, int sec, void *ptr, int origcnt)
298 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
315 hd->hpib_data = C_LAG + hs->sc_ba;
357 fhpibgo(struct hpibbus_softc *hs, int slave, int sec, void *ptr, int count,
360 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
366 hs->sc_flags |= HPIBF_IO;
368 hs->sc_flags |= HPIBF_TIMO;
370 hs->sc_flags |= HPIBF_READ;
372 else if (hs->sc_flags & HPIBF_READ) {
374 hs->sc_flags &= ~HPIBF_READ;
377 hs->sc_count = count;
378 hs->sc_addr = addr;
382 if ((hs->sc_flags & HPIBF_DMA16) &&
398 if (hs->sc_flags & HPIBF_READ) {
400 hs->sc_curcnt = count;
401 dmago(hs->sc_dq->dq_chan, addr, count, flags|DMAGO_READ);
402 if (fhpibrecv(hs, slave, sec, 0, 0) < 0) {
406 (void)fhpibrecv(hs, slave, sec, 0, 0);
410 hd->hpib_ie = IDS_DMA(hs->sc_dq->dq_chan) |
422 hs->sc_curcnt = count;
423 (void) fhpibsend(hs, slave, sec, addr, count);
424 fhpibdone(hs);
428 hs->sc_curcnt = count;
429 dmago(hs->sc_dq->dq_chan, addr, count, flags);
430 if (fhpibsend(hs, slave, sec, 0, 0) < 0) {
434 (void)fhpibsend(hs, slave, sec, 0, 0);
438 hd->hpib_ie = IDS_DMA(hs->sc_dq->dq_chan) | IDS_WRITE |
452 struct hpibbus_softc *hs = arg;
453 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
456 if (hs->sc_flags & HPIBF_IO) {
467 hs->sc_flags &= ~(HPIBF_DONE|HPIBF_IO|HPIBF_READ|HPIBF_TIMO);
468 dmafree(hs->sc_dq);
470 hq = TAILQ_FIRST(&hs->sc_queue);
477 fhpibdone(struct hpibbus_softc *hs)
479 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
484 cnt = hs->sc_curcnt;
485 hs->sc_addr += cnt;
486 hs->sc_count -= cnt;
491 __func__, hs->sc_addr, hs->sc_count);
493 if (hs->sc_flags & HPIBF_READ) {
495 if (hs->sc_flags & HPIBF_TIMO)
497 fhpibdmadone, hs);
499 cnt = hs->sc_count;
501 addr = hs->sc_addr;
514 hs->sc_flags |= HPIBF_DONE;
523 struct hpibbus_softc *hs = sc->sc_hpibbus;
532 (hs->sc_flags & (HPIBF_IO|HPIBF_DONE)) != HPIBF_IO)
539 if ((hs->sc_flags & (HPIBF_IO|HPIBF_DONE)) == HPIBF_IO) {
548 printf("%s: flags %x\n", __func__, hs->sc_flags);
550 hq = TAILQ_FIRST(&hs->sc_queue);
551 if (hs->sc_flags & HPIBF_IO) {
552 if (hs->sc_flags & HPIBF_TIMO)
560 hs->sc_flags &= ~(HPIBF_DONE|HPIBF_IO|HPIBF_READ|HPIBF_TIMO);
561 dmafree(hs->sc_dq);
563 } else if (hs->sc_flags & HPIBF_PPOLL) {
574 stat0 = fhpibppoll(hs);
584 stat0 = fhpibppoll(hs);
593 hs->sc_flags &= ~HPIBF_PPOLL;
600 fhpibppoll(struct hpibbus_softc *hs)
602 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
645 struct hpibbus_softc *hs = arg;
646 struct fhpib_softc *sc = device_private(device_parent(hs->sc_dev));
650 if ((hs->sc_flags & HPIBF_PPOLL) == 0)
652 slave = (0x80 >> TAILQ_FIRST(&hs->sc_queue)->hq_slave);
655 if (fhpibppoll(hs) & slave) {