WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Xen

xen-devel

[Top] [All Lists]

[Xen-devel] [PATCH 1/7] ttm/radeon/nouveau: Check the DMA address from T

To: thellstrom@xxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, dri-devel@xxxxxxxxxxxxxxxxxxxxx, thomas@xxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 1/7] ttm/radeon/nouveau: Check the DMA address from TTM against known value.
From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Date: 2011年9月13日 10:12:44 -0400
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, airlied@xxxxxxxx, Pekka Paalanen <pq@xxxxxx>, bskeggs@xxxxxxxxxx, alexdeucher@xxxxxxxxx, airlied@xxxxxxxxxx, j.glisse@xxxxxxxxxx
Delivery-date: 2011年9月13日 07:19:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1315923170-25568-1-git-send-email-konrad.wilk@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1315923170-25568-1-git-send-email-konrad.wilk@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
. instead of checking against the DMA_ERROR_CODE value which is
per-platform specific. The zero value is a known invalid value
that the TTM layer sets on the dma_address array if it is not
used (ttm_tt_alloc_page_directory calls drm_calloc_large which
creates a page with GFP_ZERO).
We can't use pci_dma_mapping_error as that is IOMMU
specific (some check for a specific physical address, some
for ranges, some just do a check against zero).
Also update the comments in the header about the true state
of that parameter.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +--
 drivers/gpu/drm/radeon/radeon_gart.c | 4 +---
 include/drm/ttm/ttm_page_alloc.h | 4 ++--
 3 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c 
b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
index 82fad91..9b570c3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -42,8 +42,7 @@ nouveau_sgdma_populate(struct ttm_backend *be, unsigned long 
num_pages,
 
 nvbe->nr_pages = 0;
 while (num_pages--) {
- /* this code path isn't called and is incorrect anyways */
- if (0) { /*dma_addrs[nvbe->nr_pages] != DMA_ERROR_CODE)*/
+ if (dma_addrs[nvbe->nr_pages] != 0) {
 nvbe->pages[nvbe->nr_pages] =
 dma_addrs[nvbe->nr_pages];
 nvbe->ttm_alloced[nvbe->nr_pages] = true;
diff --git a/drivers/gpu/drm/radeon/radeon_gart.c 
b/drivers/gpu/drm/radeon/radeon_gart.c
index a533f52..068ba09 100644
--- a/drivers/gpu/drm/radeon/radeon_gart.c
+++ b/drivers/gpu/drm/radeon/radeon_gart.c
@@ -181,9 +181,7 @@ int radeon_gart_bind(struct radeon_device *rdev, unsigned 
offset,
 p = t / (PAGE_SIZE / RADEON_GPU_PAGE_SIZE);
 
 for (i = 0; i < pages; i++, p++) {
- /* we reverted the patch using dma_addr in TTM for now but this
- * code stops building on alpha so just comment it out for now 
*/
- if (0) { /*dma_addr[i] != DMA_ERROR_CODE) */
+ if (dma_addr[i] != 0) {
 rdev->gart.ttm_alloced[p] = true;
 rdev->gart.pages_addr[p] = dma_addr[i];
 } else {
diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
index 8062890..0017b17 100644
--- a/include/drm/ttm/ttm_page_alloc.h
+++ b/include/drm/ttm/ttm_page_alloc.h
@@ -36,7 +36,7 @@
 * @flags: ttm flags for page allocation.
 * @cstate: ttm caching state for the page.
 * @count: number of pages to allocate.
- * @dma_address: The DMA (bus) address of pages (if TTM_PAGE_FLAG_DMA32 set).
+ * @dma_address: The DMA (bus) address of pages - (by default zero).
 */
 int ttm_get_pages(struct list_head *pages,
 int flags,
@@ -51,7 +51,7 @@ int ttm_get_pages(struct list_head *pages,
 * count.
 * @flags: ttm flags for page allocation.
 * @cstate: ttm caching state.
- * @dma_address: The DMA (bus) address of pages (if TTM_PAGE_FLAG_DMA32 set).
+ * @dma_address: The DMA (bus) address of pages (by default zero).
 */
 void ttm_put_pages(struct list_head *pages,
 unsigned page_count,
-- 
1.7.4.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
Previous by Date: [Xen-devel] [PATCH 5/7] ttm: Provide a DMA aware TTM page pool code. , Konrad Rzeszutek Wilk
Next by Date: [Xen-devel] [PATCH] TTM DMA v1.8 , Konrad Rzeszutek Wilk
Previous by Thread: [Xen-devel] [PATCH 5/7] ttm: Provide a DMA aware TTM page pool code. , Konrad Rzeszutek Wilk
Next by Thread: [Xen-devel] [PATCH 4/7] swiotlb: Expose swiotlb_nr_tlb function to modules as swiotlb_enabled , Konrad Rzeszutek Wilk
Indexes: [Date] [Thread] [Top] [All Lists]

Copyright ©, Citrix Systems Inc. All rights reserved. Legal and Privacy
Citrix This site is hosted by Citrix

AltStyle によって変換されたページ (->オリジナル) /