drm/v3d: Delete v3d_dev->dev

We already have it in v3d_dev->drm.dev with zero additional pointer
chasing. Personally I don't like duplicated pointers like this
because:
- reviewers need to check whether the pointer is for the same or
  different objects if there's multiple
- compilers have an easier time too

But also a bit a bikeshed, so feel free to ignore.

Acked-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-10-daniel.vetter@ffwll.ch
This commit is contained in:
Daniel Vetter 2020-04-15 09:39:44 +02:00
parent 235b7e7d7e
commit bc662528e2
7 changed files with 37 additions and 38 deletions

View File

@ -132,7 +132,7 @@ static int v3d_v3d_debugfs_ident(struct seq_file *m, void *unused)
u32 ident0, ident1, ident2, ident3, cores; u32 ident0, ident1, ident2, ident3, cores;
int ret, core; int ret, core;
ret = pm_runtime_get_sync(v3d->dev); ret = pm_runtime_get_sync(v3d->drm.dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -187,8 +187,8 @@ static int v3d_v3d_debugfs_ident(struct seq_file *m, void *unused)
(misccfg & V3D_MISCCFG_OVRTMUOUT) != 0); (misccfg & V3D_MISCCFG_OVRTMUOUT) != 0);
} }
pm_runtime_mark_last_busy(v3d->dev); pm_runtime_mark_last_busy(v3d->drm.dev);
pm_runtime_put_autosuspend(v3d->dev); pm_runtime_put_autosuspend(v3d->drm.dev);
return 0; return 0;
} }
@ -219,7 +219,7 @@ static int v3d_measure_clock(struct seq_file *m, void *unused)
int measure_ms = 1000; int measure_ms = 1000;
int ret; int ret;
ret = pm_runtime_get_sync(v3d->dev); ret = pm_runtime_get_sync(v3d->drm.dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -245,8 +245,8 @@ static int v3d_measure_clock(struct seq_file *m, void *unused)
cycles / (measure_ms * 1000), cycles / (measure_ms * 1000),
(cycles / (measure_ms * 100)) % 10); (cycles / (measure_ms * 100)) % 10);
pm_runtime_mark_last_busy(v3d->dev); pm_runtime_mark_last_busy(v3d->drm.dev);
pm_runtime_put_autosuspend(v3d->dev); pm_runtime_put_autosuspend(v3d->drm.dev);
return 0; return 0;
} }

View File

@ -105,7 +105,7 @@ static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
if (args->value != 0) if (args->value != 0)
return -EINVAL; return -EINVAL;
ret = pm_runtime_get_sync(v3d->dev); ret = pm_runtime_get_sync(v3d->drm.dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
if (args->param >= DRM_V3D_PARAM_V3D_CORE0_IDENT0 && if (args->param >= DRM_V3D_PARAM_V3D_CORE0_IDENT0 &&
@ -114,8 +114,8 @@ static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
} else { } else {
args->value = V3D_READ(offset); args->value = V3D_READ(offset);
} }
pm_runtime_mark_last_busy(v3d->dev); pm_runtime_mark_last_busy(v3d->drm.dev);
pm_runtime_put_autosuspend(v3d->dev); pm_runtime_put_autosuspend(v3d->drm.dev);
return 0; return 0;
} }
@ -237,7 +237,7 @@ map_regs(struct v3d_dev *v3d, void __iomem **regs, const char *name)
struct resource *res = struct resource *res =
platform_get_resource_byname(v3d->pdev, IORESOURCE_MEM, name); platform_get_resource_byname(v3d->pdev, IORESOURCE_MEM, name);
*regs = devm_ioremap_resource(v3d->dev, res); *regs = devm_ioremap_resource(v3d->drm.dev, res);
return PTR_ERR_OR_ZERO(*regs); return PTR_ERR_OR_ZERO(*regs);
} }
@ -255,7 +255,6 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
if (IS_ERR(v3d)) if (IS_ERR(v3d))
return PTR_ERR(v3d); return PTR_ERR(v3d);
v3d->dev = dev;
v3d->pdev = pdev; v3d->pdev = pdev;
drm = &v3d->drm; drm = &v3d->drm;
@ -345,7 +344,8 @@ static int v3d_platform_drm_remove(struct platform_device *pdev)
v3d_gem_destroy(drm); v3d_gem_destroy(drm);
dma_free_wc(v3d->dev, 4096, v3d->mmu_scratch, v3d->mmu_scratch_paddr); dma_free_wc(v3d->drm.dev, 4096, v3d->mmu_scratch,
v3d->mmu_scratch_paddr);
return 0; return 0;
} }

