Skip to content

Commit 72e96d6

Browse files
drm/i915: Refer to GGTT {,VM} consistently
Refer to the GGTT VM consistently as "ggtt->base" instead of just "ggtt", "vm" or indirectly through other variables like "dev_priv->ggtt.base" to avoid confusion with the i915_ggtt object itself and PPGTT VMs. Refer to the GGTT as "ggtt" instead of indirectly through chaining. As a bonus gets rid of the long-standing i915_obj_to_ggtt vs. i915_gem_obj_to_ggtt conflict, due to removal of i915_obj_to_ggtt! v2: - Added some more after grepping sources with Chris v3: - Refer to GGTT VM through ggtt->base consistently instead of ggtt_vm (Chris) v4: - Convert all dev_priv->ggtt->foo accesses to ggtt->foo. v5: - Make patch checker happy Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
1 parent 20a34e7 commit 72e96d6

16 files changed

+264
-218
lines changed

drivers/gpu/drm/i915/i915_debugfs.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,8 @@ static int i915_gem_object_list_info(struct seq_file *m, void *data)
202202
uintptr_t list = (uintptr_t) node->info_ent->data;
203203
struct list_head *head;
204204
struct drm_device *dev = node->minor->dev;
205-
struct drm_i915_private *dev_priv = dev->dev_private;
206-
struct i915_address_space *vm = &dev_priv->ggtt.base;
205+
struct drm_i915_private *dev_priv = to_i915(dev);
206+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
207207
struct i915_vma *vma;
208208
u64 total_obj_size, total_gtt_size;
209209
int count, ret;
@@ -216,11 +216,11 @@ static int i915_gem_object_list_info(struct seq_file *m, void *data)
216216
switch (list) {
217217
case ACTIVE_LIST:
218218
seq_puts(m, "Active:\n");
219-
head = &vm->active_list;
219+
head = &ggtt->base.active_list;
220220
break;
221221
case INACTIVE_LIST:
222222
seq_puts(m, "Inactive:\n");
223-
head = &vm->inactive_list;
223+
head = &ggtt->base.inactive_list;
224224
break;
225225
default:
226226
mutex_unlock(&dev->struct_mutex);
@@ -429,11 +429,11 @@ static int i915_gem_object_info(struct seq_file *m, void* data)
429429
{
430430
struct drm_info_node *node = m->private;
431431
struct drm_device *dev = node->minor->dev;
432-
struct drm_i915_private *dev_priv = dev->dev_private;
432+
struct drm_i915_private *dev_priv = to_i915(dev);
433+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
433434
u32 count, mappable_count, purgeable_count;
434435
u64 size, mappable_size, purgeable_size;
435436
struct drm_i915_gem_object *obj;
436-
struct i915_address_space *vm = &dev_priv->ggtt.base;
437437
struct drm_file *file;
438438
struct i915_vma *vma;
439439
int ret;
@@ -452,12 +452,12 @@ static int i915_gem_object_info(struct seq_file *m, void* data)
452452
count, mappable_count, size, mappable_size);
453453

454454
size = count = mappable_size = mappable_count = 0;
455-
count_vmas(&vm->active_list, vm_link);
455+
count_vmas(&ggtt->base.active_list, vm_link);
456456
seq_printf(m, " %u [%u] active objects, %llu [%llu] bytes\n",
457457
count, mappable_count, size, mappable_size);
458458

459459
size = count = mappable_size = mappable_count = 0;
460-
count_vmas(&vm->inactive_list, vm_link);
460+
count_vmas(&ggtt->base.inactive_list, vm_link);
461461
seq_printf(m, " %u [%u] inactive objects, %llu [%llu] bytes\n",
462462
count, mappable_count, size, mappable_size);
463463

@@ -492,8 +492,7 @@ static int i915_gem_object_info(struct seq_file *m, void* data)
492492
count, size);
493493

