Lines Matching full:ctlr
472 struct ahci_controller *ctlr = device_get_softc(dev); in ahci_pci_attach() local
487 ctlr->quirks = ahci_ids[i].quirks; in ahci_pci_attach()
489 if (ctlr->quirks & AHCI_Q_IOMMU_BUSWIDE) { in ahci_pci_attach()
503 ctlr->quirks |= AHCI_Q_SATA1_UNIT0; in ahci_pci_attach()
505 "quirks", &ctlr->quirks); in ahci_pci_attach()
506 ctlr->vendorid = pci_get_vendor(dev); in ahci_pci_attach()
507 ctlr->deviceid = pci_get_device(dev); in ahci_pci_attach()
508 ctlr->subvendorid = pci_get_subvendor(dev); in ahci_pci_attach()
509 ctlr->subdeviceid = pci_get_subdevice(dev); in ahci_pci_attach()
512 if (ctlr->quirks & AHCI_Q_ABAR0) in ahci_pci_attach()
513 ctlr->r_rid = PCIR_BAR(0); in ahci_pci_attach()
515 ctlr->r_rid = PCIR_BAR(5); in ahci_pci_attach()
516 if (!(ctlr->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, in ahci_pci_attach()
517 &ctlr->r_rid, RF_ACTIVE))) in ahci_pci_attach()
529 vscap = ATA_INL(ctlr->r_mem, AHCI_VSCAP); in ahci_pci_attach()
531 uint32_t cap = ATA_INL(ctlr->r_mem, 0x800); /* Intel's REMAP CAP */ in ahci_pci_attach()
534 ctlr->remap_offset = 0x4000; in ahci_pci_attach()
535 ctlr->remap_size = 0x4000; in ahci_pci_attach()
544 (ATA_INL(ctlr->r_mem, 0x880 + i * 0x80) == in ahci_pci_attach()
548 ctlr->remapped_devices++; in ahci_pci_attach()
553 if (ctlr->remapped_devices > 0) { in ahci_pci_attach()
555 ctlr->remapped_devices); in ahci_pci_attach()
556 ctlr->quirks |= (AHCI_Q_NOMSIX | AHCI_Q_NOMSI); in ahci_pci_attach()
561 if (ctlr->quirks & AHCI_Q_NOMSIX) in ahci_pci_attach()
566 ctlr->r_msix_tab_rid = pci_msix_table_bar(dev); in ahci_pci_attach()
567 ctlr->r_msix_pba_rid = pci_msix_pba_bar(dev); in ahci_pci_attach()
573 ctlr->r_msix_table = NULL; in ahci_pci_attach()
574 if (ctlr->r_msix_tab_rid != ctlr->r_rid) { in ahci_pci_attach()
576 ctlr->r_msix_table = bus_alloc_resource_any(dev, SYS_RES_MEMORY, in ahci_pci_attach()
577 &ctlr->r_msix_tab_rid, RF_ACTIVE); in ahci_pci_attach()
578 if (ctlr->r_msix_table == NULL) { in ahci_pci_attach()
588 ctlr->r_msix_pba = NULL; in ahci_pci_attach()
589 if ((ctlr->r_msix_pba_rid != ctlr->r_msix_tab_rid) && in ahci_pci_attach()
590 (ctlr->r_msix_pba_rid != ctlr->r_rid)) { in ahci_pci_attach()
592 ctlr->r_msix_pba = bus_alloc_resource_any(dev, SYS_RES_MEMORY, in ahci_pci_attach()
593 &ctlr->r_msix_pba_rid, RF_ACTIVE); in ahci_pci_attach()
594 if (ctlr->r_msix_pba == NULL) { in ahci_pci_attach()
612 caps = ATA_INL(ctlr->r_mem, AHCI_CAP); in ahci_pci_attach()
613 pi = ATA_INL(ctlr->r_mem, AHCI_PI); in ahci_pci_attach()
614 if (ctlr->quirks & AHCI_Q_NOMSI) in ahci_pci_attach()
615 ctlr->msi = 0; in ahci_pci_attach()
616 else if ((ctlr->quirks & AHCI_Q_1MSI) || in ahci_pci_attach()
618 ctlr->msi = 1; in ahci_pci_attach()
620 ctlr->msi = 2; in ahci_pci_attach()
622 device_get_unit(dev), "msi", &ctlr->msi); in ahci_pci_attach()
623 ctlr->numirqs = 1; in ahci_pci_attach()
625 ctlr->msi = 0; in ahci_pci_attach()
626 if (ctlr->msi < 0) in ahci_pci_attach()
627 ctlr->msi = 0; in ahci_pci_attach()
628 else if (ctlr->msi == 1) { in ahci_pci_attach()
631 } else if (ctlr->msi > 1) in ahci_pci_attach()
632 ctlr->msi = 2; in ahci_pci_attach()
635 if (ctlr->msi > 0) { in ahci_pci_attach()
642 ctlr->numirqs = msix_count; in ahci_pci_attach()
652 ctlr->numirqs = msi_count; in ahci_pci_attach()
657 ctlr->msi = 0; in ahci_pci_attach()
665 if (ctlr->msi > 0) in ahci_pci_attach()
684 struct ahci_controller *ctlr = device_get_softc(dev); in ahci_pci_suspend() local
688 ATA_OUTL(ctlr->r_mem, AHCI_GHC, in ahci_pci_suspend()
689 ATA_INL(ctlr->r_mem, AHCI_GHC) & (~AHCI_GHC_IE)); in ahci_pci_suspend()