drivers/gpu/drm/via/init_ttm.c | 38 ++++++++++++++++++++++++------------ drivers/gpu/drm/via/ttm_gem.c | 2 - drivers/gpu/drm/via/via_drv.c | 2 - drivers/gpu/drm/via/via_drv.h | 4 +-- drivers/gpu/drm/via/via_h1_cmdbuf.c | 2 - drivers/gpu/drm/via/via_mem.h | 2 - 6 files changed, 32 insertions(+), 18 deletions(-)
New commits: commit b5bb0e1f3ace721de541841271e995dc7eb3830e Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Jan 16 14:07:30 2017 -0600 Version bumped to 3.0.11 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h index 3f6788c..85219a7 100644 --- a/drivers/gpu/drm/via/via_drv.h +++ b/drivers/gpu/drm/via/via_drv.h @@ -27,11 +27,11 @@ #define DRIVER_AUTHOR "The OpenChrome Project" #define DRIVER_NAME "via" #define DRIVER_DESC "OpenChrome DRM for VIA Technologies Chrome IGP" -#define DRIVER_DATE "20170102" +#define DRIVER_DATE "20170116" #define DRIVER_MAJOR 3 #define DRIVER_MINOR 0 -#define DRIVER_PATCHLEVEL 10 +#define DRIVER_PATCHLEVEL 11 #include <linux/module.h> commit ea70c1cc20fe6524aa190e682b74adba84edd6e4 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Jan 16 14:06:18 2017 -0600 Improved the error handling of via_bo_create Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/via/init_ttm.c b/drivers/gpu/drm/via/init_ttm.c index 2d7c71b..a6f041e 100644 --- a/drivers/gpu/drm/via/init_ttm.c +++ b/drivers/gpu/drm/via/init_ttm.c @@ -158,12 +158,16 @@ via_bo_create(struct ttm_bo_device *bdev, size_t acc_size; int ret = -ENOMEM; + DRM_DEBUG("Entered via_bo_create.\n"); + size = round_up(size, byte_align); size = ALIGN(size, page_align); heap = kzalloc(sizeof(struct ttm_heap), GFP_KERNEL); - if (unlikely(!heap)) - return ret; + if (unlikely(!heap)) { + DRM_ERROR("Failed to allocate kernel memory."); + goto exit; + } bo = &heap->pbo; @@ -176,10 +180,18 @@ via_bo_create(struct ttm_bo_device *bdev, page_align >> PAGE_SHIFT, interruptible, NULL, acc_size, sg, NULL, ttm_buffer_object_destroy); - if (unlikely(ret)) - kfree(heap); - else - *p_bo = bo; + + if (unlikely(ret)) { + DRM_ERROR("Failed to initialize a TTM Buffer Object."); + goto error; + } + + *p_bo = bo; + goto exit; +error: + kfree(heap); +exit: + DRM_DEBUG("Exiting via_bo_create.\n"); return ret; } commit fef5aebccb451ecdf60d6e87a5b40206d268cf27 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Jan 16 14:04:18 2017 -0600 Minor tweaks to via_bo_create Making the code more common with Matrox G200 DRM and Cirrus Logic DRM. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/via/init_ttm.c b/drivers/gpu/drm/via/init_ttm.c index c85b083..2d7c71b 100644 --- a/drivers/gpu/drm/via/init_ttm.c +++ b/drivers/gpu/drm/via/init_ttm.c @@ -152,16 +152,16 @@ via_bo_create(struct ttm_bo_device *bdev, struct reservation_object *resv, struct ttm_buffer_object **p_bo) { - unsigned long acc_size = sizeof(struct ttm_heap); struct ttm_buffer_object *bo = NULL; struct ttm_placement placement; struct ttm_heap *heap; + size_t acc_size; int ret = -ENOMEM; size = round_up(size, byte_align); size = ALIGN(size, page_align); - heap = kzalloc(acc_size, GFP_KERNEL); + heap = kzalloc(sizeof(struct ttm_heap), GFP_KERNEL); if (unlikely(!heap)) return ret; @@ -169,10 +169,12 @@ via_bo_create(struct ttm_bo_device *bdev, ttm_placement_from_domain(bo, &placement, domains, bdev); + acc_size = ttm_bo_dma_acc_size(bdev, size, + sizeof(struct ttm_heap)); + ret = ttm_bo_init(bdev, bo, size, origin, &placement, page_align >> PAGE_SHIFT, - interruptible, NULL, - ttm_bo_dma_acc_size(bdev, size, acc_size), + interruptible, NULL, acc_size, sg, NULL, ttm_buffer_object_destroy); if (unlikely(ret)) kfree(heap); commit 012e6f88a63730fdf8f8f82ffa8ba9b4680e9daf Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Jan 16 14:00:41 2017 -0600 Changed via_bo_allocate to via_bo_create After reading AMD Radeon DRM and Matrox G200 DRM, they call it (Chip Vendor)_bo_create for a function OpenChrome DRM calls it via_bo_allocate. We will go along with their style of naming functions. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/via/init_ttm.c b/drivers/gpu/drm/via/init_ttm.c index 0b712b6..c85b083 100644 --- a/drivers/gpu/drm/via/init_ttm.c +++ b/drivers/gpu/drm/via/init_ttm.c @@ -141,7 +141,7 @@ ttm_placement_from_domain(struct ttm_buffer_object *bo, struct ttm_placement *pl } int -via_bo_allocate(struct ttm_bo_device *bdev, +via_bo_create(struct ttm_bo_device *bdev, unsigned long size, enum ttm_bo_type origin, uint32_t domains, @@ -229,7 +229,7 @@ ttm_allocate_kernel_buffer(struct ttm_bo_device *bdev, unsigned long size, uint32_t alignment, uint32_t domain, struct ttm_bo_kmap_obj *kmap) { - int ret = via_bo_allocate(bdev, size, ttm_bo_type_kernel, domain, + int ret = via_bo_create(bdev, size, ttm_bo_type_kernel, domain, alignment, PAGE_SIZE, false, NULL, NULL, &kmap->bo); if (likely(!ret)) { diff --git a/drivers/gpu/drm/via/ttm_gem.c b/drivers/gpu/drm/via/ttm_gem.c index aa46773..5dc50a1 100644 --- a/drivers/gpu/drm/via/ttm_gem.c +++ b/drivers/gpu/drm/via/ttm_gem.c @@ -95,7 +95,7 @@ ttm_gem_create(struct drm_device *dev, struct ttm_bo_device *bdev, size = round_up(size, byte_align); size = ALIGN(size, page_align); - ret = via_bo_allocate(bdev, size, origin, types, byte_align, + ret = via_bo_create(bdev, size, origin, types, byte_align, page_align, interruptible, NULL, NULL, &bo); if (ret) { DRM_ERROR("Failed to create buffer object\n"); diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c index f7ab710..744b639 100644 --- a/drivers/gpu/drm/via/via_drv.c +++ b/drivers/gpu/drm/via/via_drv.c @@ -151,7 +151,7 @@ via_mmio_setup(struct drm_device *dev) if (ret) return ret; - ret = via_bo_allocate(&dev_priv->bdev, VIA_MMIO_REGSIZE, ttm_bo_type_kernel, + ret = via_bo_create(&dev_priv->bdev, VIA_MMIO_REGSIZE, ttm_bo_type_kernel, TTM_PL_FLAG_PRIV0, 1, PAGE_SIZE, false, NULL, NULL, &bo); if (ret) goto err; diff --git a/drivers/gpu/drm/via/via_h1_cmdbuf.c b/drivers/gpu/drm/via/via_h1_cmdbuf.c index 92bf0a3..efcb830 100644 --- a/drivers/gpu/drm/via/via_h1_cmdbuf.c +++ b/drivers/gpu/drm/via/via_h1_cmdbuf.c @@ -159,7 +159,7 @@ static int via_initialize(struct drm_device *dev, return ret; } - ret = via_bo_allocate(&dev_priv->bdev, init->size, ttm_bo_type_kernel, + ret = via_bo_create(&dev_priv->bdev, init->size, ttm_bo_type_kernel, TTM_PL_FLAG_TT, VIA_MM_ALIGN_SIZE, PAGE_SIZE, false, NULL, NULL, &bo); if (!ret) { diff --git a/drivers/gpu/drm/via/via_mem.h b/drivers/gpu/drm/via/via_mem.h index 4641dc2..ce8441f 100644 --- a/drivers/gpu/drm/via/via_mem.h +++ b/drivers/gpu/drm/via/via_mem.h @@ -50,7 +50,7 @@ extern void ttm_global_fini(struct drm_global_reference *global_ref, struct ttm_bo_global_ref *global_bo, struct ttm_bo_device *bdev); -extern int via_bo_allocate(struct ttm_bo_device *bdev, unsigned long size, +extern int via_bo_create(struct ttm_bo_device *bdev, unsigned long size, enum ttm_bo_type origin, uint32_t domains, uint32_t byte_align, uint32_t page_align, bool interruptible, struct sg_table *sg, _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel