Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/{i915,xe}/fb: add panic pointer member to struct intel_framebuffer

Add a panic data pointer member in struct intel_framebuffer in
preparation for breaking the artificial subclassing between
intel_framebuffer and panic structures.

Cc: Jocelyn Falempe <jfalempe@redhat.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://lore.kernel.org/r/41f42e1de8545409274d54854aa12e0fb390e394.1756835342.git.jani.nikula@intel.com

+19 -22
+1
drivers/gpu/drm/i915/display/intel_display_types.h
··· 149 149 unsigned int vtd_guard; 150 150 151 151 unsigned int (*panic_tiling)(unsigned int x, unsigned int y, unsigned int width); 152 + void *panic; 152 153 }; 153 154 154 155 enum intel_hotplug_state {
+9 -11
drivers/gpu/drm/i915/gem/i915_gem_pages.c
··· 368 368 struct i915_panic_data panic; 369 369 }; 370 370 371 - static inline struct i915_panic_data *to_i915_panic_data(struct intel_framebuffer *fb) 372 - { 373 - return &container_of_const(fb, struct i915_framebuffer, base)->panic; 374 - } 375 - 376 371 static void i915_panic_kunmap(struct i915_panic_data *panic) 377 372 { 378 373 if (panic->vaddr) { ··· 415 420 unsigned int new_page; 416 421 unsigned int offset; 417 422 struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; 418 - struct i915_panic_data *panic = to_i915_panic_data(fb); 423 + struct i915_panic_data *panic = fb->panic; 419 424 420 425 if (fb->panic_tiling) 421 426 offset = fb->panic_tiling(sb->width, x, y); ··· 441 446 struct i915_framebuffer *i915_fb; 442 447 443 448 i915_fb = kzalloc(sizeof(*i915_fb), GFP_KERNEL); 444 - if (i915_fb) 445 - return &i915_fb->base; 446 - return NULL; 449 + if (!i915_fb) 450 + return NULL; 451 + 452 + i915_fb->base.panic = &i915_fb->panic; 453 + 454 + return &i915_fb->base; 447 455 } 448 456 449 457 /* ··· 458 460 { 459 461 enum i915_map_type has_type; 460 462 struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; 461 - struct i915_panic_data *panic = to_i915_panic_data(fb); 463 + struct i915_panic_data *panic = fb->panic; 462 464 struct drm_i915_gem_object *obj = to_intel_bo(intel_fb_bo(&fb->base)); 463 465 void *ptr; 464 466 ··· 486 488 487 489 void i915_gem_object_panic_finish(struct intel_framebuffer *fb) 488 490 { 489 - struct i915_panic_data *panic = to_i915_panic_data(fb); 491 + struct i915_panic_data *panic = fb->panic; 490 492 491 493 i915_panic_kunmap(panic); 492 494 panic->page = -1;
+9 -11
drivers/gpu/drm/xe/display/xe_panic.c
··· 20 20 struct xe_panic_data panic; 21 21 }; 22 22 23 - static inline struct xe_panic_data *to_xe_panic_data(struct intel_framebuffer *fb) 24 - { 25 - return &container_of_const(fb, struct xe_framebuffer, base)->panic; 26 - } 27 - 28 23 static void xe_panic_kunmap(struct xe_panic_data *panic) 29 24 { 30 25 if (panic->vaddr) { ··· 38 43 unsigned int y, u32 color) 39 44 { 40 45 struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; 41 - struct xe_panic_data *panic = to_xe_panic_data(fb); 46 + struct xe_panic_data *panic = fb->panic; 42 47 struct xe_bo *bo = gem_to_xe_bo(intel_fb_bo(&fb->base)); 43 48 unsigned int new_page; 44 49 unsigned int offset; ··· 67 72 struct xe_framebuffer *xe_fb; 68 73 69 74 xe_fb = kzalloc(sizeof(*xe_fb), GFP_KERNEL); 70 - if (xe_fb) 71 - return &xe_fb->base; 72 - return NULL; 75 + if (!xe_fb) 76 + return NULL; 77 + 78 + xe_fb->base.panic = &xe_fb->panic; 79 + 80 + return &xe_fb->base; 73 81 } 74 82 75 83 int intel_panic_setup(struct drm_scanout_buffer *sb) 76 84 { 77 85 struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; 78 - struct xe_panic_data *panic = to_xe_panic_data(fb); 86 + struct xe_panic_data *panic = fb->panic; 79 87 80 88 panic->page = -1; 81 89 sb->set_pixel = xe_panic_page_set_pixel; ··· 87 89 88 90 void intel_panic_finish(struct intel_framebuffer *fb) 89 91 { 90 - struct xe_panic_data *panic = to_xe_panic_data(fb); 92 + struct xe_panic_data *panic = fb->panic; 91 93 92 94 xe_panic_kunmap(panic); 93 95 panic->page = -1;