View File

@ -14,7 +14,6 @@
#include "uapi/drm/v3d_drm.h" #include "uapi/drm/v3d_drm.h"
struct clk; struct clk;
struct device;
struct platform_device; struct platform_device;
struct reset_control; struct reset_control;
@ -47,7 +46,6 @@ struct v3d_dev {
int ver; int ver;
bool single_irq_line; bool single_irq_line;
struct device *dev;
struct platform_device *pdev; struct platform_device *pdev;
void __iomem *hub_regs; void __iomem *hub_regs;
void __iomem *core_regs[3]; void __iomem *core_regs[3];

View File

@ -370,8 +370,8 @@ v3d_job_free(struct kref *ref)
dma_fence_put(job->irq_fence); dma_fence_put(job->irq_fence);
dma_fence_put(job->done_fence); dma_fence_put(job->done_fence);
pm_runtime_mark_last_busy(job->v3d->dev); pm_runtime_mark_last_busy(job->v3d->drm.dev);
pm_runtime_put_autosuspend(job->v3d->dev); pm_runtime_put_autosuspend(job->v3d->drm.dev);
kfree(job); kfree(job);
} }
@ -439,7 +439,7 @@ v3d_job_init(struct v3d_dev *v3d, struct drm_file *file_priv,
job->v3d = v3d; job->v3d = v3d;
job->free = free; job->free = free;
ret = pm_runtime_get_sync(v3d->dev); ret = pm_runtime_get_sync(v3d->drm.dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -458,7 +458,7 @@ v3d_job_init(struct v3d_dev *v3d, struct drm_file *file_priv,
return 0; return 0;
fail: fail:
xa_destroy(&job->deps); xa_destroy(&job->deps);
pm_runtime_put_autosuspend(v3d->dev); pm_runtime_put_autosuspend(v3d->drm.dev);
return ret; return ret;
} }
@ -886,12 +886,12 @@ v3d_gem_init(struct drm_device *dev)
*/ */
drm_mm_init(&v3d->mm, 1, pt_size / sizeof(u32) - 1); drm_mm_init(&v3d->mm, 1, pt_size / sizeof(u32) - 1);
v3d->pt = dma_alloc_wc(v3d->dev, pt_size, v3d->pt = dma_alloc_wc(v3d->drm.dev, pt_size,
&v3d->pt_paddr, &v3d->pt_paddr,
GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO); GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO);
if (!v3d->pt) { if (!v3d->pt) {
drm_mm_takedown(&v3d->mm); drm_mm_takedown(&v3d->mm);
dev_err(v3d->dev, dev_err(v3d->drm.dev,
"Failed to allocate page tables. " "Failed to allocate page tables. "
"Please ensure you have CMA enabled.\n"); "Please ensure you have CMA enabled.\n");
return -ENOMEM; return -ENOMEM;
@ -903,7 +903,7 @@ v3d_gem_init(struct drm_device *dev)
ret = v3d_sched_init(v3d); ret = v3d_sched_init(v3d);
if (ret) { if (ret) {
drm_mm_takedown(&v3d->mm); drm_mm_takedown(&v3d->mm);
dma_free_coherent(v3d->dev, 4096 * 1024, (void *)v3d->pt, dma_free_coherent(v3d->drm.dev, 4096 * 1024, (void *)v3d->pt,
v3d->pt_paddr); v3d->pt_paddr);
} }
@ -925,5 +925,6 @@ v3d_gem_destroy(struct drm_device *dev)
drm_mm_takedown(&v3d->mm); drm_mm_takedown(&v3d->mm);
dma_free_coherent(v3d->dev, 4096 * 1024, (void *)v3d->pt, v3d->pt_paddr); dma_free_coherent(v3d->drm.dev, 4096 * 1024, (void *)v3d->pt,
v3d->pt_paddr);
} }

View File

@ -128,7 +128,7 @@ v3d_irq(int irq, void *arg)
* always-allowed mode. * always-allowed mode.
*/ */
if (intsts & V3D_INT_GMPV) if (intsts & V3D_INT_GMPV)
dev_err(v3d->dev, "GMP violation\n"); dev_err(v3d->drm.dev, "GMP violation\n");
/* V3D 4.2 wires the hub and core IRQs together, so if we & /* V3D 4.2 wires the hub and core IRQs together, so if we &
* didn't see the common one then check hub for MMU IRQs. * didn't see the common one then check hub for MMU IRQs.
@ -189,7 +189,7 @@ v3d_hub_irq(int irq, void *arg)
client = v3d41_axi_ids[axi_id]; client = v3d41_axi_ids[axi_id];
} }
dev_err(v3d->dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n", dev_err(v3d->drm.dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n",
client, axi_id, (long long)vio_addr, client, axi_id, (long long)vio_addr,
((intsts & V3D_HUB_INT_MMU_WRV) ? ((intsts & V3D_HUB_INT_MMU_WRV) ?
", write violation" : ""), ", write violation" : ""),
@ -221,12 +221,12 @@ v3d_irq_init(struct v3d_dev *v3d)
if (irq1 == -EPROBE_DEFER) if (irq1 == -EPROBE_DEFER)
return irq1; return irq1;
if (irq1 > 0) { if (irq1 > 0) {
ret = devm_request_irq(v3d->dev, irq1, ret = devm_request_irq(v3d->drm.dev, irq1,
v3d_irq, IRQF_SHARED, v3d_irq, IRQF_SHARED,
"v3d_core0", v3d); "v3d_core0", v3d);
if (ret) if (ret)
goto fail; goto fail;
ret = devm_request_irq(v3d->dev, platform_get_irq(v3d->pdev, 0), ret = devm_request_irq(v3d->drm.dev, platform_get_irq(v3d->pdev, 0),
v3d_hub_irq, IRQF_SHARED, v3d_hub_irq, IRQF_SHARED,
"v3d_hub", v3d); "v3d_hub", v3d);
if (ret) if (ret)
@ -234,7 +234,7 @@ v3d_irq_init(struct v3d_dev *v3d)
} else { } else {
v3d->single_irq_line = true; v3d->single_irq_line = true;
ret = devm_request_irq(v3d->dev, platform_get_irq(v3d->pdev, 0), ret = devm_request_irq(v3d->drm.dev, platform_get_irq(v3d->pdev, 0),
v3d_irq, IRQF_SHARED, v3d_irq, IRQF_SHARED,
"v3d", v3d); "v3d", v3d);
if (ret) if (ret)
@ -246,7 +246,7 @@ v3d_irq_init(struct v3d_dev *v3d)
fail: fail:
if (ret != -EPROBE_DEFER) if (ret != -EPROBE_DEFER)
dev_err(v3d->dev, "IRQ setup failed: %d\n", ret); dev_err(v3d->drm.dev, "IRQ setup failed: %d\n", ret);
return ret; return ret;
} }

View File

@ -40,7 +40,7 @@ static int v3d_mmu_flush_all(struct v3d_dev *v3d)
ret = wait_for(!(V3D_READ(V3D_MMU_CTL) & ret = wait_for(!(V3D_READ(V3D_MMU_CTL) &
V3D_MMU_CTL_TLB_CLEARING), 100); V3D_MMU_CTL_TLB_CLEARING), 100);
if (ret) if (ret)
dev_err(v3d->dev, "TLB clear wait idle pre-wait failed\n"); dev_err(v3d->drm.dev, "TLB clear wait idle pre-wait failed\n");
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL) | V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL) |
V3D_MMU_CTL_TLB_CLEAR); V3D_MMU_CTL_TLB_CLEAR);
@ -52,14 +52,14 @@ static int v3d_mmu_flush_all(struct v3d_dev *v3d)
ret = wait_for(!(V3D_READ(V3D_MMU_CTL) & ret = wait_for(!(V3D_READ(V3D_MMU_CTL) &
V3D_MMU_CTL_TLB_CLEARING), 100); V3D_MMU_CTL_TLB_CLEARING), 100);
if (ret) { if (ret) {
dev_err(v3d->dev, "TLB clear wait idle failed\n"); dev_err(v3d->drm.dev, "TLB clear wait idle failed\n");
return ret; return ret;
} }
ret = wait_for(!(V3D_READ(V3D_MMUC_CONTROL) & ret = wait_for(!(V3D_READ(V3D_MMUC_CONTROL) &
V3D_MMUC_CONTROL_FLUSHING), 100); V3D_MMUC_CONTROL_FLUSHING), 100);
if (ret) if (ret)
dev_err(v3d->dev, "MMUC flush wait idle failed\n"); dev_err(v3d->drm.dev, "MMUC flush wait idle failed\n");
return ret; return ret;
} }
@ -109,7 +109,7 @@ void v3d_mmu_insert_ptes(struct v3d_bo *bo)
shmem_obj->base.size >> V3D_MMU_PAGE_SHIFT); shmem_obj->base.size >> V3D_MMU_PAGE_SHIFT);
if (v3d_mmu_flush_all(v3d)) if (v3d_mmu_flush_all(v3d))
dev_err(v3d->dev, "MMU flush timeout\n"); dev_err(v3d->drm.dev, "MMU flush timeout\n");
} }
void v3d_mmu_remove_ptes(struct v3d_bo *bo) void v3d_mmu_remove_ptes(struct v3d_bo *bo)
@ -122,5 +122,5 @@ void v3d_mmu_remove_ptes(struct v3d_bo *bo)
v3d->pt[page] = 0; v3d->pt[page] = 0;
if (v3d_mmu_flush_all(v3d)) if (v3d_mmu_flush_all(v3d))
dev_err(v3d->dev, "MMU flush timeout\n"); dev_err(v3d->drm.dev, "MMU flush timeout\n");
} }

View File

@ -403,7 +403,7 @@ v3d_sched_init(struct v3d_dev *v3d)
msecs_to_jiffies(hang_limit_ms), msecs_to_jiffies(hang_limit_ms),
"v3d_bin"); "v3d_bin");
if (ret) { if (ret) {
dev_err(v3d->dev, "Failed to create bin scheduler: %d.", ret); dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
return ret; return ret;
} }
@ -413,7 +413,7 @@ v3d_sched_init(struct v3d_dev *v3d)
msecs_to_jiffies(hang_limit_ms), msecs_to_jiffies(hang_limit_ms),
"v3d_render"); "v3d_render");
if (ret) { if (ret) {
dev_err(v3d->dev, "Failed to create render scheduler: %d.", dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
ret); ret);
v3d_sched_fini(v3d); v3d_sched_fini(v3d);
return ret; return ret;
@ -425,7 +425,7 @@ v3d_sched_init(struct v3d_dev *v3d)
msecs_to_jiffies(hang_limit_ms), msecs_to_jiffies(hang_limit_ms),
"v3d_tfu"); "v3d_tfu");
if (ret) { if (ret) {
dev_err(v3d->dev, "Failed to create TFU scheduler: %d.", dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
ret); ret);
v3d_sched_fini(v3d); v3d_sched_fini(v3d);
return ret; return ret;
@ -438,7 +438,7 @@ v3d_sched_init(struct v3d_dev *v3d)
msecs_to_jiffies(hang_limit_ms), msecs_to_jiffies(hang_limit_ms),
"v3d_csd"); "v3d_csd");
if (ret) { if (ret) {
dev_err(v3d->dev, "Failed to create CSD scheduler: %d.", dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
ret); ret);
v3d_sched_fini(v3d); v3d_sched_fini(v3d);
return ret; return ret;
@ -450,7 +450,7 @@ v3d_sched_init(struct v3d_dev *v3d)
msecs_to_jiffies(hang_limit_ms), msecs_to_jiffies(hang_limit_ms),
"v3d_cache_clean"); "v3d_cache_clean");
if (ret) { if (ret) {
dev_err(v3d->dev, "Failed to create CACHE_CLEAN scheduler: %d.", dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
ret); ret);
v3d_sched_fini(v3d); v3d_sched_fini(v3d);
return ret; return ret;