Lines Matching +full:ati +full:- +full:mode
2 * ahci.c - AHCI SATA support
5 * Please ALWAYS copy linux-ide@vger.kernel.org
8 * Copyright 2004-2005 Red Hat, Inc.
27 * as Documentation/driver-api/libata.rst
41 #include <linux/dma-mapping.h>
49 #include <linux/ahci-remap.h>
50 #include <linux/io-64-nonatomic-lo-hi.h>
265 { PCI_VDEVICE(INTEL, 0x27c6), board_ahci }, /* ICH7-M DH */
350 { PCI_VDEVICE(INTEL, 0x9dd3), board_ahci_mobile }, /* Cannon Lake PCH-LP AHCI */
393 { PCI_VDEVICE(INTEL, 0xa102), board_ahci }, /* Sunrise Point-H AHCI */
395 { PCI_VDEVICE(INTEL, 0xa105), board_ahci }, /* Sunrise Point-H RAID */
396 { PCI_VDEVICE(INTEL, 0xa106), board_ahci }, /* Sunrise Point-H RAID */
398 { PCI_VDEVICE(INTEL, 0xa10f), board_ahci }, /* Sunrise Point-H RAID */
411 { PCI_VDEVICE(INTEL, 0xa356), board_ahci }, /* Cannon Lake PCH-H RAID */
412 { PCI_VDEVICE(INTEL, 0x06d7), board_ahci }, /* Comet Lake-H RAID */
427 /* ATI */
428 { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */
429 { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700 }, /* ATI SB700/800 */
430 { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb700 }, /* ATI SB700/800 */
431 { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb700 }, /* ATI SB700/800 */
432 { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb700 }, /* ATI SB700/800 */
433 { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb700 }, /* ATI SB700/800 */
434 { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb700 }, /* ATI SB700/800 */
437 { PCI_VDEVICE(AMD, 0x7800), board_ahci }, /* AMD Hudson-2 */
576 { PCI_VDEVICE(PROMISE, 0x3781), board_ahci }, /* FastTrak TX8660 ahci-mode */
628 static int mobile_lpm_policy = -1;
635 if (pdev->vendor == PCI_VENDOR_ID_JMICRON && pdev->device == 0x2361) { in ahci_pci_save_initial_config()
636 dev_info(&pdev->dev, "JMB361 has only one port\n"); in ahci_pci_save_initial_config()
637 hpriv->force_port_map = 1; in ahci_pci_save_initial_config()
645 if (hpriv->flags & AHCI_HFLAG_MV_PATA) { in ahci_pci_save_initial_config()
646 if (pdev->device == 0x6121) in ahci_pci_save_initial_config()
647 hpriv->mask_port_map = 0x3; in ahci_pci_save_initial_config()
649 hpriv->mask_port_map = 0xf; in ahci_pci_save_initial_config()
650 dev_info(&pdev->dev, in ahci_pci_save_initial_config()
654 ahci_save_initial_config(&pdev->dev, hpriv); in ahci_pci_save_initial_config()
659 struct ahci_host_priv *hpriv = host->private_data; in ahci_pci_init_controller()
660 struct pci_dev *pdev = to_pci_dev(host->dev); in ahci_pci_init_controller()
665 if (hpriv->flags & AHCI_HFLAG_MV_PATA) { in ahci_pci_init_controller()
666 if (pdev->device == 0x6121) in ahci_pci_init_controller()
687 struct ata_port *ap = link->ap; in ahci_vt8251_hardreset()
688 struct ahci_host_priv *hpriv = ap->host->private_data; in ahci_vt8251_hardreset()
694 hpriv->stop_engine(ap); in ahci_vt8251_hardreset()
696 rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context), in ahci_vt8251_hardreset()
699 hpriv->start_engine(ap); in ahci_vt8251_hardreset()
704 * request follow-up softreset. in ahci_vt8251_hardreset()
706 return online ? -EAGAIN : rc; in ahci_vt8251_hardreset()
712 struct ata_port *ap = link->ap; in ahci_p5wdh_hardreset()
713 struct ahci_port_priv *pp = ap->private_data; in ahci_p5wdh_hardreset()
714 struct ahci_host_priv *hpriv = ap->host->private_data; in ahci_p5wdh_hardreset()
715 u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; in ahci_p5wdh_hardreset()
720 hpriv->stop_engine(ap); in ahci_p5wdh_hardreset()
723 ata_tf_init(link->device, &tf); in ahci_p5wdh_hardreset()
727 rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context), in ahci_p5wdh_hardreset()
730 hpriv->start_engine(ap); in ahci_p5wdh_hardreset()
733 * ASUS P5W-DH Deluxe doesn't send signature FIS after in ahci_p5wdh_hardreset()
755 * ahci_avn_hardreset - attempt more aggressive recovery of Avoton ports.
759 * be recovered by a SATA-hard-reset alone. The failing signature is
772 const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context); in ahci_avn_hardreset()
773 struct ata_port *ap = link->ap; in ahci_avn_hardreset()
774 struct ahci_port_priv *pp = ap->private_data; in ahci_avn_hardreset()
775 struct ahci_host_priv *hpriv = ap->host->private_data; in ahci_avn_hardreset()
776 u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; in ahci_avn_hardreset()
777 unsigned long tmo = deadline - jiffies; in ahci_avn_hardreset()
784 hpriv->stop_engine(ap); in ahci_avn_hardreset()
789 int port = ap->port_no; in ahci_avn_hardreset()
790 struct ata_host *host = ap->host; in ahci_avn_hardreset()
791 struct pci_dev *pdev = to_pci_dev(host->dev); in ahci_avn_hardreset()
794 ata_tf_init(link->device, &tf); in ahci_avn_hardreset()
817 hpriv->start_engine(ap); in ahci_avn_hardreset()
830 struct ahci_host_priv *hpriv = host->private_data; in ahci_pci_disable_interrupts()
831 void __iomem *mmio = hpriv->mmio; in ahci_pci_disable_interrupts()
871 struct ahci_host_priv *hpriv = host->private_data; in ahci_pci_device_suspend()
873 if (hpriv->flags & AHCI_HFLAG_NO_SUSPEND) { in ahci_pci_device_suspend()
874 dev_err(&pdev->dev, in ahci_pci_device_suspend()
876 return -EIO; in ahci_pci_device_suspend()
893 if (pdev->dev.power.power_state.event == PM_EVENT_SUSPEND) { in ahci_pci_device_resume()
914 * If the device fixup already set the dma_mask to some non-standard in ahci_configure_dma_masks()
917 if (pdev->dma_mask && pdev->dma_mask < DMA_BIT_MASK(32)) in ahci_configure_dma_masks()
921 !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) { in ahci_configure_dma_masks()
922 rc = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); in ahci_configure_dma_masks()
924 rc = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); in ahci_configure_dma_masks()
926 dev_err(&pdev->dev, in ahci_configure_dma_masks()
927 "64-bit DMA enable failed\n"); in ahci_configure_dma_masks()
932 rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); in ahci_configure_dma_masks()
934 dev_err(&pdev->dev, "32-bit DMA enable failed\n"); in ahci_configure_dma_masks()
937 rc = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); in ahci_configure_dma_masks()
939 dev_err(&pdev->dev, in ahci_configure_dma_masks()
940 "32-bit consistent DMA enable failed\n"); in ahci_configure_dma_masks()
949 struct pci_dev *pdev = to_pci_dev(host->dev); in ahci_pci_print_info()
967 * hardwired to on-board SIMG 4726. The chipset is ICH8 and doesn't
982 * assumed without follow-up softreset.
997 struct pci_dev *pdev = to_pci_dev(host->dev); in ahci_p5wdh_workaround()
999 if (pdev->bus->number == 0 && pdev->devfn == PCI_DEVFN(0x1f, 2) && in ahci_p5wdh_workaround()
1001 struct ata_port *ap = host->ports[1]; in ahci_p5wdh_workaround()
1003 dev_info(&pdev->dev, in ahci_p5wdh_workaround()
1004 "enabling ASUS P5W DH Deluxe on-board SIMG4726 workaround\n"); in ahci_p5wdh_workaround()
1006 ap->ops = &ahci_p5wdh_ops; in ahci_p5wdh_workaround()
1007 ap->link.flags |= ATA_LFLAG_NO_SRST | ATA_LFLAG_ASSUME_ATA; in ahci_p5wdh_workaround()
1013 * booting in BIOS compatibility mode. We restore the registers but not ID.
1019 printk(KERN_INFO "ahci: enabling MCP89 AHCI mode\n"); in ahci_mcp89_apple_enable()
1047 return pdev->vendor == PCI_VENDOR_ID_NVIDIA && in is_mcp89_apple()
1048 pdev->device == PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA && in is_mcp89_apple()
1049 pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE && in is_mcp89_apple()
1050 pdev->subsystem_device == 0xcb89; in is_mcp89_apple()
1059 * working is 1501 which was released on 2007-10-26. in ahci_sb600_enable_64bit()
1065 .ident = "ASUS M2A-VM", in ahci_sb600_enable_64bit()
1069 DMI_MATCH(DMI_BOARD_NAME, "M2A-VM"), in ahci_sb600_enable_64bit()
1074 * All BIOS versions for the MSI K9A2 Platinum (MS-7376) in ahci_sb600_enable_64bit()
1078 * fields as "MICRO-STAR INTERANTIONAL CO.,LTD". in ahci_sb600_enable_64bit()
1081 * "MICRO-STAR INTERNATIONAL CO.,LTD". in ahci_sb600_enable_64bit()
1082 * So try to match on DMI_BOARD_VENDOR of "MICRO-STAR INTER". in ahci_sb600_enable_64bit()
1085 * DMI field of "MS-7376". This was changed to be in ahci_sb600_enable_64bit()
1086 * "K9A2 Platinum (MS-7376)" in version 1.9, but we can still in ahci_sb600_enable_64bit()
1087 * match on DMI_BOARD_NAME of "MS-7376". in ahci_sb600_enable_64bit()
1093 "MICRO-STAR INTER"), in ahci_sb600_enable_64bit()
1094 DMI_MATCH(DMI_BOARD_NAME, "MS-7376"), in ahci_sb600_enable_64bit()
1098 * All BIOS versions for the MSI K9AGM2 (MS-7327) support in ahci_sb600_enable_64bit()
1103 * match on DMI_BOARD_VENDOR of "MICRO-STAR INTER" again. in ahci_sb600_enable_64bit()
1109 "MICRO-STAR INTER"), in ahci_sb600_enable_64bit()
1110 DMI_MATCH(DMI_BOARD_NAME, "MS-7327"), in ahci_sb600_enable_64bit()
1132 if (pdev->bus->number != 0 || pdev->devfn != PCI_DEVFN(0x12, 0) || in ahci_sb600_enable_64bit()
1136 if (!match->driver_data) in ahci_sb600_enable_64bit()
1142 if (strcmp(buf, match->driver_data) >= 0) in ahci_sb600_enable_64bit()
1145 dev_warn(&pdev->dev, in ahci_sb600_enable_64bit()
1147 match->ident); in ahci_sb600_enable_64bit()
1152 dev_warn(&pdev->dev, "%s: enabling 64bit DMA\n", match->ident); in ahci_sb600_enable_64bit()
1162 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), in ahci_broken_system_poweroff()
1171 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), in ahci_broken_system_poweroff()
1183 unsigned long slot = (unsigned long)dmi->driver_data; in ahci_broken_system_poweroff()
1184 /* apply the quirk only to on-board controllers */ in ahci_broken_system_poweroff()
1185 return slot == PCI_SLOT(pdev->devfn); in ahci_broken_system_poweroff()
1195 * On HP dv[4-6] and HDX18 with earlier BIOSen, link in ahci_broken_suspend()
1210 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), in ahci_broken_suspend()
1219 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), in ahci_broken_suspend()
1228 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), in ahci_broken_suspend()
1237 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), in ahci_broken_suspend()
1266 if (!dmi || pdev->bus->number || pdev->devfn != PCI_DEVFN(0x1f, 2)) in ahci_broken_suspend()
1272 return strcmp(buf, dmi->driver_data) < 0; in ahci_broken_suspend()
1325 return strcmp(buf, dmi->driver_data) < 0; in ahci_broken_lpm()
1347 .ident = "EP45-DQ6", in ahci_broken_online()
1351 DMI_MATCH(DMI_BOARD_NAME, "EP45-DQ6"), in ahci_broken_online()
1356 .ident = "EP45-DS5", in ahci_broken_online()
1360 DMI_MATCH(DMI_BOARD_NAME, "EP45-DS5"), in ahci_broken_online()
1373 val = (unsigned long)dmi->driver_data; in ahci_broken_online()
1375 return pdev->bus->number == (val >> 8) && pdev->devfn == (val & 0xff); in ahci_broken_online()
1397 * is FPDMA non-zero offset enable which when enabled in ahci_gtf_filter_workaround()
1418 filter = (unsigned long)dmi->driver_data; in ahci_gtf_filter_workaround()
1419 dev_info(host->dev, "applying extra ACPI _GTF filter 0x%x for %s\n", in ahci_gtf_filter_workaround()
1420 filter, dmi->ident); in ahci_gtf_filter_workaround()
1422 for (i = 0; i < host->n_ports; i++) { in ahci_gtf_filter_workaround()
1423 struct ata_port *ap = host->ports[i]; in ahci_gtf_filter_workaround()
1429 dev->gtf_filter |= filter; in ahci_gtf_filter_workaround()
1456 DMI_MATCH(DMI_PRODUCT_NAME, "Switch SA5-271") in acer_sa5_271_workaround()
1463 dev_info(&pdev->dev, "enabling Acer Switch Alpha 12 workaround\n"); in acer_sa5_271_workaround()
1464 if ((hpriv->saved_cap & 0xC734FF00) == 0xC734FF00) { in acer_sa5_271_workaround()
1465 hpriv->port_map = 0x7; in acer_sa5_271_workaround()
1466 hpriv->cap = 0xC734FF02; in acer_sa5_271_workaround()
1487 hpriv = host->private_data; in ahci_thunderx_irq_handler()
1488 mmio = hpriv->mmio; in ahci_thunderx_irq_handler()
1494 irq_masked = irq_stat & hpriv->port_map; in ahci_thunderx_irq_handler()
1495 spin_lock(&host->lock); in ahci_thunderx_irq_handler()
1501 spin_unlock(&host->lock); in ahci_thunderx_irq_handler()
1518 if (pdev->vendor != PCI_VENDOR_ID_INTEL || in ahci_remap_check()
1521 !(readl(hpriv->mmio + AHCI_VSCAP) & 1)) in ahci_remap_check()
1524 cap = readq(hpriv->mmio + AHCI_REMAP_CAP); in ahci_remap_check()
1528 if (readl(hpriv->mmio + ahci_remap_dcc(i)) in ahci_remap_check()
1539 dev_warn(&pdev->dev, "Found %d remapped NVMe devices.\n", count); in ahci_remap_check()
1540 dev_warn(&pdev->dev, in ahci_remap_check()
1541 "Switch your BIOS from RAID to AHCI mode to use them.\n"); in ahci_remap_check()
1544 * Don't rely on the msi-x capability in the remap case, in ahci_remap_check()
1547 hpriv->flags |= AHCI_HFLAG_NO_MSI; in ahci_remap_check()
1552 return pci_irq_vector(to_pci_dev(host->dev), port); in ahci_get_irq_vector()
1560 if (hpriv->flags & AHCI_HFLAG_NO_MSI) in ahci_init_msi()
1561 return -ENODEV; in ahci_init_msi()
1565 * Message mode could be enforced. In this case assume that advantage in ahci_init_msi()
1566 * of multipe MSIs is negated and use single MSI mode instead. in ahci_init_msi()
1572 if (!(readl(hpriv->mmio + HOST_CTL) & HOST_MRSM)) { in ahci_init_msi()
1573 hpriv->get_irq_vector = ahci_get_irq_vector; in ahci_init_msi()
1574 hpriv->flags |= AHCI_HFLAG_MULTI_MSI; in ahci_init_msi()
1579 * Fallback to single MSI mode if the controller in ahci_init_msi()
1580 * enforced MRSM mode. in ahci_init_msi()
1589 * If the host is not capable of supporting per-port vectors, fall in ahci_init_msi()
1590 * back to single MSI before finally attempting single MSI-X. in ahci_init_msi()
1605 if (!(hpriv->flags & AHCI_HFLAG_IS_MOBILE)) in ahci_update_initial_lpm_policy()
1609 if (mobile_lpm_policy != -1) { in ahci_update_initial_lpm_policy()
1617 if (hpriv->cap & HOST_CAP_PART) in ahci_update_initial_lpm_policy()
1619 else if (hpriv->cap & HOST_CAP_SSC) in ahci_update_initial_lpm_policy()
1626 ap->target_lpm_policy = policy; in ahci_update_initial_lpm_policy()
1635 * Only apply the 6-port PCS quirk for known legacy platforms. in ahci_intel_pcs_quirk()
1637 if (!id || id->vendor != PCI_VENDOR_ID_INTEL) in ahci_intel_pcs_quirk()
1641 if (((enum board_ids) id->driver_data) >= board_ahci_pcs7) in ahci_intel_pcs_quirk()
1646 * implemented as write or write-once register. If the register in ahci_intel_pcs_quirk()
1653 if ((tmp16 & hpriv->port_map) != hpriv->port_map) { in ahci_intel_pcs_quirk()
1654 tmp16 |= hpriv->port_map; in ahci_intel_pcs_quirk()
1661 unsigned int board_id = ent->driver_data; in ahci_init_one()
1664 struct device *dev = &pdev->dev; in ahci_init_one()
1674 ata_print_version_once(&pdev->dev, DRV_VERSION); in ahci_init_one()
1679 if (pdev->vendor == PCI_VENDOR_ID_MARVELL && !marvell_enable) in ahci_init_one()
1680 return -ENODEV; in ahci_init_one()
1686 /* Promise's PDC42819 is a SAS/SATA controller that has an AHCI mode. in ahci_init_one()
1687 * At the moment, we can only use the AHCI mode. Let the users know in ahci_init_one()
1690 if (pdev->vendor == PCI_VENDOR_ID_PROMISE) in ahci_init_one()
1691 dev_info(&pdev->dev, in ahci_init_one()
1694 /* Some devices use non-standard BARs */ in ahci_init_one()
1695 if (pdev->vendor == PCI_VENDOR_ID_STMICRO && pdev->device == 0xCC06) in ahci_init_one()
1697 else if (pdev->vendor == 0x1c44 && pdev->device == 0x8000) in ahci_init_one()
1699 else if (pdev->vendor == PCI_VENDOR_ID_CAVIUM) { in ahci_init_one()
1700 if (pdev->device == 0xa01c) in ahci_init_one()
1702 if (pdev->device == 0xa084) in ahci_init_one()
1711 if (pdev->vendor == PCI_VENDOR_ID_INTEL && in ahci_init_one()
1712 (pdev->device == 0x2652 || pdev->device == 0x2653)) { in ahci_init_one()
1716 * modes. Enabling ahci mode while MAP indicates in ahci_init_one()
1717 * combined mode is a bad idea. Yield to ata_piix. in ahci_init_one()
1721 dev_info(&pdev->dev, in ahci_init_one()
1722 "controller is in combined mode, can't enable AHCI mode\n"); in ahci_init_one()
1723 return -ENODEV; in ahci_init_one()
1731 if (rc == -EBUSY) in ahci_init_one()
1738 return -ENOMEM; in ahci_init_one()
1739 hpriv->flags |= (unsigned long)pi.private_data; in ahci_init_one()
1743 (pdev->revision == 0xa1 || pdev->revision == 0xa2)) in ahci_init_one()
1744 hpriv->flags |= AHCI_HFLAG_NO_MSI; in ahci_init_one()
1747 if (board_id == board_ahci_sb700 && pdev->revision >= 0x40) in ahci_init_one()
1748 hpriv->flags &= ~AHCI_HFLAG_IGN_SERR_INTERNAL; in ahci_init_one()
1752 hpriv->flags &= ~AHCI_HFLAG_32BIT_ONLY; in ahci_init_one()
1754 hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar]; in ahci_init_one()
1761 hpriv->flags |= AHCI_HFLAG_NO_DEVSLP; in ahci_init_one()
1764 if (pdev->vendor == 0x177d && pdev->device == 0xa01c) in ahci_init_one()
1765 hpriv->irq_handler = ahci_thunderx_irq_handler; in ahci_init_one()
1778 if (hpriv->cap & HOST_CAP_NCQ) { in ahci_init_one()
1781 * Auto-activate optimization is supposed to be in ahci_init_one()
1786 if (!(hpriv->flags & AHCI_HFLAG_NO_FPDMA_AA)) in ahci_init_one()
1790 * All AHCI controllers should be forward-compatible in ahci_init_one()
1798 if (hpriv->cap & HOST_CAP_PMP) in ahci_init_one()
1805 dev_info(&pdev->dev, in ahci_init_one()
1811 dev_warn(&pdev->dev, in ahci_init_one()
1816 hpriv->flags |= AHCI_HFLAG_NO_SUSPEND; in ahci_init_one()
1817 dev_warn(&pdev->dev, in ahci_init_one()
1822 hpriv->flags |= AHCI_HFLAG_SRST_TOUT_IS_OFFLINE; in ahci_init_one()
1823 dev_info(&pdev->dev, in ahci_init_one()
1828 /* Acer SA5-271 workaround modifies private_data */ in ahci_init_one()
1836 n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map)); in ahci_init_one()
1838 host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); in ahci_init_one()
1840 return -ENOMEM; in ahci_init_one()
1841 host->private_data = hpriv; in ahci_init_one()
1847 hpriv->irq = pci_irq_vector(pdev, 0); in ahci_init_one()
1849 if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss) in ahci_init_one()
1850 host->flags |= ATA_HOST_PARALLEL_SCAN; in ahci_init_one()
1852 dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n"); in ahci_init_one()
1857 for (i = 0; i < host->n_ports; i++) { in ahci_init_one()
1858 struct ata_port *ap = host->ports[i]; in ahci_init_one()
1860 ata_port_pbar_desc(ap, ahci_pci_bar, -1, "abar"); in ahci_init_one()
1862 0x100 + ap->port_no * 0x80, "port"); in ahci_init_one()
1865 if (ap->flags & ATA_FLAG_EM) in ahci_init_one()
1866 ap->em_message_type = hpriv->em_msg_type; in ahci_init_one()
1870 /* disabled/not-implemented port */ in ahci_init_one()
1871 if (!(hpriv->port_map & (1 << i))) in ahci_init_one()
1872 ap->ops = &ata_dummy_port_ops; in ahci_init_one()
1882 rc = ahci_configure_dma_masks(pdev, hpriv->cap & HOST_CAP_64); in ahci_init_one()
1899 pm_runtime_put_noidle(&pdev->dev); in ahci_init_one()
1910 pm_runtime_get_noresume(&pdev->dev); in ahci_remove_one()
1917 MODULE_DESCRIPTION("AHCI SATA low-level driver");