mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
drm/tegra: Merge upstream changes
Merge upstream changes from linux-next, including merged version of new UAPI. Change-Id: I4f591d39e51ac6ab6877a0bd428adf166eca3c55 Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2653095 Tested-by: Jonathan Hunter <jonathanh@nvidia.com> Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com> Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
Laxman Dewangan
parent
a6ff2bcf9e
commit
02b028d02a
@@ -26,13 +26,13 @@
|
||||
MODULE_IMPORT_NS(DMA_BUF);
|
||||
#endif
|
||||
|
||||
static unsigned int __sgt_dma_count_chunks(struct sg_table *sgt)
|
||||
static unsigned int sg_dma_count_chunks(struct scatterlist *sgl, unsigned int nents)
|
||||
{
|
||||
dma_addr_t next = ~(dma_addr_t)0;
|
||||
unsigned int count = 0, i;
|
||||
struct scatterlist *s;
|
||||
|
||||
for_each_sg(sgt->sgl, s, sgt->nents, i) {
|
||||
for_each_sg(sgl, s, nents, i) {
|
||||
/* sg_dma_address(s) is only valid for entries that have sg_dma_len(s) != 0. */
|
||||
if (!sg_dma_len(s))
|
||||
continue;
|
||||
@@ -46,6 +46,11 @@ static unsigned int __sgt_dma_count_chunks(struct sg_table *sgt)
|
||||
return count;
|
||||
}
|
||||
|
||||
static inline unsigned int sgt_dma_count_chunks(struct sg_table *sgt)
|
||||
{
|
||||
return sg_dma_count_chunks(sgt->sgl, sgt->nents);
|
||||
}
|
||||
|
||||
static void tegra_bo_put(struct host1x_bo *bo)
|
||||
{
|
||||
struct tegra_bo *obj = host1x_to_tegra_bo(bo);
|
||||
@@ -89,7 +94,7 @@ static struct host1x_bo_mapping *tegra_bo_pin(struct device *dev, struct host1x_
|
||||
goto free;
|
||||
}
|
||||
|
||||
err = __sgt_dma_count_chunks(map->sgt);
|
||||
err = sgt_dma_count_chunks(map->sgt);
|
||||
map->size = gem->size;
|
||||
|
||||
goto out;
|
||||
@@ -487,7 +492,6 @@ static struct tegra_bo *tegra_bo_import(struct drm_device *drm,
|
||||
}
|
||||
|
||||
bo->gem.import_attach = attach;
|
||||
bo->gem.resv = buf->resv;
|
||||
|
||||
return bo;
|
||||
|
||||
@@ -764,7 +768,6 @@ struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem,
|
||||
exp_info.size = gem->size;
|
||||
exp_info.flags = flags;
|
||||
exp_info.priv = gem;
|
||||
exp_info.resv = gem->resv;
|
||||
|
||||
return drm_gem_dmabuf_export(gem->dev, &exp_info);
|
||||
}
|
||||
@@ -789,3 +792,16 @@ struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm,
|
||||
|
||||
return &bo->gem;
|
||||
}
|
||||
|
||||
struct host1x_bo *tegra_gem_lookup(struct drm_file *file, u32 handle)
|
||||
{
|
||||
struct drm_gem_object *gem;
|
||||
struct tegra_bo *bo;
|
||||
|
||||
gem = drm_gem_object_lookup(file, handle);
|
||||
if (!gem)
|
||||
return NULL;
|
||||
|
||||
bo = to_tegra_bo(gem);
|
||||
return &bo->base;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user