drivers/gpu/drm/openchrome/via_hdmi.c | 2 - drivers/gpu/drm/openchrome/via_ioc32.c | 4 +- drivers/gpu/drm/openchrome/via_ttm.c | 63 +++++++++++++++++---------------- 3 files changed, 36 insertions(+), 33 deletions(-)
New commits: commit 4f67dff3c66948c803f036f5fa319e5fae56b120 Author: Kevin Brace <kevinbr...@gmx.com> Date: Fri Feb 2 18:44:39 2018 -0800 drm/openchrome: Adopting the use of ttm_operation_ctx struct Per commit d0cef9f. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/via_ioc32.c b/drivers/gpu/drm/openchrome/via_ioc32.c index 5e175750f208..b84ed22b944f 100644 --- a/drivers/gpu/drm/openchrome/via_ioc32.c +++ b/drivers/gpu/drm/openchrome/via_ioc32.c @@ -94,6 +94,8 @@ via_gem_state(struct drm_device *dev, void *data, struct drm_file *file_priv) struct ttm_buffer_object *bo = NULL; struct drm_gem_object *obj = NULL; struct ttm_placement placement; + struct ttm_operation_ctx ctx = {.interruptible = false, + .no_wait_gpu = false}; int ret = -EINVAL; obj = drm_gem_object_lookup(file_priv, args->handle); @@ -112,7 +114,7 @@ via_gem_state(struct drm_device *dev, void *data, struct drm_file *file_priv) return ret; ttm_placement_from_domain(bo, &placement, args->domains, bo->bdev); - ret = ttm_bo_validate(bo, &placement, false, false); + ret = ttm_bo_validate(bo, &placement, &ctx); ttm_bo_unreserve(bo); if (!ret) { diff --git a/drivers/gpu/drm/openchrome/via_ttm.c b/drivers/gpu/drm/openchrome/via_ttm.c index 7f7984f14135..19237170aa58 100644 --- a/drivers/gpu/drm/openchrome/via_ttm.c +++ b/drivers/gpu/drm/openchrome/via_ttm.c @@ -125,8 +125,8 @@ via_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size, } -static int -via_ttm_tt_populate(struct ttm_tt *ttm) +static int via_ttm_tt_populate(struct ttm_tt *ttm, + struct ttm_operation_ctx *ctx) { struct sgdma_tt *dma_tt = (struct sgdma_tt *) ttm; struct ttm_dma_tt *sgdma = &dma_tt->sgdma; @@ -141,15 +141,15 @@ via_ttm_tt_populate(struct ttm_tt *ttm) #if IS_ENABLED(CONFIG_AGP) if (pci_find_capability(dev->pdev, PCI_CAP_ID_AGP)) - return ttm_agp_tt_populate(ttm); + return ttm_agp_tt_populate(ttm, ctx); #endif #ifdef CONFIG_SWIOTLB if (swiotlb_nr_tbl()) - return ttm_dma_populate(sgdma, dev->dev); + return ttm_dma_populate(sgdma, dev->dev, ctx); #endif - ret = ttm_pool_populate(ttm); + ret = ttm_pool_populate(ttm, ctx); if (ret) return ret; @@ -368,9 +368,9 @@ via_move_blit(struct ttm_buffer_object *bo, bool evict, bool no_wait_gpu, return ttm_bo_move_accel_cleanup(bo, (void *)fence, evict, new_mem); } -static int -via_move_from_vram(struct ttm_buffer_object *bo, bool interruptible, - bool no_wait_gpu, struct ttm_mem_reg *new_mem) +static int via_move_from_vram(struct ttm_buffer_object *bo, + struct ttm_operation_ctx *ctx, + struct ttm_mem_reg *new_mem) { struct ttm_mem_reg *old_mem = &bo->mem; struct ttm_mem_reg tmp_mem; @@ -387,8 +387,7 @@ via_move_from_vram(struct ttm_buffer_object *bo, bool interruptible, placement.num_busy_placement = placement.num_placement = 1; placement.busy_placement = placement.placement = &place; - ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, - interruptible, no_wait_gpu); + ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, ctx); if (unlikely(ret)) return ret; @@ -397,25 +396,25 @@ via_move_from_vram(struct ttm_buffer_object *bo, bool interruptible, if (unlikely(ret)) goto out_cleanup; - ret = ttm_tt_bind(bo->ttm, &tmp_mem); + ret = ttm_tt_bind(bo->ttm, &tmp_mem, ctx); if (unlikely(ret)) goto out_cleanup; /* Move from the VRAM to GART space */ - ret = via_move_blit(bo, true, no_wait_gpu, &tmp_mem, old_mem); + ret = via_move_blit(bo, true, ctx->no_wait_gpu, &tmp_mem, old_mem); if (unlikely(ret)) goto out_cleanup; /* Expose the GART region to the system memory */ - ret = ttm_bo_move_ttm(bo, true, no_wait_gpu, new_mem); + ret = ttm_bo_move_ttm(bo, ctx, new_mem); out_cleanup: ttm_bo_mem_put(bo, &tmp_mem); return ret; } -static int -via_move_to_vram(struct ttm_buffer_object *bo, bool interruptible, - bool no_wait_gpu, struct ttm_mem_reg *new_mem) +static int via_move_to_vram(struct ttm_buffer_object *bo, + struct ttm_operation_ctx *ctx, + struct ttm_mem_reg *new_mem) { struct ttm_mem_reg *old_mem = &bo->mem; struct ttm_mem_reg tmp_mem; @@ -432,26 +431,27 @@ via_move_to_vram(struct ttm_buffer_object *bo, bool interruptible, placement.busy_placement = placement.placement = &place; placement.num_busy_placement = placement.num_placement = 1; - ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, - interruptible, no_wait_gpu); + ret = ttm_bo_mem_space(bo, &placement, &tmp_mem, ctx); if (unlikely(ret)) return ret; /* Expose the GART region to the system memory */ - ret = ttm_bo_move_ttm(bo, true, no_wait_gpu, &tmp_mem); + ret = ttm_bo_move_ttm(bo, ctx, &tmp_mem); if (unlikely(ret)) goto out_cleanup; /* Move from the GART to VRAM */ - ret = via_move_blit(bo, true, no_wait_gpu, new_mem, old_mem); + ret = via_move_blit(bo, true, ctx->no_wait_gpu, new_mem, old_mem); out_cleanup: ttm_bo_mem_put(bo, &tmp_mem); return ret; } -static int -via_bo_move(struct ttm_buffer_object *bo, bool evict, bool interruptible, - bool no_wait_gpu, struct ttm_mem_reg *new_mem) +static int via_bo_move(struct ttm_buffer_object *bo, + bool evict, + struct ttm_operation_ctx *ctx, + struct ttm_mem_reg *new_mem) + { struct ttm_mem_reg *old_mem = &bo->mem; int ret = 0; @@ -481,16 +481,16 @@ via_bo_move(struct ttm_buffer_object *bo, bool evict, bool interruptible, /* Accelerated copy involving the VRAM. */ if ((old_mem->mem_type == TTM_PL_VRAM) && (new_mem->mem_type == TTM_PL_SYSTEM)) { - ret = via_move_from_vram(bo, interruptible, no_wait_gpu, new_mem); + ret = via_move_from_vram(bo, ctx, new_mem); } else if ((old_mem->mem_type == TTM_PL_SYSTEM) && (new_mem->mem_type == TTM_PL_VRAM)) { - ret = via_move_to_vram(bo, interruptible, no_wait_gpu, new_mem); + ret = via_move_to_vram(bo, ctx, new_mem); } else { - ret = via_move_blit(bo, evict, no_wait_gpu, new_mem, old_mem); + ret = via_move_blit(bo, evict, ctx->no_wait_gpu, new_mem, old_mem); } if (ret) { - ret = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem); + ret = ttm_bo_move_memcpy(bo, ctx, new_mem); } exit: @@ -751,6 +751,8 @@ via_bo_pin(struct ttm_buffer_object *bo, struct ttm_bo_kmap_obj *kmap) { struct ttm_heap *heap = container_of(bo, struct ttm_heap, bo); struct ttm_placement placement; + struct ttm_operation_ctx ctx = {.interruptible = false, + .no_wait_gpu = false}; int ret; ret = ttm_bo_reserve(bo, true, false, NULL); @@ -759,7 +761,7 @@ via_bo_pin(struct ttm_buffer_object *bo, struct ttm_bo_kmap_obj *kmap) placement.num_placement = 1; heap->placements[0].flags = (bo->mem.placement | TTM_PL_FLAG_NO_EVICT); - ret = ttm_bo_validate(bo, &placement, false, false); + ret = ttm_bo_validate(bo, &placement, &ctx); if (!ret && kmap) ret = ttm_bo_kmap(bo, 0, bo->num_pages, kmap); ttm_bo_unreserve(bo); @@ -772,6 +774,8 @@ via_bo_unpin(struct ttm_buffer_object *bo, struct ttm_bo_kmap_obj *kmap) { struct ttm_heap *heap = container_of(bo, struct ttm_heap, bo); struct ttm_placement placement; + struct ttm_operation_ctx ctx = {.interruptible = false, + .no_wait_gpu = false}; int ret; ret = ttm_bo_reserve(bo, true, false, NULL); @@ -783,7 +787,7 @@ via_bo_unpin(struct ttm_buffer_object *bo, struct ttm_bo_kmap_obj *kmap) placement.num_placement = 1; heap->placements[0].flags = (bo->mem.placement & ~TTM_PL_FLAG_NO_EVICT); - ret = ttm_bo_validate(bo, &placement, false, false); + ret = ttm_bo_validate(bo, &placement, &ctx); ttm_bo_unreserve(bo); } return ret; commit 15992f270140ee5374c72df305dd2a8fee10b377 Author: Kevin Brace <kevinbr...@gmx.com> Date: Fri Feb 2 17:52:29 2018 -0800 drm/openchrome: Remove the call to drm_edid_to_eld() Per commit 79436a1. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/via_hdmi.c b/drivers/gpu/drm/openchrome/via_hdmi.c index 646927063f94..c209606d8607 100644 --- a/drivers/gpu/drm/openchrome/via_hdmi.c +++ b/drivers/gpu/drm/openchrome/via_hdmi.c @@ -631,8 +631,6 @@ via_hdmi_get_modes(struct drm_connector *connector) if (drm_rgb_quant_range_selectable(edid)) con->flags |= HDMI_COLOR_RANGE; - - drm_edid_to_eld(connector, edid); } } return drm_add_edid_modes(connector, edid); commit 34ed1b4f0a72316e0073d6320778912a14055154 Author: Kevin Brace <kevinbr...@gmx.com> Date: Fri Feb 2 17:37:00 2018 -0800 drm/openchrome: Remove io_mem_pfn callback from ttm_bo_driver struct Related to commit e83bf4a and 3c08ec6. io_mem_pfn callback entry was removed from ttm_bo_driver struct. Thanks Tan Xiaojun of Huawei for the permanent fix. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/via_ttm.c b/drivers/gpu/drm/openchrome/via_ttm.c index e1bc30d502b4..7f7984f14135 100644 --- a/drivers/gpu/drm/openchrome/via_ttm.c +++ b/drivers/gpu/drm/openchrome/via_ttm.c @@ -568,7 +568,6 @@ static struct ttm_bo_driver via_bo_driver = { .verify_access = via_verify_access, .io_mem_reserve = via_ttm_io_mem_reserve, .io_mem_free = via_ttm_io_mem_free, - .io_mem_pfn = ttm_bo_default_io_mem_pfn, }; int via_mm_init(struct via_device *dev_priv) _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel