Lines Matching refs:hpriv

265 	struct ahci_host_priv *hpriv = ap->host->private_data;
267 return sprintf(buf, "%x\n", hpriv->cap);
275 struct ahci_host_priv *hpriv = ap->host->private_data;
277 return sprintf(buf, "%x\n", hpriv->cap2);
285 struct ahci_host_priv *hpriv = ap->host->private_data;
287 return sprintf(buf, "%x\n", hpriv->version);
310 struct ahci_host_priv *hpriv = ap->host->private_data;
311 void __iomem *mmio = hpriv->mmio;
312 void __iomem *em_mmio = mmio + hpriv->em_loc;
323 !(hpriv->em_msg_type & EM_MSG_TYPE_SGPIO)) {
336 em_mmio += hpriv->em_buf_sz;
338 count = hpriv->em_buf_sz;
346 hpriv->em_buf_sz, PAGE_SIZE);
370 struct ahci_host_priv *hpriv = ap->host->private_data;
371 void __iomem *mmio = hpriv->mmio;
372 void __iomem *em_mmio = mmio + hpriv->em_loc;
380 !(hpriv->em_msg_type & EM_MSG_TYPE_SGPIO) ||
381 size % 4 || size > hpriv->em_buf_sz)
413 struct ahci_host_priv *hpriv = ap->host->private_data;
414 void __iomem *mmio = hpriv->mmio;
431 * @hpriv: host private area to store config values
435 * initial values of those registers into @hpriv such that they
440 * If it is not set already this function sets hpriv->start_engine to
446 void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv)
448 void __iomem *mmio = hpriv->mmio;
468 if (hpriv->saved_cap)
469 cap = (cap & ~(HOST_CAP_SSS | HOST_CAP_MPS)) | hpriv->saved_cap;
470 hpriv->saved_cap = cap;
476 hpriv->saved_cap2 = cap2 = readl(mmio + HOST_CAP2);
478 hpriv->saved_cap2 = cap2 = 0;
481 if ((cap & HOST_CAP_64) && (hpriv->flags & AHCI_HFLAG_32BIT_ONLY)) {
486 if ((cap & HOST_CAP_NCQ) && (hpriv->flags & AHCI_HFLAG_NO_NCQ)) {
491 if (!(cap & HOST_CAP_NCQ) && (hpriv->flags & AHCI_HFLAG_YES_NCQ)) {
496 if ((cap & HOST_CAP_PMP) && (hpriv->flags & AHCI_HFLAG_NO_PMP)) {
501 if ((cap & HOST_CAP_SNTF) && (hpriv->flags & AHCI_HFLAG_NO_SNTF)) {
507 if ((cap2 & HOST_CAP2_SDS) && (hpriv->flags & AHCI_HFLAG_NO_DEVSLP)) {
514 if (!(cap & HOST_CAP_FBS) && (hpriv->flags & AHCI_HFLAG_YES_FBS)) {
519 if ((cap & HOST_CAP_FBS) && (hpriv->flags & AHCI_HFLAG_NO_FBS)) {
524 if (!(cap & HOST_CAP_ALPM) && (hpriv->flags & AHCI_HFLAG_YES_ALPM)) {
529 if ((cap & HOST_CAP_SXS) && (hpriv->flags & AHCI_HFLAG_NO_SXS)) {
536 if (hpriv->saved_port_map && port_map != hpriv->saved_port_map) {
538 port_map, hpriv->saved_port_map);
539 port_map = hpriv->saved_port_map;
541 hpriv->saved_port_map = port_map;
544 if (hpriv->mask_port_map) {
547 port_map & hpriv->mask_port_map);
548 port_map &= hpriv->mask_port_map;
576 hpriv->saved_port_map = port_map;
585 if (hpriv->saved_port_cap[i])
588 port_mmio = __ahci_port_base(hpriv, i);
589 hpriv->saved_port_cap[i] =
594 hpriv->cap = cap;
595 hpriv->cap2 = cap2;
596 hpriv->version = vers;
597 hpriv->port_map = port_map;
599 if (!hpriv->start_engine)
600 hpriv->start_engine = ahci_start_engine;
602 if (!hpriv->stop_engine)
603 hpriv->stop_engine = ahci_stop_engine;
605 if (!hpriv->irq_handler)
606 hpriv->irq_handler = ahci_single_level_irq_intr;
621 struct ahci_host_priv *hpriv = host->private_data;
622 unsigned long port_map = hpriv->port_map;
623 void __iomem *mmio = hpriv->mmio;
627 writel(hpriv->saved_cap, mmio + HOST_CAP);
628 if (hpriv->saved_cap2)
629 writel(hpriv->saved_cap2, mmio + HOST_CAP2);
630 writel(hpriv->saved_port_map, mmio + HOST_PORTS_IMPL);
634 port_mmio = __ahci_port_base(hpriv, i);
635 writel(hpriv->saved_port_cap[i], port_mmio + PORT_CMD);
648 struct ahci_host_priv *hpriv = ap->host->private_data;
651 (sc_reg != SCR_NOTIFICATION || (hpriv->cap & HOST_CAP_SNTF)))
696 struct ahci_host_priv *hpriv = ap->host->private_data;
705 if ((hpriv->flags & AHCI_HFLAG_WAKE_BEFORE_STOP) &&
745 struct ahci_host_priv *hpriv = ap->host->private_data;
750 if (hpriv->cap & HOST_CAP_64)
755 if (hpriv->cap & HOST_CAP_64)
791 struct ahci_host_priv *hpriv = ap->host->private_data;
798 if (hpriv->cap & HOST_CAP_SSS) {
811 struct ahci_host_priv *hpriv = ap->host->private_data;
830 if (hpriv->cap & HOST_CAP_ALPM) {
859 if ((hpriv->cap2 & HOST_CAP2_SDS) &&
860 (hpriv->cap2 & HOST_CAP2_SADM) &&
883 struct ahci_host_priv *hpriv = ap->host->private_data;
887 if (!(hpriv->cap & HOST_CAP_SSS))
904 struct ahci_host_priv *hpriv = ap->host->private_data;
915 if (!(hpriv->flags & AHCI_HFLAG_DELAY_ENGINE))
916 hpriv->start_engine(ap);
953 struct ahci_host_priv *hpriv = ap->host->private_data;
956 rc = hpriv->stop_engine(ap);
974 struct ahci_host_priv *hpriv = host->private_data;
975 void __iomem *mmio = hpriv->mmio;
1013 if (!(hpriv->flags & AHCI_HFLAG_NO_WRITE_TO_RO))
1096 struct ahci_host_priv *hpriv = host->private_data;
1097 void __iomem *mmio = hpriv->mmio;
1112 struct ahci_host_priv *hpriv = ap->host->private_data;
1114 void __iomem *mmio = hpriv->mmio;
1142 if (hpriv->em_msg_type & EM_MSG_TYPE_LED) {
1153 writel(message[0], mmio + hpriv->em_loc);
1154 writel(message[1], mmio + hpriv->em_loc+4);
1261 struct ahci_host_priv *hpriv = ap->host->private_data;
1276 writel(1 << ap->port_no, hpriv->mmio + HOST_IRQ_STAT);
1283 struct ahci_host_priv *hpriv = ap->host->private_data;
1297 if ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS))
1303 struct ahci_host_priv *hpriv = host->private_data;
1304 void __iomem *mmio = hpriv->mmio;
1329 struct ahci_host_priv *hpriv = dev->link->ap->host->private_data;
1331 if (hpriv->flags & AHCI_HFLAG_SECT255) {
1371 struct ahci_host_priv *hpriv = ap->host->private_data;
1377 rc = hpriv->stop_engine(ap);
1390 if (!(hpriv->cap & HOST_CAP_CLO)) {
1408 hpriv->start_engine(ap);
1457 struct ahci_host_priv *hpriv = ap->host->private_data;
1506 if (rc == -EBUSY && hpriv->flags & AHCI_HFLAG_SRST_TOUT_IS_OFFLINE) {
1603 struct ahci_host_priv *hpriv = ap->host->private_data;
1608 hpriv->stop_engine(ap);
1620 hpriv->start_engine(ap);
1754 struct ahci_host_priv *hpriv = ap->host->private_data;
1795 if (hpriv->flags & AHCI_HFLAG_IGN_IRQ_IF_ERR)
1808 if (hpriv->flags & AHCI_HFLAG_IGN_SERR_INTERNAL)
1900 struct ahci_host_priv *hpriv = ap->host->private_data;
1932 if (hpriv->cap & HOST_CAP_SNTF)
2014 struct ahci_host_priv *hpriv;
2019 hpriv = host->private_data;
2020 mmio = hpriv->mmio;
2027 irq_masked = irq_stat & hpriv->port_map;
2208 struct ahci_host_priv *hpriv = ap->host->private_data;
2209 void __iomem *mmio = hpriv->mmio;
2225 struct ahci_host_priv *hpriv = ap->host->private_data;
2229 hpriv->stop_engine(ap);
2230 hpriv->start_engine(ap);
2236 hpriv->stop_engine(ap);
2251 struct ahci_host_priv *hpriv = ap->host->private_data;
2290 rc = hpriv->stop_engine(ap);
2319 hpriv->start_engine(ap);
2331 struct ahci_host_priv *hpriv = ap->host->private_data;
2347 rc = hpriv->stop_engine(ap);
2360 hpriv->start_engine(ap);
2365 struct ahci_host_priv *hpriv = ap->host->private_data;
2380 rc = hpriv->stop_engine(ap);
2393 hpriv->start_engine(ap);
2493 struct ahci_host_priv *hpriv = ap->host->private_data;
2515 if ((hpriv->cap & HOST_CAP_FBS) && sata_pmp_supported(ap)) {
2520 else if (hpriv->flags & AHCI_HFLAG_YES_FBS) {
2576 if (hpriv->flags & AHCI_HFLAG_MULTI_MSI) {
2590 struct ahci_host_priv *hpriv = ap->host->private_data;
2591 void __iomem *host_mmio = hpriv->mmio;
2610 struct ahci_host_priv *hpriv = host->private_data;
2614 vers = hpriv->version;
2615 cap = hpriv->cap;
2616 cap2 = hpriv->cap2;
2617 impl = hpriv->port_map;
2680 void ahci_set_em_messages(struct ahci_host_priv *hpriv,
2684 void __iomem *mmio = hpriv->mmio;
2688 if (!ahci_em_messages || !(hpriv->cap & HOST_CAP_EMS))
2695 hpriv->em_loc = ((em_loc >> 16) * 4);
2696 hpriv->em_buf_sz = ((em_loc & 0xff) * 4);
2697 hpriv->em_msg_type = messages;
2708 struct ahci_host_priv *hpriv = host->private_data;
2720 int irq = hpriv->get_irq_vector(host, i);
2752 struct ahci_host_priv *hpriv = host->private_data;
2753 int irq = hpriv->irq;
2756 if (hpriv->flags & AHCI_HFLAG_MULTI_MSI) {
2757 if (hpriv->irq_handler &&
2758 hpriv->irq_handler != ahci_single_level_irq_intr)
2761 if (!hpriv->get_irq_vector) {
2769 rc = ata_host_activate(host, irq, hpriv->irq_handler,