Lines Matching refs:pp

647 					struct mv_port_priv *pp);
918 struct mv_port_priv *pp = ap->private_data; in mv_save_cached_regs() local
920 pp->cached.fiscfg = readl(port_mmio + FISCFG); in mv_save_cached_regs()
921 pp->cached.ltmode = readl(port_mmio + LTMODE); in mv_save_cached_regs()
922 pp->cached.haltcond = readl(port_mmio + EDMA_HALTCOND); in mv_save_cached_regs()
923 pp->cached.unknown_rsvd = readl(port_mmio + EDMA_UNKNOWN_RSVD); in mv_save_cached_regs()
963 struct mv_port_priv *pp) in mv_set_edma_ptrs() argument
970 pp->req_idx &= MV_MAX_Q_DEPTH_MASK; /* paranoia */ in mv_set_edma_ptrs()
971 index = pp->req_idx << EDMA_REQ_Q_PTR_SHIFT; in mv_set_edma_ptrs()
973 WARN_ON(pp->crqb_dma & 0x3ff); in mv_set_edma_ptrs()
974 writel((pp->crqb_dma >> 16) >> 16, port_mmio + EDMA_REQ_Q_BASE_HI); in mv_set_edma_ptrs()
975 writelfl((pp->crqb_dma & EDMA_REQ_Q_BASE_LO_MASK) | index, in mv_set_edma_ptrs()
982 pp->resp_idx &= MV_MAX_Q_DEPTH_MASK; /* paranoia */ in mv_set_edma_ptrs()
983 index = pp->resp_idx << EDMA_RSP_Q_PTR_SHIFT; in mv_set_edma_ptrs()
985 WARN_ON(pp->crpb_dma & 0xff); in mv_set_edma_ptrs()
986 writel((pp->crpb_dma >> 16) >> 16, port_mmio + EDMA_RSP_Q_BASE_HI); in mv_set_edma_ptrs()
988 writelfl((pp->crpb_dma & EDMA_RSP_Q_BASE_LO_MASK) | index, in mv_set_edma_ptrs()
1133 struct mv_port_priv *pp, u8 protocol) in mv_start_edma() argument
1137 if (pp->pp_flags & MV_PP_FLAG_EDMA_EN) { in mv_start_edma()
1138 int using_ncq = ((pp->pp_flags & MV_PP_FLAG_NCQ_EN) != 0); in mv_start_edma()
1142 if (!(pp->pp_flags & MV_PP_FLAG_EDMA_EN)) { in mv_start_edma()
1147 mv_set_edma_ptrs(port_mmio, hpriv, pp); in mv_start_edma()
1151 pp->pp_flags |= MV_PP_FLAG_EDMA_EN; in mv_start_edma()
1205 struct mv_port_priv *pp = ap->private_data; in mv_stop_edma() local
1208 if (!(pp->pp_flags & MV_PP_FLAG_EDMA_EN)) in mv_stop_edma()
1210 pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN; in mv_stop_edma()
1391 struct mv_port_priv *pp = ap->private_data; in mv_qc_defer() local
1397 if (pp->pp_flags & MV_PP_FLAG_DELAYED_EH) in mv_qc_defer()
1430 if ((pp->pp_flags & MV_PP_FLAG_EDMA_EN) && in mv_qc_defer()
1431 (pp->pp_flags & MV_PP_FLAG_NCQ_EN)) { in mv_qc_defer()
1445 struct mv_port_priv *pp = ap->private_data; in mv_config_fbs() local
1448 u32 fiscfg, *old_fiscfg = &pp->cached.fiscfg; in mv_config_fbs()
1449 u32 ltmode, *old_ltmode = &pp->cached.ltmode; in mv_config_fbs()
1450 u32 haltcond, *old_haltcond = &pp->cached.haltcond; in mv_config_fbs()
1501 struct mv_port_priv *pp = ap->private_data; in mv_bmdma_enable_iie() local
1502 u32 new, *old = &pp->cached.unknown_rsvd; in mv_bmdma_enable_iie()
1554 struct mv_port_priv *pp = this_ap->private_data; in mv_soc_led_blink_disable() local
1556 if (pp->pp_flags & MV_PP_FLAG_NCQ_EN) in mv_soc_led_blink_disable()
1569 struct mv_port_priv *pp = ap->private_data; in mv_edma_cfg() local
1575 pp->pp_flags &= in mv_edma_cfg()
1600 pp->pp_flags |= MV_PP_FLAG_FBS_EN; in mv_edma_cfg()
1624 pp->pp_flags |= MV_PP_FLAG_NCQ_EN; in mv_edma_cfg()
1633 struct mv_port_priv *pp = ap->private_data; in mv_port_free_dma_mem() local
1636 if (pp->crqb) { in mv_port_free_dma_mem()
1637 dma_pool_free(hpriv->crqb_pool, pp->crqb, pp->crqb_dma); in mv_port_free_dma_mem()
1638 pp->crqb = NULL; in mv_port_free_dma_mem()
1640 if (pp->crpb) { in mv_port_free_dma_mem()
1641 dma_pool_free(hpriv->crpb_pool, pp->crpb, pp->crpb_dma); in mv_port_free_dma_mem()
1642 pp->crpb = NULL; in mv_port_free_dma_mem()
1649 if (pp->sg_tbl[tag]) { in mv_port_free_dma_mem()
1652 pp->sg_tbl[tag], in mv_port_free_dma_mem()
1653 pp->sg_tbl_dma[tag]); in mv_port_free_dma_mem()
1654 pp->sg_tbl[tag] = NULL; in mv_port_free_dma_mem()
1673 struct mv_port_priv *pp; in mv_port_start() local
1677 pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); in mv_port_start()
1678 if (!pp) in mv_port_start()
1680 ap->private_data = pp; in mv_port_start()
1682 pp->crqb = dma_pool_zalloc(hpriv->crqb_pool, GFP_KERNEL, &pp->crqb_dma); in mv_port_start()
1683 if (!pp->crqb) in mv_port_start()
1686 pp->crpb = dma_pool_zalloc(hpriv->crpb_pool, GFP_KERNEL, &pp->crpb_dma); in mv_port_start()
1687 if (!pp->crpb) in mv_port_start()
1699 pp->sg_tbl[tag] = dma_pool_alloc(hpriv->sg_tbl_pool, in mv_port_start()
1700 GFP_KERNEL, &pp->sg_tbl_dma[tag]); in mv_port_start()
1701 if (!pp->sg_tbl[tag]) in mv_port_start()
1704 pp->sg_tbl[tag] = pp->sg_tbl[0]; in mv_port_start()
1705 pp->sg_tbl_dma[tag] = pp->sg_tbl_dma[0]; in mv_port_start()
1752 struct mv_port_priv *pp = qc->ap->private_data; in mv_fill_sg() local
1757 mv_sg = pp->sg_tbl[qc->hw_tag]; in mv_fill_sg()
1850 struct mv_port_priv *pp = ap->private_data; in mv_bmdma_setup() local
1858 writel((pp->sg_tbl_dma[qc->hw_tag] >> 16) >> 16, in mv_bmdma_setup()
1860 writelfl(pp->sg_tbl_dma[qc->hw_tag], in mv_bmdma_setup()
2002 struct mv_port_priv *pp = ap->private_data; in mv_qc_prep() local
2031 in_index = pp->req_idx; in mv_qc_prep()
2033 pp->crqb[in_index].sg_addr = in mv_qc_prep()
2034 cpu_to_le32(pp->sg_tbl_dma[qc->hw_tag] & 0xffffffff); in mv_qc_prep()
2035 pp->crqb[in_index].sg_addr_hi = in mv_qc_prep()
2036 cpu_to_le32((pp->sg_tbl_dma[qc->hw_tag] >> 16) >> 16); in mv_qc_prep()
2037 pp->crqb[in_index].ctrl_flags = cpu_to_le16(flags); in mv_qc_prep()
2039 cw = &pp->crqb[in_index].ata_cmd[0]; in mv_qc_prep()
2103 struct mv_port_priv *pp = ap->private_data; in mv_qc_prep_iie() local
2125 in_index = pp->req_idx; in mv_qc_prep_iie()
2127 crqb = (struct mv_crqb_iie *) &pp->crqb[in_index]; in mv_qc_prep_iie()
2128 crqb->addr = cpu_to_le32(pp->sg_tbl_dma[qc->hw_tag] & 0xffffffff); in mv_qc_prep_iie()
2129 crqb->addr_hi = cpu_to_le32((pp->sg_tbl_dma[qc->hw_tag] >> 16) >> 16); in mv_qc_prep_iie()
2176 struct mv_port_priv *pp = ap->private_data; in mv_sff_check_status() local
2178 if (pp->pp_flags & MV_PP_FLAG_FAKE_ATA_BUSY) { in mv_sff_check_status()
2180 pp->pp_flags &= ~MV_PP_FLAG_FAKE_ATA_BUSY; in mv_sff_check_status()
2252 struct mv_port_priv *pp = ap->private_data; in mv_qc_issue_fis() local
2264 pp->pp_flags |= MV_PP_FLAG_FAKE_ATA_BUSY; in mv_qc_issue_fis()
2270 pp->pp_flags |= MV_PP_FLAG_FAKE_ATA_BUSY; in mv_qc_issue_fis()
2303 struct mv_port_priv *pp = ap->private_data; in mv_qc_issue() local
2307 pp->pp_flags &= ~MV_PP_FLAG_FAKE_ATA_BUSY; /* paranoia */ in mv_qc_issue()
2318 mv_start_edma(ap, port_mmio, pp, qc->tf.protocol); in mv_qc_issue()
2319 pp->req_idx = (pp->req_idx + 1) & MV_MAX_Q_DEPTH_MASK; in mv_qc_issue()
2320 in_index = pp->req_idx << EDMA_REQ_Q_PTR_SHIFT; in mv_qc_issue()
2323 writelfl((pp->crqb_dma & EDMA_REQ_Q_BASE_LO_MASK) | in_index, in mv_qc_issue()
2389 struct mv_port_priv *pp = ap->private_data; in mv_get_active_qc() local
2392 if (pp->pp_flags & MV_PP_FLAG_NCQ_EN) in mv_get_active_qc()
2404 struct mv_port_priv *pp = ap->private_data; in mv_pmp_error_handler() local
2406 if (pp->pp_flags & MV_PP_FLAG_DELAYED_EH) { in mv_pmp_error_handler()
2413 pmp_map = pp->delayed_eh_pmp_map; in mv_pmp_error_handler()
2414 pp->pp_flags &= ~MV_PP_FLAG_DELAYED_EH; in mv_pmp_error_handler()
2472 struct mv_port_priv *pp = ap->private_data; in mv_handle_fbs_ncq_dev_err() local
2484 if (!(pp->pp_flags & MV_PP_FLAG_DELAYED_EH)) { in mv_handle_fbs_ncq_dev_err()
2485 pp->pp_flags |= MV_PP_FLAG_DELAYED_EH; in mv_handle_fbs_ncq_dev_err()
2486 pp->delayed_eh_pmp_map = 0; in mv_handle_fbs_ncq_dev_err()
2488 old_map = pp->delayed_eh_pmp_map; in mv_handle_fbs_ncq_dev_err()
2492 pp->delayed_eh_pmp_map = new_map; in mv_handle_fbs_ncq_dev_err()
2499 __func__, pp->delayed_eh_pmp_map, in mv_handle_fbs_ncq_dev_err()
2504 mv_process_crpb_entries(ap, pp); in mv_handle_fbs_ncq_dev_err()
2532 struct mv_port_priv *pp = ap->private_data; in mv_handle_dev_err() local
2534 if (!(pp->pp_flags & MV_PP_FLAG_EDMA_EN)) in mv_handle_dev_err()
2536 if (!(pp->pp_flags & MV_PP_FLAG_FBS_EN)) in mv_handle_dev_err()
2545 if (pp->pp_flags & MV_PP_FLAG_NCQ_EN) { in mv_handle_dev_err()
2553 __func__, edma_err_cause, pp->pp_flags); in mv_handle_dev_err()
2565 __func__, edma_err_cause, pp->pp_flags); in mv_handle_dev_err()
2608 struct mv_port_priv *pp = ap->private_data; in mv_err_intr() local
2642 edma_err_cause, pp->pp_flags); in mv_err_intr()
2684 pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN; in mv_err_intr()
2690 pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN; in mv_err_intr()
2766 static void mv_process_crpb_entries(struct ata_port *ap, struct mv_port_priv *pp) in mv_process_crpb_entries() argument
2773 int ncq_enabled = (pp->pp_flags & MV_PP_FLAG_NCQ_EN); in mv_process_crpb_entries()
2780 while (in_index != pp->resp_idx) { in mv_process_crpb_entries()
2782 struct mv_crpb *response = &pp->crpb[pp->resp_idx]; in mv_process_crpb_entries()
2784 pp->resp_idx = (pp->resp_idx + 1) & MV_MAX_Q_DEPTH_MASK; in mv_process_crpb_entries()
2802 writelfl((pp->crpb_dma & EDMA_RSP_Q_BASE_LO_MASK) | in mv_process_crpb_entries()
2803 (pp->resp_idx << EDMA_RSP_Q_PTR_SHIFT), in mv_process_crpb_entries()
2810 struct mv_port_priv *pp; in mv_port_intr() local
2818 pp = ap->private_data; in mv_port_intr()
2819 edma_was_enabled = (pp->pp_flags & MV_PP_FLAG_EDMA_EN); in mv_port_intr()
2824 mv_process_crpb_entries(ap, pp); in mv_port_intr()
2825 if (pp->pp_flags & MV_PP_FLAG_DELAYED_EH) in mv_port_intr()
3593 struct mv_port_priv *pp = ap->private_data; in mv_hardreset() local
3600 pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN; in mv_hardreset()
3601 pp->pp_flags &= in mv_hardreset()