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