Lines Matching refs:u
60 req = readl(&hba->u.itl.iop->inbound_queue); in iop_wait_ready_itl()
67 writel(req, &hba->u.itl.iop->outbound_queue); in iop_wait_ready_itl()
68 readl(&hba->u.itl.iop->outbound_intstatus); in iop_wait_ready_itl()
98 while ((req = readl(&hba->u.itl.iop->outbound_queue)) != in hptiop_drain_outbound_queue_itl()
107 ((char __iomem *)hba->u.itl.iop + req); in hptiop_drain_outbound_queue_itl()
123 struct hpt_iopmu_itl __iomem *iop = hba->u.itl.iop; in iop_intr_itl()
124 void __iomem *plx = hba->u.itl.plx; in iop_intr_itl()
171 u32 inbound_head = readl(&hba->u.mv.mu->inbound_head); in mv_inbound_write()
177 memcpy_toio(&hba->u.mv.mu->inbound_q[inbound_head], &p, 8); in mv_inbound_write()
178 writel(head, &hba->u.mv.mu->inbound_head); in mv_inbound_write()
180 &hba->u.mv.regs->inbound_doorbell); in mv_inbound_write()
216 status = readl(&hba->u.mv.regs->outbound_doorbell); in iop_intr_mv()
217 writel(~status, &hba->u.mv.regs->outbound_doorbell); in iop_intr_mv()
221 msg = readl(&hba->u.mv.mu->outbound_msg); in iop_intr_mv()
230 while ((tag = mv_outbound_read(hba->u.mv.mu))) in iop_intr_mv()
267 writel(0, &(hba->u.mvfrey.mu->pcie_f0_int_enable)); in iop_intr_mvfrey()
269 status = readl(&(hba->u.mvfrey.mu->f0_doorbell)); in iop_intr_mvfrey()
271 writel(status, &(hba->u.mvfrey.mu->f0_doorbell)); in iop_intr_mvfrey()
273 u32 msg = readl(&(hba->u.mvfrey.mu->cpu_to_f0_msg_a)); in iop_intr_mvfrey()
280 status = readl(&(hba->u.mvfrey.mu->isr_cause)); in iop_intr_mvfrey()
282 writel(status, &(hba->u.mvfrey.mu->isr_cause)); in iop_intr_mvfrey()
284 cptr = *hba->u.mvfrey.outlist_cptr & 0xff; in iop_intr_mvfrey()
285 cur_rptr = hba->u.mvfrey.outlist_rptr; in iop_intr_mvfrey()
288 if (cur_rptr == hba->u.mvfrey.list_count) in iop_intr_mvfrey()
291 _tag = hba->u.mvfrey.outlist[cur_rptr].val; in iop_intr_mvfrey()
296 hba->u.mvfrey.outlist_rptr = cur_rptr; in iop_intr_mvfrey()
297 } while (cptr != (*hba->u.mvfrey.outlist_cptr & 0xff)); in iop_intr_mvfrey()
301 writel(0x1010, &(hba->u.mvfrey.mu->pcie_f0_int_enable)); in iop_intr_mvfrey()
314 writel((unsigned long)req - (unsigned long)hba->u.itl.iop, in iop_send_sync_request_itl()
315 &hba->u.itl.iop->inbound_queue); in iop_send_sync_request_itl()
316 readl(&hba->u.itl.iop->outbound_intstatus); in iop_send_sync_request_itl()
331 struct hpt_iop_request_header *reqhdr = hba->u.mv.internal_req; in iop_send_sync_request_mv()
336 mv_inbound_write(hba->u.mv.internal_req_phy | in iop_send_sync_request_mv()
352 hba->u.mvfrey.internal_req.req_virt; in iop_send_sync_request_mvfrey()
357 hba->ops->post_req(hba, &(hba->u.mvfrey.internal_req)); in iop_send_sync_request_mvfrey()
370 writel(msg, &hba->u.itl.iop->inbound_msgaddr0); in hptiop_post_msg_itl()
371 readl(&hba->u.itl.iop->outbound_intstatus); in hptiop_post_msg_itl()
376 writel(msg, &hba->u.mv.mu->inbound_msg); in hptiop_post_msg_mv()
377 writel(MVIOP_MU_INBOUND_INT_MSG, &hba->u.mv.regs->inbound_doorbell); in hptiop_post_msg_mv()
378 readl(&hba->u.mv.regs->inbound_doorbell); in hptiop_post_msg_mv()
383 writel(msg, &(hba->u.mvfrey.mu->f0_to_cpu_msg_a)); in hptiop_post_msg_mvfrey()
384 readl(&(hba->u.mvfrey.mu->f0_to_cpu_msg_a)); in hptiop_post_msg_mvfrey()
414 req32 = readl(&hba->u.itl.iop->inbound_queue); in iop_get_config_itl()
419 ((unsigned long)hba->u.itl.iop + req32); in iop_get_config_itl()
432 writel(req32, &hba->u.itl.iop->outbound_queue); in iop_get_config_itl()
439 struct hpt_iop_request_get_config *req = hba->u.mv.internal_req; in iop_get_config_mv()
461 struct hpt_iop_request_get_config *info = hba->u.mvfrey.config; in iop_get_config_mvfrey()
486 req32 = readl(&hba->u.itl.iop->inbound_queue); in iop_set_config_itl()
491 ((unsigned long)hba->u.itl.iop + req32); in iop_set_config_itl()
508 writel(req32, &hba->u.itl.iop->outbound_queue); in iop_set_config_itl()
515 struct hpt_iop_request_set_config *req = hba->u.mv.internal_req; in iop_set_config_mv()
538 hba->u.mvfrey.internal_req.req_virt; in iop_set_config_mvfrey()
560 &hba->u.itl.iop->outbound_intmask); in hptiop_enable_intr_itl()
566 &hba->u.mv.regs->outbound_intmask); in hptiop_enable_intr_mv()
571 writel(CPU_TO_F0_DRBL_MSG_BIT, &(hba->u.mvfrey.mu->f0_doorbell_enable)); in hptiop_enable_intr_mvfrey()
572 writel(0x1, &(hba->u.mvfrey.mu->isr_enable)); in hptiop_enable_intr_mvfrey()
573 writel(0x1010, &(hba->u.mvfrey.mu->pcie_f0_int_enable)); in hptiop_enable_intr_mvfrey()
622 hba->u.itl.iop = hptiop_map_pci_bar(hba, 0); in hptiop_map_pci_bar_itl()
623 if (hba->u.itl.iop == NULL) in hptiop_map_pci_bar_itl()
626 hba->u.itl.plx = hba->u.itl.iop; in hptiop_map_pci_bar_itl()
627 hba->u.itl.iop = hptiop_map_pci_bar(hba, 2); in hptiop_map_pci_bar_itl()
628 if (hba->u.itl.iop == NULL) { in hptiop_map_pci_bar_itl()
629 iounmap(hba->u.itl.plx); in hptiop_map_pci_bar_itl()
638 if (hba->u.itl.plx) in hptiop_unmap_pci_bar_itl()
639 iounmap(hba->u.itl.plx); in hptiop_unmap_pci_bar_itl()
640 iounmap(hba->u.itl.iop); in hptiop_unmap_pci_bar_itl()
645 hba->u.mv.regs = hptiop_map_pci_bar(hba, 0); in hptiop_map_pci_bar_mv()
646 if (hba->u.mv.regs == NULL) in hptiop_map_pci_bar_mv()
649 hba->u.mv.mu = hptiop_map_pci_bar(hba, 2); in hptiop_map_pci_bar_mv()
650 if (hba->u.mv.mu == NULL) { in hptiop_map_pci_bar_mv()
651 iounmap(hba->u.mv.regs); in hptiop_map_pci_bar_mv()
660 hba->u.mvfrey.config = hptiop_map_pci_bar(hba, 0); in hptiop_map_pci_bar_mvfrey()
661 if (hba->u.mvfrey.config == NULL) in hptiop_map_pci_bar_mvfrey()
664 hba->u.mvfrey.mu = hptiop_map_pci_bar(hba, 2); in hptiop_map_pci_bar_mvfrey()
665 if (hba->u.mvfrey.mu == NULL) { in hptiop_map_pci_bar_mvfrey()
666 iounmap(hba->u.mvfrey.config); in hptiop_map_pci_bar_mvfrey()
675 iounmap(hba->u.mv.regs); in hptiop_unmap_pci_bar_mv()
676 iounmap(hba->u.mv.mu); in hptiop_unmap_pci_bar_mv()
681 iounmap(hba->u.mvfrey.config); in hptiop_unmap_pci_bar_mvfrey()
682 iounmap(hba->u.mvfrey.mu); in hptiop_unmap_pci_bar_mvfrey()
810 ((unsigned long)hba->u.itl.iop + tag); in hptiop_iop_request_callback_itl()
839 writel(tag, &hba->u.itl.iop->outbound_queue); in hptiop_iop_request_callback_itl()
903 &hba->u.itl.iop->inbound_queue); in hptiop_post_req_itl()
906 &hba->u.itl.iop->inbound_queue); in hptiop_post_req_itl()
947 hba->u.mvfrey.inlist_wptr++; in hptiop_post_req_mvfrey()
948 index = hba->u.mvfrey.inlist_wptr & 0x3fff; in hptiop_post_req_mvfrey()
950 if (index == hba->u.mvfrey.list_count) { in hptiop_post_req_mvfrey()
952 hba->u.mvfrey.inlist_wptr &= ~0x3fff; in hptiop_post_req_mvfrey()
953 hba->u.mvfrey.inlist_wptr ^= CL_POINTER_TOGGLE; in hptiop_post_req_mvfrey()
956 hba->u.mvfrey.inlist[index].addr = in hptiop_post_req_mvfrey()
958 hba->u.mvfrey.inlist[index].intrfc_len = (reqhdr->size + 3) / 4; in hptiop_post_req_mvfrey()
959 writel(hba->u.mvfrey.inlist_wptr, in hptiop_post_req_mvfrey()
960 &(hba->u.mvfrey.mu->inbound_write_ptr)); in hptiop_post_req_mvfrey()
961 readl(&(hba->u.mvfrey.mu->inbound_write_ptr)); in hptiop_post_req_mvfrey()
976 u32 list_count = hba->u.mvfrey.list_count; in hptiop_reset_comm_mvfrey()
984 writel(cpu_to_le32(hba->u.mvfrey.inlist_phy & 0xffffffff), in hptiop_reset_comm_mvfrey()
985 &(hba->u.mvfrey.mu->inbound_base)); in hptiop_reset_comm_mvfrey()
986 writel(cpu_to_le32((hba->u.mvfrey.inlist_phy >> 16) >> 16), in hptiop_reset_comm_mvfrey()
987 &(hba->u.mvfrey.mu->inbound_base_high)); in hptiop_reset_comm_mvfrey()
989 writel(cpu_to_le32(hba->u.mvfrey.outlist_phy & 0xffffffff), in hptiop_reset_comm_mvfrey()
990 &(hba->u.mvfrey.mu->outbound_base)); in hptiop_reset_comm_mvfrey()
991 writel(cpu_to_le32((hba->u.mvfrey.outlist_phy >> 16) >> 16), in hptiop_reset_comm_mvfrey()
992 &(hba->u.mvfrey.mu->outbound_base_high)); in hptiop_reset_comm_mvfrey()
994 writel(cpu_to_le32(hba->u.mvfrey.outlist_cptr_phy & 0xffffffff), in hptiop_reset_comm_mvfrey()
995 &(hba->u.mvfrey.mu->outbound_shadow_base)); in hptiop_reset_comm_mvfrey()
996 writel(cpu_to_le32((hba->u.mvfrey.outlist_cptr_phy >> 16) >> 16), in hptiop_reset_comm_mvfrey()
997 &(hba->u.mvfrey.mu->outbound_shadow_base_high)); in hptiop_reset_comm_mvfrey()
999 hba->u.mvfrey.inlist_wptr = (list_count - 1) | CL_POINTER_TOGGLE; in hptiop_reset_comm_mvfrey()
1000 *hba->u.mvfrey.outlist_cptr = (list_count - 1) | CL_POINTER_TOGGLE; in hptiop_reset_comm_mvfrey()
1001 hba->u.mvfrey.outlist_rptr = list_count - 1; in hptiop_reset_comm_mvfrey()
1201 hba->u.mv.internal_req = dma_alloc_coherent(&hba->pcidev->dev, in hptiop_internal_memalloc_mv()
1202 0x800, &hba->u.mv.internal_req_phy, GFP_KERNEL); in hptiop_internal_memalloc_mv()
1203 if (hba->u.mv.internal_req) in hptiop_internal_memalloc_mv()
1211 u32 list_count = readl(&hba->u.mvfrey.mu->inbound_conf_ctl); in hptiop_internal_memalloc_mvfrey()
1224 hba->u.mvfrey.list_count = list_count; in hptiop_internal_memalloc_mvfrey()
1225 hba->u.mvfrey.internal_mem_size = 0x800 + in hptiop_internal_memalloc_mvfrey()
1231 hba->u.mvfrey.internal_mem_size, &phy, GFP_KERNEL); in hptiop_internal_memalloc_mvfrey()
1235 hba->u.mvfrey.internal_req.req_virt = p; in hptiop_internal_memalloc_mvfrey()
1236 hba->u.mvfrey.internal_req.req_shifted_phy = phy >> 5; in hptiop_internal_memalloc_mvfrey()
1237 hba->u.mvfrey.internal_req.scp = NULL; in hptiop_internal_memalloc_mvfrey()
1238 hba->u.mvfrey.internal_req.next = NULL; in hptiop_internal_memalloc_mvfrey()
1243 hba->u.mvfrey.inlist = (struct mvfrey_inlist_entry *)p; in hptiop_internal_memalloc_mvfrey()
1244 hba->u.mvfrey.inlist_phy = phy; in hptiop_internal_memalloc_mvfrey()
1249 hba->u.mvfrey.outlist = (struct mvfrey_outlist_entry *)p; in hptiop_internal_memalloc_mvfrey()
1250 hba->u.mvfrey.outlist_phy = phy; in hptiop_internal_memalloc_mvfrey()
1255 hba->u.mvfrey.outlist_cptr = (__le32 *)p; in hptiop_internal_memalloc_mvfrey()
1256 hba->u.mvfrey.outlist_cptr_phy = phy; in hptiop_internal_memalloc_mvfrey()
1268 if (hba->u.mv.internal_req) { in hptiop_internal_memfree_mv()
1270 hba->u.mv.internal_req, hba->u.mv.internal_req_phy); in hptiop_internal_memfree_mv()
1278 if (hba->u.mvfrey.internal_req.req_virt) { in hptiop_internal_memfree_mvfrey()
1280 hba->u.mvfrey.internal_mem_size, in hptiop_internal_memfree_mvfrey()
1281 hba->u.mvfrey.internal_req.req_virt, in hptiop_internal_memfree_mvfrey()
1283 hba->u.mvfrey.internal_req.req_shifted_phy << 5); in hptiop_internal_memfree_mvfrey()
1535 int_mask = readl(&hba->u.itl.iop->outbound_intmask); in hptiop_disable_intr_itl()
1538 &hba->u.itl.iop->outbound_intmask); in hptiop_disable_intr_itl()
1539 readl(&hba->u.itl.iop->outbound_intmask); in hptiop_disable_intr_itl()
1544 writel(0, &hba->u.mv.regs->outbound_intmask); in hptiop_disable_intr_mv()
1545 readl(&hba->u.mv.regs->outbound_intmask); in hptiop_disable_intr_mv()
1550 writel(0, &(hba->u.mvfrey.mu->f0_doorbell_enable)); in hptiop_disable_intr_mvfrey()
1551 readl(&(hba->u.mvfrey.mu->f0_doorbell_enable)); in hptiop_disable_intr_mvfrey()
1552 writel(0, &(hba->u.mvfrey.mu->isr_enable)); in hptiop_disable_intr_mvfrey()
1553 readl(&(hba->u.mvfrey.mu->isr_enable)); in hptiop_disable_intr_mvfrey()
1554 writel(0, &(hba->u.mvfrey.mu->pcie_f0_int_enable)); in hptiop_disable_intr_mvfrey()
1555 readl(&(hba->u.mvfrey.mu->pcie_f0_int_enable)); in hptiop_disable_intr_mvfrey()