Lines Matching refs:p2p

382 	struct scif_p2p_info *p2p;  in scif_init_p2p_info()  local
390 p2p = kzalloc(sizeof(*p2p), GFP_KERNEL); in scif_init_p2p_info()
391 if (!p2p) in scif_init_p2p_info()
393 p2p->ppi_sg[SCIF_PPI_MMIO] = scif_p2p_setsg(psdev->mmio->pa, in scif_init_p2p_info()
395 if (!p2p->ppi_sg[SCIF_PPI_MMIO]) in scif_init_p2p_info()
397 p2p->sg_nentries[SCIF_PPI_MMIO] = num_mmio_pages; in scif_init_p2p_info()
400 p2p->ppi_sg[SCIF_PPI_APER] = scif_p2p_setsg(psdev->aper->pa, in scif_init_p2p_info()
403 p2p->sg_nentries[SCIF_PPI_APER] = num_aper_chunks; in scif_init_p2p_info()
404 err = dma_map_sg(&sdev->dev, p2p->ppi_sg[SCIF_PPI_MMIO], in scif_init_p2p_info()
408 err = dma_map_sg(&sdev->dev, p2p->ppi_sg[SCIF_PPI_APER], in scif_init_p2p_info()
412 p2p->ppi_da[SCIF_PPI_MMIO] = sg_dma_address(p2p->ppi_sg[SCIF_PPI_MMIO]); in scif_init_p2p_info()
413 p2p->ppi_da[SCIF_PPI_APER] = sg_dma_address(p2p->ppi_sg[SCIF_PPI_APER]); in scif_init_p2p_info()
414 p2p->ppi_len[SCIF_PPI_MMIO] = num_mmio_pages; in scif_init_p2p_info()
415 p2p->ppi_len[SCIF_PPI_APER] = num_aper_pages; in scif_init_p2p_info()
416 p2p->ppi_peer_id = peerdev->node; in scif_init_p2p_info()
417 return p2p; in scif_init_p2p_info()
419 dma_unmap_sg(&sdev->dev, p2p->ppi_sg[SCIF_PPI_MMIO], in scif_init_p2p_info()
420 p2p->sg_nentries[SCIF_PPI_MMIO], DMA_BIDIRECTIONAL); in scif_init_p2p_info()
422 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_MMIO]); in scif_init_p2p_info()
423 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_APER]); in scif_init_p2p_info()
425 kfree(p2p); in scif_init_p2p_info()
431 struct scif_p2p_info *p2p) in scif_deinit_p2p_info() argument
435 dma_unmap_sg(&sdev->dev, p2p->ppi_sg[SCIF_PPI_MMIO], in scif_deinit_p2p_info()
436 p2p->sg_nentries[SCIF_PPI_MMIO], DMA_BIDIRECTIONAL); in scif_deinit_p2p_info()
437 dma_unmap_sg(&sdev->dev, p2p->ppi_sg[SCIF_PPI_APER], in scif_deinit_p2p_info()
438 p2p->sg_nentries[SCIF_PPI_APER], DMA_BIDIRECTIONAL); in scif_deinit_p2p_info()
439 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_MMIO]); in scif_deinit_p2p_info()
440 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_APER]); in scif_deinit_p2p_info()
441 kfree(p2p); in scif_deinit_p2p_info()
457 struct scif_p2p_info *p2p; in scif_node_connect() local
475 if (!list_empty(&dev_i->p2p)) { in scif_node_connect()
476 list_for_each_safe(pos, tmp, &dev_i->p2p) { in scif_node_connect()
477 p2p = list_entry(pos, struct scif_p2p_info, ppi_list); in scif_node_connect()
478 if (p2p->ppi_peer_id == dev_j->node) in scif_node_connect()
490 list_add_tail(&p2p_ij->ppi_list, &dev_i->p2p); in scif_node_connect()
491 list_add_tail(&p2p_ji->ppi_list, &dev_j->p2p); in scif_node_connect()
1303 struct scif_p2p_info *p2p; in scif_destroy_p2p() local
1309 list_for_each_safe(pos, tmp, &scifdev->p2p) { in scif_destroy_p2p()
1310 p2p = list_entry(pos, struct scif_p2p_info, ppi_list); in scif_destroy_p2p()
1311 dma_unmap_sg(&scifdev->sdev->dev, p2p->ppi_sg[SCIF_PPI_MMIO], in scif_destroy_p2p()
1312 p2p->sg_nentries[SCIF_PPI_MMIO], in scif_destroy_p2p()
1314 dma_unmap_sg(&scifdev->sdev->dev, p2p->ppi_sg[SCIF_PPI_APER], in scif_destroy_p2p()
1315 p2p->sg_nentries[SCIF_PPI_APER], in scif_destroy_p2p()
1317 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_MMIO]); in scif_destroy_p2p()
1318 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_APER]); in scif_destroy_p2p()
1320 kfree(p2p); in scif_destroy_p2p()
1326 list_for_each_safe(pos, tmp, &peer_dev->p2p) { in scif_destroy_p2p()
1327 p2p = list_entry(pos, struct scif_p2p_info, ppi_list); in scif_destroy_p2p()
1328 if (p2p->ppi_peer_id == scifdev->node) { in scif_destroy_p2p()
1330 p2p->ppi_sg[SCIF_PPI_MMIO], in scif_destroy_p2p()
1331 p2p->sg_nentries[SCIF_PPI_MMIO], in scif_destroy_p2p()
1334 p2p->ppi_sg[SCIF_PPI_APER], in scif_destroy_p2p()
1335 p2p->sg_nentries[SCIF_PPI_APER], in scif_destroy_p2p()
1337 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_MMIO]); in scif_destroy_p2p()
1338 scif_p2p_freesg(p2p->ppi_sg[SCIF_PPI_APER]); in scif_destroy_p2p()
1340 kfree(p2p); in scif_destroy_p2p()