From patchwork Tue Sep 4 07:35:58 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Kardashevskiy X-Patchwork-Id: 181509 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from ozlabs.org (localhost [IPv6:::1]) by ozlabs.org (Postfix) with ESMTP id DC44B2C03D2 for ; Tue, 4 Sep 2012 17:36:36 +1000 (EST) Received: from mail-ie0-f179.google.com (mail-ie0-f179.google.com [209.85.223.179]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 8B3C42C0096 for ; Tue, 4 Sep 2012 17:36:12 +1000 (EST) Received: by ieje13 with SMTP id e13so4132092iej.38 for ; Tue, 04 Sep 2012 00:36:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=b2XxS69TVZYgnwlMZG7tpOfibffCMt46t7wDJIWCjEc=; b=lqx+uGu4yBwvylJjSEMt6CRagZeaWxVn3WKNgt4zswgcT9/ix06ZMTwjMsAXPdNimH 1adSL0C/oqDHwU0uFhcBdbUnFZBpSv+4bVf3/Abx09CNhwT4N73IuT1Jl8oef1Mb0zxx 5OaKPb9Tsn9nj+MvTHqPQcKHxxuZj9X+8cOou8IYGq1xh61tdWKfkg/EW9/Z+OWShZtC 50VvTjPl9ZmoUIdgBaFb5GO1HE7iHhwK9lonwBLAfWR93MP2QlIwJOYqHs6LPTTvrWCw W0g1C/1u/LfRIS+47K7NnViQ2XT3WDqWI5oXBugVlIt8pqg02Ey7lKhpZqtfYN+ClyFB NYeA== Received: by 10.50.7.177 with SMTP id k17mr13184648iga.27.1346744170807; Tue, 04 Sep 2012 00:36:10 -0700 (PDT) Received: from ka1.ozlabs.ibm.com (ibmaus65.lnk.telstra.net. [165.228.126.9]) by mx.google.com with ESMTPS id p5sm11563937igm.13.2012.09.04.00.36.07 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 04 Sep 2012 00:36:10 -0700 (PDT) From: Alexey Kardashevskiy To: Benjamin Herrenschmidt Subject: [PATCH] powerpc-powernv: added tce_get callback for powernv platform Date: Tue, 4 Sep 2012 17:35:58 +1000 Message-Id: <1346744158-31190-1-git-send-email-aik@ozlabs.ru> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1346744035-31154-1-git-send-email-aik@ozlabs.ru> References: <1346744035-31154-1-git-send-email-aik@ozlabs.ru> X-Gm-Message-State: ALoCoQlszmc7FLxYgaMzA2wcmP6t8cuE5LWo1H4NcEWEEGe0v/amZiYCUzd8ud0JZtYQax7rx0Be Cc: Alexey Kardashevskiy , linuxppc-dev@lists.ozlabs.org, Paul Mackerras , David Gibson X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" The upcoming VFIO support requires a way to know which entry in the TCE map is not empty in order to do cleanup at QEMU exit/crash. This patch adds such functionality to POWERNV platform code. Signed-off-by: Alexey Kardashevskiy --- arch/powerpc/platforms/powernv/pci.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c index be3cfc5..61f8068 100644 --- a/arch/powerpc/platforms/powernv/pci.c +++ b/arch/powerpc/platforms/powernv/pci.c @@ -447,6 +447,11 @@ static void pnv_tce_free(struct iommu_table *tbl, long index, long npages) pnv_tce_invalidate(tbl, tces, tcep - 1); } +static unsigned long pnv_tce_get(struct iommu_table *tbl, long index) +{ + return ((u64 *)tbl->it_base)[index - tbl->it_offset] & IOMMU_PAGE_MASK; +} + void pnv_pci_setup_iommu_table(struct iommu_table *tbl, void *tce_mem, u64 tce_size, u64 dma_offset) @@ -597,6 +602,7 @@ void __init pnv_pci_init(void) ppc_md.pci_dma_dev_setup = pnv_pci_dma_dev_setup; ppc_md.tce_build = pnv_tce_build; ppc_md.tce_free = pnv_tce_free; + ppc_md.tce_get = pnv_tce_get; ppc_md.pci_probe_mode = pnv_pci_probe_mode; set_pci_dma_ops(&dma_iommu_ops);