Lines Matching +defs:link +defs:flags
197 atascsi_detach(struct atascsi *as, int flags)
201 rv = config_detach((struct device *)as->as_scsibus, flags);
212 atascsi_lookup_port(struct scsi_link *link)
214 struct atascsi *as = link->bus->sb_adapter_softc;
217 if (link->target >= link->bus->sb_adapter_buswidth)
220 ahp = as->as_host_ports[link->target];
221 if (link->lun >= ahp->ahp_nports)
224 return (ahp->ahp_ports[link->lun]);
228 atascsi_probe(struct scsi_link *link)
230 struct atascsi *as = link->bus->sb_adapter_softc;
241 port = link->target;
242 if (port >= link->bus->sb_adapter_buswidth)
246 if (link->lun > 0) {
247 if (link->lun >= as->as_host_ports[port]->ahp_nports)
251 type = as->as_methods->ata_probe(as->as_cookie, port, link->lun);
256 link->flags |= SDEV_ATAPI;
259 if (link->lun != 0) {
261 as->as_dev->dv_xname, port, link->lun);
274 if (link->lun == 0) {
295 ap->ap_pmp_port = link->lun - 1;
301 link->pool = &ahp->ahp_iopool;
314 int count = (link->lun > 0) ? 6 : 2;
332 ahp->ahp_ports[link->lun] = ap;
357 (link->lun == 0 || as->as_capability & ASAA_CAP_PMP_NCQ)) {
367 link->openings = qdepth;
373 if (link->lun == 0) {
376 if (xa->tag < link->openings) {
414 xa->fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
415 xa->flags = ATA_F_POLL;
428 as->as_methods->ata_free(as->as_cookie, port, link->lun);
433 atascsi_free(struct scsi_link *link)
435 struct atascsi *as = link->bus->sb_adapter_softc;
440 port = link->target;
441 if (port >= link->bus->sb_adapter_buswidth)
448 if (link->lun >= ahp->ahp_nports)
451 ap = ahp->ahp_ports[link->lun];
453 ahp->ahp_ports[link->lun] = NULL;
455 as->as_methods->ata_free(as->as_cookie, port, link->lun);
457 if (link->lun == ahp->ahp_nports - 1) {
470 struct scsi_link *link = xs->sc_link;
473 ap = atascsi_lookup_port(link);
500 struct scsi_link *link = xs->sc_link;
501 struct atascsi *as = link->bus->sb_adapter_softc;
504 int flags = 0;
509 ap = atascsi_lookup_port(link);
516 flags = ATA_F_READ;
522 flags = ATA_F_WRITE;
570 xa->flags = flags;
579 fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
586 !(xs->flags & SCSI_POLL)) {
588 xa->flags |= ATA_F_NCQ;
589 fis->command = (xa->flags & ATA_F_WRITE) ?
600 fis->command = (xa->flags & ATA_F_WRITE) ?
610 fis->command = (xa->flags & ATA_F_WRITE) ?
622 if (xs->flags & SCSI_POLL)
623 xa->flags |= ATA_F_POLL;
664 if (ISSET(inq->flags, SI_EVPD)) {
699 struct scsi_link *link = xs->sc_link;
702 ap = atascsi_lookup_port(link);
710 inq.flags |= SID_CmdQue;
729 struct scsi_link *link = xs->sc_link;
733 ap = atascsi_lookup_port(link);
757 struct scsi_link *link = xs->sc_link;
761 ap = atascsi_lookup_port(link);
778 struct scsi_link *link = xs->sc_link;
788 ap = atascsi_lookup_port(link);
794 pg.devid_hdr.flags = VPD_DEVID_ASSOC_LU | VPD_DEVID_TYPE_NAA;
801 pg.devid_hdr.flags = VPD_DEVID_ASSOC_LU | VPD_DEVID_TYPE_T10;
829 struct scsi_link *link = xs->sc_link;
833 ap = atascsi_lookup_port(link);
871 struct scsi_link *link = xs->sc_link;
875 ap = atascsi_lookup_port(link);
902 struct scsi_link *link = xs->sc_link;
906 ap = atascsi_lookup_port(link);
923 struct scsi_link *link = xs->sc_link;
927 ap = atascsi_lookup_port(link);
938 pg.flags = VPD_DISK_THIN_TPU | VPD_DISK_THIN_TPWS;
948 struct scsi_link *link = xs->sc_link;
949 struct atascsi *as = link->bus->sb_adapter_softc;
963 ap = atascsi_lookup_port(link);
966 if (!ISSET(cdb->flags, WRITE_SAME_F_UNMAP) ||
990 xa->flags = ATA_F_WRITE;
992 if (xs->flags & SCSI_POLL)
993 xa->flags |= ATA_F_POLL;
1004 fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1044 if (ISSET(xs->flags, SCSI_POLL) || xs->cmdlen != sizeof(*cdb))
1078 if (ISSET(xs->flags, SCSI_NOSLEEP)) {
1091 struct scsi_link *link = xs->sc_link;
1092 struct atascsi *as = link->bus->sb_adapter_softc;
1103 ap = atascsi_lookup_port(link);
1119 xa->flags = ATA_F_WRITE;
1126 fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1168 struct scsi_link *link = xs->sc_link;
1169 struct atascsi *as = link->bus->sb_adapter_softc;
1178 ap = atascsi_lookup_port(link);
1180 xa->flags = ATA_F_READ;
1186 if (xs->flags & SCSI_POLL)
1187 xa->flags |= ATA_F_POLL;
1189 xa->fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1292 struct scsi_link *link = xs->sc_link;
1297 ap = atascsi_lookup_port(link);
1319 struct scsi_link *link = xs->sc_link;
1325 ap = atascsi_lookup_port(link);
1355 atascsi_passthru_map(struct scsi_xfer *xs, u_int8_t count_proto, u_int8_t flags)
1362 xa->flags = 0;
1363 if (xs->flags & SCSI_DATA_IN)
1364 xa->flags |= ATA_F_READ;
1365 if (xs->flags & SCSI_DATA_OUT)
1366 xa->flags |= ATA_F_WRITE;
1367 if (xs->flags & SCSI_POLL)
1368 xa->flags |= ATA_F_POLL;
1374 xa->flags |= ATA_F_PIO;
1390 struct scsi_link *link = xs->sc_link;
1391 struct atascsi *as = link->bus->sb_adapter_softc;
1405 if (atascsi_passthru_map(xs, cdb->count_proto, cdb->flags) != 0) {
1410 ap = atascsi_lookup_port(link);
1412 fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1428 struct scsi_link *link = xs->sc_link;
1429 struct atascsi *as = link->bus->sb_adapter_softc;
1443 if (atascsi_passthru_map(xs, cdb->count_proto, cdb->flags) != 0) {
1448 ap = atascsi_lookup_port(link);
1450 fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1506 sd->flags = SKEY_NO_SENSE;
1514 struct scsi_link *link = xs->sc_link;
1515 struct atascsi *as = link->bus->sb_adapter_softc;
1535 ap = atascsi_lookup_port(link);
1537 xa->flags = ATA_F_READ;
1543 if (xs->flags & SCSI_POLL)
1544 xa->flags |= ATA_F_POLL;
1546 xa->fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1557 struct scsi_link *link = xs->sc_link;
1558 struct atascsi *as = link->bus->sb_adapter_softc;
1582 ap = atascsi_lookup_port(link);
1584 xa->flags = ATA_F_READ;
1591 if (xs->flags & SCSI_POLL)
1592 xa->flags |= ATA_F_POLL;
1594 xa->fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1604 struct scsi_link *link = xs->sc_link;
1605 struct atascsi *as = link->bus->sb_adapter_softc;
1610 switch (xs->flags & (SCSI_DATA_IN | SCSI_DATA_OUT)) {
1612 xa->flags = ATA_F_PACKET | ATA_F_READ;
1615 xa->flags = ATA_F_PACKET | ATA_F_WRITE;
1618 xa->flags = ATA_F_PACKET;
1620 xa->flags |= ATA_F_GET_RFIS;
1622 ap = atascsi_lookup_port(link);
1629 if (xs->flags & SCSI_POLL)
1630 xa->flags |= ATA_F_POLL;
1633 fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1637 fis->features = ATA_H2D_FEATURES_DMA | ((xa->flags & ATA_F_WRITE) ?
1661 sd->flags = (xa->rfis.error & 0xf0) >> 4;
1663 sd->flags = SKEY_ILLEGAL_REQUEST;
1665 sd->flags |= SSD_EOM;
1667 sd->flags |= SSD_ILI;
1713 sd->flags = SKEY_NO_SENSE;
1724 if (ISSET(in_inq->flags, SI_EVPD)) {
1735 inq.flags |= SID_CmdQue;
1799 if (!ISSET(xa->flags, ATA_F_DONE))
1823 SET(xa->flags, ATA_F_DONE);
1852 xa->fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1856 xa->flags = ATA_F_READ | ATA_F_PIO | ATA_F_POLL;
1877 xa->fis->flags = ATA_H2D_FLAGS_CMD | ap->ap_pmp_port;
1878 xa->flags = ATA_F_POLL;