* [PATCH 1/4] drm/ttm: use ffs in ttm_mem_type_from_place
@ 2016-09-12 11:46 Christian König
2016-09-12 11:46 ` [PATCH 2/4] drm/ttm: rework handling of private mem types Christian König
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Christian König @ 2016-09-12 11:46 UTC (permalink / raw)
To: dri-devel; +Cc: Alexander.Deucher, flora.cui, emil.l.velikov, Hawking.Zhang
From: Christian König <christian.koenig@amd.com>
A bit pointless to search for the first bit set manually.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/ttm/ttm_bo.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index bc37f02..531cc97 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -57,14 +57,14 @@ static struct attribute ttm_bo_count = {
static inline int ttm_mem_type_from_place(const struct ttm_place *place,
uint32_t *mem_type)
{
- int i;
+ int pos;
- for (i = 0; i <= TTM_PL_PRIV5; i++)
- if (place->flags & (1 << i)) {
- *mem_type = i;
- return 0;
- }
- return -EINVAL;
+ pos = ffs(place->flags & TTM_PL_MASK_MEM);
+ if (unlikely(!pos))
+ return -EINVAL;
+
+ *mem_type = pos - 1;
+ return 0;
}
static void ttm_mem_type_debug(struct ttm_bo_device *bdev, int mem_type)
--
2.5.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] drm/ttm: rework handling of private mem types
2016-09-12 11:46 [PATCH 1/4] drm/ttm: use ffs in ttm_mem_type_from_place Christian König
@ 2016-09-12 11:46 ` Christian König
2016-09-12 11:46 ` [PATCH 3/4] drm/ttm: remove unused placement flags Christian König
2016-09-12 11:46 ` [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h Christian König
2 siblings, 0 replies; 6+ messages in thread
From: Christian König @ 2016-09-12 11:46 UTC (permalink / raw)
To: dri-devel; +Cc: Alexander.Deucher, flora.cui, emil.l.velikov, Hawking.Zhang
From: Christian König <christian.koenig@amd.com>
Instead of keeping a bunch of potentially unused flags, just define
the start for private memory types and remove the rest.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 12 ++++++------
drivers/gpu/drm/qxl/qxl_object.c | 8 ++++----
drivers/gpu/drm/qxl/qxl_ttm.c | 12 ++++++------
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 8 ++++----
include/drm/ttm/ttm_placement.h | 16 ++--------------
5 files changed, 22 insertions(+), 34 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
index 214bae9..3ee825f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
@@ -26,13 +26,13 @@
#include "gpu_scheduler.h"
-#define AMDGPU_PL_GDS TTM_PL_PRIV0
-#define AMDGPU_PL_GWS TTM_PL_PRIV1
-#define AMDGPU_PL_OA TTM_PL_PRIV2
+#define AMDGPU_PL_GDS (TTM_PL_PRIV + 0)
+#define AMDGPU_PL_GWS (TTM_PL_PRIV + 1)
+#define AMDGPU_PL_OA (TTM_PL_PRIV + 2)
-#define AMDGPU_PL_FLAG_GDS TTM_PL_FLAG_PRIV0
-#define AMDGPU_PL_FLAG_GWS TTM_PL_FLAG_PRIV1
-#define AMDGPU_PL_FLAG_OA TTM_PL_FLAG_PRIV2
+#define AMDGPU_PL_FLAG_GDS (TTM_PL_FLAG_PRIV << 0)
+#define AMDGPU_PL_FLAG_GWS (TTM_PL_FLAG_PRIV << 1)
+#define AMDGPU_PL_FLAG_OA (TTM_PL_FLAG_PRIV << 2)
#define AMDGPU_TTM_LRU_SIZE 20
diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c
index 5e1d789..fa5440d 100644
--- a/drivers/gpu/drm/qxl/qxl_object.c
+++ b/drivers/gpu/drm/qxl/qxl_object.c
@@ -61,7 +61,7 @@ void qxl_ttm_placement_from_domain(struct qxl_bo *qbo, u32 domain, bool pinned)
if (domain == QXL_GEM_DOMAIN_VRAM)
qbo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_VRAM | pflag;
if (domain == QXL_GEM_DOMAIN_SURFACE)
- qbo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_PRIV0 | pflag;
+ qbo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_PRIV | pflag;
if (domain == QXL_GEM_DOMAIN_CPU)
qbo->placements[c++].flags = TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM | pflag;
if (!c)
@@ -151,7 +151,7 @@ void *qxl_bo_kmap_atomic_page(struct qxl_device *qdev,
if (bo->tbo.mem.mem_type == TTM_PL_VRAM)
map = qdev->vram_mapping;
- else if (bo->tbo.mem.mem_type == TTM_PL_PRIV0)
+ else if (bo->tbo.mem.mem_type == TTM_PL_PRIV)
map = qdev->surface_mapping;
else
goto fallback;
@@ -191,7 +191,7 @@ void qxl_bo_kunmap_atomic_page(struct qxl_device *qdev,
if (bo->tbo.mem.mem_type == TTM_PL_VRAM)
map = qdev->vram_mapping;
- else if (bo->tbo.mem.mem_type == TTM_PL_PRIV0)
+ else if (bo->tbo.mem.mem_type == TTM_PL_PRIV)
map = qdev->surface_mapping;
else
goto fallback;
@@ -311,7 +311,7 @@ int qxl_bo_check_id(struct qxl_device *qdev, struct qxl_bo *bo)
int qxl_surf_evict(struct qxl_device *qdev)
{
- return ttm_bo_evict_mm(&qdev->mman.bdev, TTM_PL_PRIV0);
+ return ttm_bo_evict_mm(&qdev->mman.bdev, TTM_PL_PRIV);
}
int qxl_vram_evict(struct qxl_device *qdev)
diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
index d50c967..796c4f3 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -168,7 +168,7 @@ static int qxl_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
man->default_caching = TTM_PL_FLAG_CACHED;
break;
case TTM_PL_VRAM:
- case TTM_PL_PRIV0:
+ case TTM_PL_PRIV:
/* "On-card" video ram */
man->func = &ttm_bo_manager_func;
man->gpu_offset = 0;
@@ -235,7 +235,7 @@ static int qxl_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
mem->bus.base = qdev->vram_base;
mem->bus.offset = mem->start << PAGE_SHIFT;
break;
- case TTM_PL_PRIV0:
+ case TTM_PL_PRIV:
mem->bus.is_iomem = true;
mem->bus.base = qdev->surfaceram_base;
mem->bus.offset = mem->start << PAGE_SHIFT;
@@ -376,7 +376,7 @@ static void qxl_bo_move_notify(struct ttm_buffer_object *bo,
qbo = to_qxl_bo(bo);
qdev = qbo->gem_base.dev->dev_private;
- if (bo->mem.mem_type == TTM_PL_PRIV0 && qbo->surface_id)
+ if (bo->mem.mem_type == TTM_PL_PRIV && qbo->surface_id)
qxl_surface_evict(qdev, qbo, new_mem ? true : false);
}
@@ -422,7 +422,7 @@ int qxl_ttm_init(struct qxl_device *qdev)
DRM_ERROR("Failed initializing VRAM heap.\n");
return r;
}
- r = ttm_bo_init_mm(&qdev->mman.bdev, TTM_PL_PRIV0,
+ r = ttm_bo_init_mm(&qdev->mman.bdev, TTM_PL_PRIV,
qdev->surfaceram_size / PAGE_SIZE);
if (r) {
DRM_ERROR("Failed initializing Surfaces heap.\n");
@@ -445,7 +445,7 @@ int qxl_ttm_init(struct qxl_device *qdev)
void qxl_ttm_fini(struct qxl_device *qdev)
{
ttm_bo_clean_mm(&qdev->mman.bdev, TTM_PL_VRAM);
- ttm_bo_clean_mm(&qdev->mman.bdev, TTM_PL_PRIV0);
+ ttm_bo_clean_mm(&qdev->mman.bdev, TTM_PL_PRIV);
ttm_bo_device_release(&qdev->mman.bdev);
qxl_ttm_global_fini(qdev);
DRM_INFO("qxl: ttm finalized\n");
@@ -489,7 +489,7 @@ static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
if (i == 0)
qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
else
- qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
+ qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV].priv;
}
return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
index 019a6ca..b5de8a1 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -66,10 +66,10 @@
VMWGFX_NUM_GB_SURFACE +\
VMWGFX_NUM_GB_SCREEN_TARGET)
-#define VMW_PL_GMR TTM_PL_PRIV0
-#define VMW_PL_FLAG_GMR TTM_PL_FLAG_PRIV0
-#define VMW_PL_MOB TTM_PL_PRIV1
-#define VMW_PL_FLAG_MOB TTM_PL_FLAG_PRIV1
+#define VMW_PL_GMR (TTM_PL_PRIV + 0)
+#define VMW_PL_FLAG_GMR (TTM_PL_FLAG_PRIV << 0)
+#define VMW_PL_MOB (TTM_PL_PRIV + 1)
+#define VMW_PL_FLAG_MOB (TTM_PL_FLAG_PRIV << 1)
#define VMW_RES_CONTEXT ttm_driver_type0
#define VMW_RES_SURFACE ttm_driver_type1
diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
index 8ed44f9..4c579d9 100644
--- a/include/drm/ttm/ttm_placement.h
+++ b/include/drm/ttm/ttm_placement.h
@@ -37,24 +37,12 @@
#define TTM_PL_SYSTEM 0
#define TTM_PL_TT 1
#define TTM_PL_VRAM 2
-#define TTM_PL_PRIV0 3
-#define TTM_PL_PRIV1 4
-#define TTM_PL_PRIV2 5
-#define TTM_PL_PRIV3 6
-#define TTM_PL_PRIV4 7
-#define TTM_PL_PRIV5 8
-#define TTM_PL_SWAPPED 15
+#define TTM_PL_PRIV 3
#define TTM_PL_FLAG_SYSTEM (1 << TTM_PL_SYSTEM)
#define TTM_PL_FLAG_TT (1 << TTM_PL_TT)
#define TTM_PL_FLAG_VRAM (1 << TTM_PL_VRAM)
-#define TTM_PL_FLAG_PRIV0 (1 << TTM_PL_PRIV0)
-#define TTM_PL_FLAG_PRIV1 (1 << TTM_PL_PRIV1)
-#define TTM_PL_FLAG_PRIV2 (1 << TTM_PL_PRIV2)
-#define TTM_PL_FLAG_PRIV3 (1 << TTM_PL_PRIV3)
-#define TTM_PL_FLAG_PRIV4 (1 << TTM_PL_PRIV4)
-#define TTM_PL_FLAG_PRIV5 (1 << TTM_PL_PRIV5)
-#define TTM_PL_FLAG_SWAPPED (1 << TTM_PL_SWAPPED)
+#define TTM_PL_FLAG_PRIV (1 << TTM_PL_PRIV)
#define TTM_PL_MASK_MEM 0x0000FFFF
/*
--
2.5.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] drm/ttm: remove unused placement flags
2016-09-12 11:46 [PATCH 1/4] drm/ttm: use ffs in ttm_mem_type_from_place Christian König
2016-09-12 11:46 ` [PATCH 2/4] drm/ttm: rework handling of private mem types Christian König
@ 2016-09-12 11:46 ` Christian König
2016-09-12 11:46 ` [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h Christian König
2 siblings, 0 replies; 6+ messages in thread
From: Christian König @ 2016-09-12 11:46 UTC (permalink / raw)
To: dri-devel; +Cc: Alexander.Deucher, flora.cui, emil.l.velikov, Hawking.Zhang
From: Christian König <christian.koenig@amd.com>
Either never used or not used in quite a while.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
include/drm/ttm/ttm_placement.h | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
index 4c579d9..7641582 100644
--- a/include/drm/ttm/ttm_placement.h
+++ b/include/drm/ttm/ttm_placement.h
@@ -60,7 +60,6 @@
#define TTM_PL_FLAG_CACHED (1 << 16)
#define TTM_PL_FLAG_UNCACHED (1 << 17)
#define TTM_PL_FLAG_WC (1 << 18)
-#define TTM_PL_FLAG_SHARED (1 << 20)
#define TTM_PL_FLAG_NO_EVICT (1 << 21)
#define TTM_PL_FLAG_TOPDOWN (1 << 22)
@@ -70,14 +69,4 @@
#define TTM_PL_MASK_MEMTYPE (TTM_PL_MASK_MEM | TTM_PL_MASK_CACHING)
-/*
- * Access flags to be used for CPU- and GPU- mappings.
- * The idea is that the TTM synchronization mechanism will
- * allow concurrent READ access and exclusive write access.
- * Currently GPU- and CPU accesses are exclusive.
- */
-
-#define TTM_ACCESS_READ (1 << 0)
-#define TTM_ACCESS_WRITE (1 << 1)
-
#endif
--
2.5.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h
2016-09-12 11:46 [PATCH 1/4] drm/ttm: use ffs in ttm_mem_type_from_place Christian König
2016-09-12 11:46 ` [PATCH 2/4] drm/ttm: rework handling of private mem types Christian König
2016-09-12 11:46 ` [PATCH 3/4] drm/ttm: remove unused placement flags Christian König
@ 2016-09-12 11:46 ` Christian König
2016-09-12 21:00 ` Alex Deucher
2 siblings, 1 reply; 6+ messages in thread
From: Christian König @ 2016-09-12 11:46 UTC (permalink / raw)
To: dri-devel; +Cc: Alexander.Deucher, flora.cui, emil.l.velikov, Hawking.Zhang
From: Christian König <christian.koenig@amd.com>
Makes more sense to keep that together.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
---
include/drm/ttm/ttm_bo_api.h | 32 +-------------------------------
include/drm/ttm/ttm_placement.h | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 31 deletions(-)
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
index 97aaf5c..d73c7c2 100644
--- a/include/drm/ttm/ttm_bo_api.h
+++ b/include/drm/ttm/ttm_bo_api.h
@@ -45,37 +45,7 @@ struct ttm_bo_device;
struct drm_mm_node;
-/**
- * struct ttm_place
- *
- * @fpfn: first valid page frame number to put the object
- * @lpfn: last valid page frame number to put the object
- * @flags: memory domain and caching flags for the object
- *
- * Structure indicating a possible place to put an object.
- */
-struct ttm_place {
- unsigned fpfn;
- unsigned lpfn;
- uint32_t flags;
-};
-
-/**
- * struct ttm_placement
- *
- * @num_placement: number of preferred placements
- * @placement: preferred placements
- * @num_busy_placement: number of preferred placements when need to evict buffer
- * @busy_placement: preferred placements when need to evict buffer
- *
- * Structure indicating the placement you request for an object.
- */
-struct ttm_placement {
- unsigned num_placement;
- const struct ttm_place *placement;
- unsigned num_busy_placement;
- const struct ttm_place *busy_placement;
-};
+struct ttm_placement;
/**
* struct ttm_bus_placement
diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
index 7641582..932be0c 100644
--- a/include/drm/ttm/ttm_placement.h
+++ b/include/drm/ttm/ttm_placement.h
@@ -30,6 +30,9 @@
#ifndef _TTM_PLACEMENT_H_
#define _TTM_PLACEMENT_H_
+
+#include <linux/types.h>
+
/*
* Memory regions for data placement.
*/
@@ -69,4 +72,36 @@
#define TTM_PL_MASK_MEMTYPE (TTM_PL_MASK_MEM | TTM_PL_MASK_CACHING)
+/**
+ * struct ttm_place
+ *
+ * @fpfn: first valid page frame number to put the object
+ * @lpfn: last valid page frame number to put the object
+ * @flags: memory domain and caching flags for the object
+ *
+ * Structure indicating a possible place to put an object.
+ */
+struct ttm_place {
+ unsigned fpfn;
+ unsigned lpfn;
+ uint32_t flags;
+};
+
+/**
+ * struct ttm_placement
+ *
+ * @num_placement: number of preferred placements
+ * @placement: preferred placements
+ * @num_busy_placement: number of preferred placements when need to evict buffer
+ * @busy_placement: preferred placements when need to evict buffer
+ *
+ * Structure indicating the placement you request for an object.
+ */
+struct ttm_placement {
+ unsigned num_placement;
+ const struct ttm_place *placement;
+ unsigned num_busy_placement;
+ const struct ttm_place *busy_placement;
+};
+
#endif
--
2.5.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h
2016-09-12 11:46 ` [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h Christian König
@ 2016-09-12 21:00 ` Alex Deucher
2016-09-13 1:57 ` zhoucm1
0 siblings, 1 reply; 6+ messages in thread
From: Alex Deucher @ 2016-09-12 21:00 UTC (permalink / raw)
To: Christian König
Cc: Deucher, Alexander, Flora Cui, Emil Velikov,
Maling list - DRI developers, Hawking Zhang
On Mon, Sep 12, 2016 at 7:46 AM, Christian König
<deathsimple@vodafone.de> wrote:
> From: Christian König <christian.koenig@amd.com>
>
> Makes more sense to keep that together.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
For the series:
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> include/drm/ttm/ttm_bo_api.h | 32 +-------------------------------
> include/drm/ttm/ttm_placement.h | 35 +++++++++++++++++++++++++++++++++++
> 2 files changed, 36 insertions(+), 31 deletions(-)
>
> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
> index 97aaf5c..d73c7c2 100644
> --- a/include/drm/ttm/ttm_bo_api.h
> +++ b/include/drm/ttm/ttm_bo_api.h
> @@ -45,37 +45,7 @@ struct ttm_bo_device;
>
> struct drm_mm_node;
>
> -/**
> - * struct ttm_place
> - *
> - * @fpfn: first valid page frame number to put the object
> - * @lpfn: last valid page frame number to put the object
> - * @flags: memory domain and caching flags for the object
> - *
> - * Structure indicating a possible place to put an object.
> - */
> -struct ttm_place {
> - unsigned fpfn;
> - unsigned lpfn;
> - uint32_t flags;
> -};
> -
> -/**
> - * struct ttm_placement
> - *
> - * @num_placement: number of preferred placements
> - * @placement: preferred placements
> - * @num_busy_placement: number of preferred placements when need to evict buffer
> - * @busy_placement: preferred placements when need to evict buffer
> - *
> - * Structure indicating the placement you request for an object.
> - */
> -struct ttm_placement {
> - unsigned num_placement;
> - const struct ttm_place *placement;
> - unsigned num_busy_placement;
> - const struct ttm_place *busy_placement;
> -};
> +struct ttm_placement;
>
> /**
> * struct ttm_bus_placement
> diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
> index 7641582..932be0c 100644
> --- a/include/drm/ttm/ttm_placement.h
> +++ b/include/drm/ttm/ttm_placement.h
> @@ -30,6 +30,9 @@
>
> #ifndef _TTM_PLACEMENT_H_
> #define _TTM_PLACEMENT_H_
> +
> +#include <linux/types.h>
> +
> /*
> * Memory regions for data placement.
> */
> @@ -69,4 +72,36 @@
>
> #define TTM_PL_MASK_MEMTYPE (TTM_PL_MASK_MEM | TTM_PL_MASK_CACHING)
>
> +/**
> + * struct ttm_place
> + *
> + * @fpfn: first valid page frame number to put the object
> + * @lpfn: last valid page frame number to put the object
> + * @flags: memory domain and caching flags for the object
> + *
> + * Structure indicating a possible place to put an object.
> + */
> +struct ttm_place {
> + unsigned fpfn;
> + unsigned lpfn;
> + uint32_t flags;
> +};
> +
> +/**
> + * struct ttm_placement
> + *
> + * @num_placement: number of preferred placements
> + * @placement: preferred placements
> + * @num_busy_placement: number of preferred placements when need to evict buffer
> + * @busy_placement: preferred placements when need to evict buffer
> + *
> + * Structure indicating the placement you request for an object.
> + */
> +struct ttm_placement {
> + unsigned num_placement;
> + const struct ttm_place *placement;
> + unsigned num_busy_placement;
> + const struct ttm_place *busy_placement;
> +};
> +
> #endif
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h
2016-09-12 21:00 ` Alex Deucher
@ 2016-09-13 1:57 ` zhoucm1
0 siblings, 0 replies; 6+ messages in thread
From: zhoucm1 @ 2016-09-13 1:57 UTC (permalink / raw)
To: Alex Deucher, Christian König
Cc: Deucher, Alexander, Flora Cui, Emil Velikov,
Maling list - DRI developers, Hawking Zhang
On 2016年09月13日 05:00, Alex Deucher wrote:
> On Mon, Sep 12, 2016 at 7:46 AM, Christian König
> <deathsimple@vodafone.de> wrote:
>> From: Christian König <christian.koenig@amd.com>
>>
>> Makes more sense to keep that together.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
> For the series:
> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
The series is ok to me.
Regards,
David Zhou
>
>> ---
>> include/drm/ttm/ttm_bo_api.h | 32 +-------------------------------
>> include/drm/ttm/ttm_placement.h | 35 +++++++++++++++++++++++++++++++++++
>> 2 files changed, 36 insertions(+), 31 deletions(-)
>>
>> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
>> index 97aaf5c..d73c7c2 100644
>> --- a/include/drm/ttm/ttm_bo_api.h
>> +++ b/include/drm/ttm/ttm_bo_api.h
>> @@ -45,37 +45,7 @@ struct ttm_bo_device;
>>
>> struct drm_mm_node;
>>
>> -/**
>> - * struct ttm_place
>> - *
>> - * @fpfn: first valid page frame number to put the object
>> - * @lpfn: last valid page frame number to put the object
>> - * @flags: memory domain and caching flags for the object
>> - *
>> - * Structure indicating a possible place to put an object.
>> - */
>> -struct ttm_place {
>> - unsigned fpfn;
>> - unsigned lpfn;
>> - uint32_t flags;
>> -};
>> -
>> -/**
>> - * struct ttm_placement
>> - *
>> - * @num_placement: number of preferred placements
>> - * @placement: preferred placements
>> - * @num_busy_placement: number of preferred placements when need to evict buffer
>> - * @busy_placement: preferred placements when need to evict buffer
>> - *
>> - * Structure indicating the placement you request for an object.
>> - */
>> -struct ttm_placement {
>> - unsigned num_placement;
>> - const struct ttm_place *placement;
>> - unsigned num_busy_placement;
>> - const struct ttm_place *busy_placement;
>> -};
>> +struct ttm_placement;
>>
>> /**
>> * struct ttm_bus_placement
>> diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
>> index 7641582..932be0c 100644
>> --- a/include/drm/ttm/ttm_placement.h
>> +++ b/include/drm/ttm/ttm_placement.h
>> @@ -30,6 +30,9 @@
>>
>> #ifndef _TTM_PLACEMENT_H_
>> #define _TTM_PLACEMENT_H_
>> +
>> +#include <linux/types.h>
>> +
>> /*
>> * Memory regions for data placement.
>> */
>> @@ -69,4 +72,36 @@
>>
>> #define TTM_PL_MASK_MEMTYPE (TTM_PL_MASK_MEM | TTM_PL_MASK_CACHING)
>>
>> +/**
>> + * struct ttm_place
>> + *
>> + * @fpfn: first valid page frame number to put the object
>> + * @lpfn: last valid page frame number to put the object
>> + * @flags: memory domain and caching flags for the object
>> + *
>> + * Structure indicating a possible place to put an object.
>> + */
>> +struct ttm_place {
>> + unsigned fpfn;
>> + unsigned lpfn;
>> + uint32_t flags;
>> +};
>> +
>> +/**
>> + * struct ttm_placement
>> + *
>> + * @num_placement: number of preferred placements
>> + * @placement: preferred placements
>> + * @num_busy_placement: number of preferred placements when need to evict buffer
>> + * @busy_placement: preferred placements when need to evict buffer
>> + *
>> + * Structure indicating the placement you request for an object.
>> + */
>> +struct ttm_placement {
>> + unsigned num_placement;
>> + const struct ttm_place *placement;
>> + unsigned num_busy_placement;
>> + const struct ttm_place *busy_placement;
>> +};
>> +
>> #endif
>> --
>> 2.5.0
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-09-13 2:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-12 11:46 [PATCH 1/4] drm/ttm: use ffs in ttm_mem_type_from_place Christian König
2016-09-12 11:46 ` [PATCH 2/4] drm/ttm: rework handling of private mem types Christian König
2016-09-12 11:46 ` [PATCH 3/4] drm/ttm: remove unused placement flags Christian König
2016-09-12 11:46 ` [PATCH 4/4] drm/ttm: move placement structures into ttm_placement.h Christian König
2016-09-12 21:00 ` Alex Deucher
2016-09-13 1:57 ` zhoucm1
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.