diff mbox series

[6/7] powerpc/powernv/pci: Invalidate TCE cache after DMA map

Message ID 1298010887.2569253.1529798076885.JavaMail.zimbra@raptorengineeringinc.com (mailing list archive)
State Changes Requested
Headers show
Series Add initial version of "cognitive DMA" | expand

Commit Message

Timothy Pearson June 23, 2018, 11:54 p.m. UTC
setup

Per the IODA2, TCEs must be invalidated after their settings
have been changed.  Invalidate the cache after the address
is changed during TCE allocation when using pseudo DMA.

Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
---
 arch/powerpc/platforms/powernv/pci-dma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Alexey Kardashevskiy June 25, 2018, 3:49 a.m. UTC | #1
On Sat, 23 Jun 2018 18:54:36 -0500 (CDT)
Timothy Pearson <tpearson@raptorengineering.com> wrote:

>  setup
> 
> Per the IODA2, TCEs must be invalidated after their settings
> have been changed.  Invalidate the cache after the address
> is changed during TCE allocation when using pseudo DMA.
> 
> Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
> ---
>  arch/powerpc/platforms/powernv/pci-dma.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/powernv/pci-dma.c b/arch/powerpc/platforms/powernv/pci-dma.c
> index 237940a2a052..060dbc168401 100644
> --- a/arch/powerpc/platforms/powernv/pci-dma.c
> +++ b/arch/powerpc/platforms/powernv/pci-dma.c
> @@ -42,8 +42,7 @@ static int dma_pseudo_bypass_select_tce(struct pnv_ioda_pe *pe, phys_addr_t addr
>  	new = cpu_to_be64(addr | TCE_PCI_READ | TCE_PCI_WRITE);
>  	pe->tces[tce] = new;
>  	mb();
> -	pe_info(pe, "allocating TCE %i 0x%016llx (old 0x%016llx)\n",
> -		tce, new, old);
> +	pnv_pci_ioda2_tce_invalidate_pe(pe);

This should be merged into "powerpc/powernv: DMA operations for
discontiguous" and "[PATCH 5/7] powerpc/powernv/pci: Export" should be
first in the series.


>  	spin_unlock_irqrestore(&pe->tce_alloc_lock, flags);
>  
>  	return tce;
> -- 
> 2.17.1



--
Alexey
diff mbox series

Patch

diff --git a/arch/powerpc/platforms/powernv/pci-dma.c b/arch/powerpc/platforms/powernv/pci-dma.c
index 237940a2a052..060dbc168401 100644
--- a/arch/powerpc/platforms/powernv/pci-dma.c
+++ b/arch/powerpc/platforms/powernv/pci-dma.c
@@ -42,8 +42,7 @@  static int dma_pseudo_bypass_select_tce(struct pnv_ioda_pe *pe, phys_addr_t addr
 	new = cpu_to_be64(addr | TCE_PCI_READ | TCE_PCI_WRITE);
 	pe->tces[tce] = new;
 	mb();
-	pe_info(pe, "allocating TCE %i 0x%016llx (old 0x%016llx)\n",
-		tce, new, old);
+	pnv_pci_ioda2_tce_invalidate_pe(pe);
 	spin_unlock_irqrestore(&pe->tce_alloc_lock, flags);
 
 	return tce;