494494
seq_printf(m, "%llu [%llu] gtt total\n",
495-
dev_priv->ggtt.base.total,
496-
(u64)dev_priv->ggtt.mappable_end - dev_priv->ggtt.base.start);
495+
ggtt->base.total, ggtt->mappable_end - ggtt->base.start);
497496

498497
seq_putc(m, '\n');
499498
print_batch_pool_stats(m, dev_priv);

drivers/gpu/drm/i915/i915_dma.c

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -527,15 +527,16 @@ static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
527527
{
528528
struct apertures_struct *ap;
529529
struct pci_dev *pdev = dev_priv->dev->pdev;
530+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
530531
bool primary;
531532
int ret;
532533

533534
ap = alloc_apertures(1);
534535
if (!ap)
535536
return -ENOMEM;
536537

537-
ap->ranges[0].base = dev_priv->ggtt.mappable_base;
538-
ap->ranges[0].size = dev_priv->ggtt.mappable_end;
538+
ap->ranges[0].base = ggtt->mappable_base;
539+
ap->ranges[0].size = ggtt->mappable_end;
539540

540541
primary =
541542
pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
@@ -1170,6 +1171,7 @@ static void i915_driver_cleanup_mmio(struct drm_i915_private *dev_priv)
11701171
static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
11711172
{
11721173
struct drm_device *dev = dev_priv->dev;
1174+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
11731175
uint32_t aperture_size;
11741176
int ret;
11751177

@@ -1213,17 +1215,17 @@ static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
12131215
if (IS_BROADWATER(dev) || IS_CRESTLINE(dev))
12141216
dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(32));
12151217

1216-
aperture_size = dev_priv->ggtt.mappable_end;
1218+
aperture_size = ggtt->mappable_end;
12171219

1218-
dev_priv->ggtt.mappable =
1219-
io_mapping_create_wc(dev_priv->ggtt.mappable_base,
1220+
ggtt->mappable =
1221+
io_mapping_create_wc(ggtt->mappable_base,
12201222
aperture_size);
1221-
if (dev_priv->ggtt.mappable == NULL) {
1223+
if (!ggtt->mappable) {
12221224
ret = -EIO;
12231225
goto out_ggtt;
12241226
}
12251227

1226-
dev_priv->ggtt.mtrr = arch_phys_wc_add(dev_priv->ggtt.mappable_base,
1228+
ggtt->mtrr = arch_phys_wc_add(ggtt->mappable_base,
12271229
aperture_size);
12281230

12291231
pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY,
@@ -1266,13 +1268,14 @@ static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
12661268
static void i915_driver_cleanup_hw(struct drm_i915_private *dev_priv)
12671269
{
12681270
struct drm_device *dev = dev_priv->dev;
1271+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
12691272

12701273
if (dev->pdev->msi_enabled)
12711274
pci_disable_msi(dev->pdev);
12721275

12731276
pm_qos_remove_request(&dev_priv->pm_qos);
1274-
arch_phys_wc_del(dev_priv->ggtt.mtrr);
1275-
io_mapping_free(dev_priv->ggtt.mappable);
1277+
arch_phys_wc_del(ggtt->mtrr);
1278+
io_mapping_free(ggtt->mappable);
12761279
i915_ggtt_cleanup_hw(dev);
12771280
}
12781281

drivers/gpu/drm/i915/i915_drv.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3154,9 +3154,6 @@ i915_gem_obj_to_ggtt(struct drm_i915_gem_object *obj)
31543154
bool i915_gem_obj_is_pinned(struct drm_i915_gem_object *obj);
31553155

31563156
/* Some GGTT VM helpers */
3157-
#define i915_obj_to_ggtt(obj) \
3158-
(&((struct drm_i915_private *)(obj)->base.dev->dev_private)->ggtt.base)
3159-
31603157
static inline struct i915_hw_ppgtt *
31613158
i915_vm_to_ppgtt(struct i915_address_space *vm)
31623159
{
@@ -3173,15 +3170,21 @@ static inline bool i915_gem_obj_ggtt_bound(struct drm_i915_gem_object *obj)
31733170
static inline unsigned long
31743171
i915_gem_obj_ggtt_size(struct drm_i915_gem_object *obj)
31753172
{
3176-
return i915_gem_obj_size(obj, i915_obj_to_ggtt(obj));
3173+
struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
3174+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
3175+
3176+
return i915_gem_obj_size(obj, &ggtt->base);
31773177
}
31783178

31793179
static inline int __must_check
31803180
i915_gem_obj_ggtt_pin(struct drm_i915_gem_object *obj,
31813181
uint32_t alignment,
31823182
unsigned flags)
31833183
{
3184-
return i915_gem_object_pin(obj, i915_obj_to_ggtt(obj),
3184+
struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
3185+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
3186+
3187+
return i915_gem_object_pin(obj, &ggtt->base,
31853188
alignment, flags | PIN_GLOBAL);
31863189
}
31873190

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ int
130130
i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
131131
struct drm_file *file)
132132
{
133-
struct drm_i915_private *dev_priv = dev->dev_private;
134-
struct drm_i915_gem_get_aperture *args = data;
133+
struct drm_i915_private *dev_priv = to_i915(dev);
135134
struct i915_ggtt *ggtt = &dev_priv->ggtt;
135+
struct drm_i915_gem_get_aperture *args = data;
136136
struct i915_vma *vma;
137137
size_t pinned;
138138

@@ -146,7 +146,7 @@ i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
146146
pinned += vma->node.size;
147147
mutex_unlock(&dev->struct_mutex);
148148

149-
args->aper_size = dev_priv->ggtt.base.total;
149+
args->aper_size = ggtt->base.total;
150150
args->aper_available_size = args->aper_size - pinned;
151151

152152
return 0;
@@ -765,7 +765,8 @@ i915_gem_gtt_pwrite_fast(struct drm_device *dev,
765765
struct drm_i915_gem_pwrite *args,
766766
struct drm_file *file)
767767
{
768-
struct drm_i915_private *dev_priv = dev->dev_private;
768+
struct drm_i915_private *dev_priv = to_i915(dev);
769+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
769770
ssize_t remain;
770771
loff_t offset, page_base;
771772
char __user *user_data;
@@ -807,7 +808,7 @@ i915_gem_gtt_pwrite_fast(struct drm_device *dev,
807808
* source page isn't available. Return the error and we'll
808809
* retry in the slow path.
809810
*/
810-
if (fast_user_write(dev_priv->ggtt.mappable, page_base,
811+
if (fast_user_write(ggtt->mappable, page_base,
811812
page_offset, user_data, page_length)) {
812813
ret = -EFAULT;
813814
goto out_flush;
@@ -1790,7 +1791,8 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
17901791
{
17911792
struct drm_i915_gem_object *obj = to_intel_bo(vma->vm_private_data);
17921793
struct drm_device *dev = obj->base.dev;
1793-
struct drm_i915_private *dev_priv = dev->dev_private;
1794+
struct drm_i915_private *dev_priv = to_i915(dev);
1795+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
17941796
struct i915_ggtt_view view = i915_ggtt_view_normal;
17951797
pgoff_t page_offset;
17961798
unsigned long pfn;
@@ -1825,7 +1827,7 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
18251827
}
18261828

18271829
/* Use a partial view if the object is bigger than the aperture. */
1828-
if (obj->base.size >= dev_priv->ggtt.mappable_end &&
1830+
if (obj->base.size >= ggtt->mappable_end &&
18291831
obj->tiling_mode == I915_TILING_NONE) {
18301832
static const unsigned int chunk_size = 256; // 1 MiB
18311833

@@ -1853,7 +1855,7 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
18531855
goto unpin;
18541856

18551857
/* Finally, remap it using the new GTT offset */
1856-
pfn = dev_priv->ggtt.mappable_base +
1858+
pfn = ggtt->mappable_base +
18571859
i915_gem_obj_ggtt_offset_view(obj, &view);
18581860
pfn >>= PAGE_SHIFT;
18591861

@@ -3458,7 +3460,8 @@ i915_gem_object_bind_to_vm(struct drm_i915_gem_object *obj,
34583460
uint64_t flags)
34593461
{
34603462
struct drm_device *dev = obj->base.dev;
3461-
struct drm_i915_private *dev_priv = dev->dev_private;
3463+
struct drm_i915_private *dev_priv = to_i915(dev);
3464+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
34623465
u32 fence_alignment, unfenced_alignment;
34633466
u32 search_flag, alloc_flag;
34643467
u64 start, end;
@@ -3505,7 +3508,7 @@ i915_gem_object_bind_to_vm(struct drm_i915_gem_object *obj,
35053508
start = flags & PIN_OFFSET_BIAS ? flags & PIN_OFFSET_MASK : 0;
35063509
end = vm->total;
35073510
if (flags & PIN_MAPPABLE)
3508-
end = min_t(u64, end, dev_priv->ggtt.mappable_end);
3511+
end = min_t(u64, end, ggtt->mappable_end);
35093512
if (flags & PIN_ZONE_4G)
35103513
end = min_t(u64, end, (1ULL << 32) - PAGE_SIZE);
35113514

@@ -3712,6 +3715,9 @@ i915_gem_object_flush_cpu_write_domain(struct drm_i915_gem_object *obj)
37123715
int
37133716
i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
37143717
{
3718+
struct drm_device *dev = obj->base.dev;
3719+
struct drm_i915_private *dev_priv = to_i915(dev);
3720+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
37153721
uint32_t old_write_domain, old_read_domains;
37163722
struct i915_vma *vma;
37173723
int ret;
@@ -3766,7 +3772,7 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
37663772
vma = i915_gem_obj_to_ggtt(obj);
37673773
if (vma && drm_mm_node_allocated(&vma->node) && !obj->active)
37683774
list_move_tail(&vma->vm_link,
3769-
&to_i915(obj->base.dev)->ggtt.base.inactive_list);
3775+
&ggtt->base.inactive_list);
37703776

37713777
return 0;
37723778
}
@@ -4297,9 +4303,13 @@ i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
42974303
uint32_t alignment,
42984304
uint64_t flags)
42994305
{
4306+
struct drm_device *dev = obj->base.dev;
4307+
struct drm_i915_private *dev_priv = to_i915(dev);
4308+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
4309+
43004310
BUG_ON(!view);
43014311

4302-
return i915_gem_object_do_pin(obj, i915_obj_to_ggtt(obj), view,
4312+
return i915_gem_object_do_pin(obj, &ggtt->base, view,
43034313
alignment, flags | PIN_GLOBAL);
43044314
}
43054315

@@ -4611,13 +4621,15 @@ struct i915_vma *i915_gem_obj_to_vma(struct drm_i915_gem_object *obj,
46114621
struct i915_vma *i915_gem_obj_to_ggtt_view(struct drm_i915_gem_object *obj,
46124622
const struct i915_ggtt_view *view)
46134623
{
4614-
struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
4624+
struct drm_device *dev = obj->base.dev;
4625+
struct drm_i915_private *dev_priv = to_i915(dev);
4626+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
46154627
struct i915_vma *vma;
46164628

46174629
BUG_ON(!view);
46184630

46194631
list_for_each_entry(vma, &obj->vma_list, obj_link)
4620-
if (vma->vm == ggtt &&
4632+
if (vma->vm == &ggtt->base &&
46214633
i915_ggtt_view_equal(&vma->ggtt_view, view))
46224634
return vma;
46234635
return NULL;
@@ -5210,11 +5222,12 @@ u64 i915_gem_obj_offset(struct drm_i915_gem_object *o,
52105222
u64 i915_gem_obj_ggtt_offset_view(struct drm_i915_gem_object *o,
52115223
const struct i915_ggtt_view *view)
52125224
{
5213-
struct i915_address_space *ggtt = i915_obj_to_ggtt(o);
5225+
struct drm_i915_private *dev_priv = to_i915(o->base.dev);
5226+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
52145227
struct i915_vma *vma;
52155228

52165229
list_for_each_entry(vma, &o->vma_list, obj_link)
5217-
if (vma->vm == ggtt &&
5230+
if (vma->vm == &ggtt->base &&
52185231
i915_ggtt_view_equal(&vma->ggtt_view, view))
52195232
return vma->node.start;
52205233

@@ -5241,11 +5254,12 @@ bool i915_gem_obj_bound(struct drm_i915_gem_object *o,
52415254
bool i915_gem_obj_ggtt_bound_view(struct drm_i915_gem_object *o,
52425255
const struct i915_ggtt_view *view)
52435256
{
5244-
struct i915_address_space *ggtt = i915_obj_to_ggtt(o);
5257+
struct drm_i915_private *dev_priv = to_i915(o->base.dev);
5258+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
52455259
struct i915_vma *vma;
52465260

52475261
list_for_each_entry(vma, &o->vma_list, obj_link)
5248-
if (vma->vm == ggtt &&
5262+
if (vma->vm == &ggtt->base &&
52495263
i915_ggtt_view_equal(&vma->ggtt_view, view) &&
52505264
drm_mm_node_allocated(&vma->node))
52515265
return true;

drivers/gpu/drm/i915/i915_gem_execbuffer.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,8 @@ relocate_entry_gtt(struct drm_i915_gem_object *obj,
313313
uint64_t target_offset)
314314
{
315315
struct drm_device *dev = obj->base.dev;
316-
struct drm_i915_private *dev_priv = dev->dev_private;
316+
struct drm_i915_private *dev_priv = to_i915(dev);
317+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
317318
uint64_t delta = relocation_target(reloc, target_offset);
318319
uint64_t offset;
319320
void __iomem *reloc_page;
@@ -330,7 +331,7 @@ relocate_entry_gtt(struct drm_i915_gem_object *obj,
330331
/* Map the page containing the relocation we're going to perform. */
331332
offset = i915_gem_obj_ggtt_offset(obj);
332333
offset += reloc->offset;
333-
reloc_page = io_mapping_map_atomic_wc(dev_priv->ggtt.mappable,
334+
reloc_page = io_mapping_map_atomic_wc(ggtt->mappable,
334335
offset & PAGE_MASK);
335336
iowrite32(lower_32_bits(delta), reloc_page + offset_in_page(offset));
336337

@@ -340,7 +341,7 @@ relocate_entry_gtt(struct drm_i915_gem_object *obj,
340341
if (offset_in_page(offset) == 0) {
341342
io_mapping_unmap_atomic(reloc_page);
342343
reloc_page =
343-
io_mapping_map_atomic_wc(dev_priv->ggtt.mappable,
344+
io_mapping_map_atomic_wc(ggtt->mappable,
344345
offset);
345346
}
346347

@@ -1431,7 +1432,8 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
14311432
struct drm_i915_gem_execbuffer2 *args,
14321433
struct drm_i915_gem_exec_object2 *exec)
14331434
{
1434-
struct drm_i915_private *dev_priv = dev->dev_private;
1435+
struct drm_i915_private *dev_priv = to_i915(dev);
1436+
struct i915_ggtt *ggtt = &dev_priv->ggtt;
14351437
struct drm_i915_gem_request *req = NULL;
14361438
struct eb_vmas *eb;
14371439
struct drm_i915_gem_object *batch_obj;
@@ -1504,7 +1506,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
15041506
if (ctx->ppgtt)
15051507
vm = &ctx->ppgtt->base;
15061508
else
1507-
vm = &dev_priv->ggtt.base;
1509+
vm = &ggtt->base;
15081510

15091511
memset(&params_master, 0x00, sizeof(params_master));
15101512

0 commit comments

Comments
 (0)