drivers/gpu/drm/i915/display/intel_display_reset.c

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/display/intel_display_reset.c

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/i915/display/intel_display_reset.c
Extension
.c
Size
3209 bytes
Lines
127
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

if (ret) {
			drm_WARN_ON(display->drm, ret == -EDEADLK);
			drm_err(display->drm,
				"Restoring old state failed with %i\n", ret);
		}
	} else {
		/*
		 * The display has been reset as well,
		 * so need a full re-initialization.
		 */
		intel_pps_unlock_regs_wa(display);
		intel_display_driver_init_hw(display);
		intel_clock_gating_init(display->drm);
		intel_cx0_pll_power_save_wa(display);
		intel_hpd_init(display);

		ret = __intel_display_driver_resume(display, state, ctx);
		if (ret)
			drm_err(display->drm,
				"Restoring old state failed with %i\n", ret);

		intel_hpd_poll_disable(display);
	}

	drm_atomic_commit_put(state);
unlock:
	drm_modeset_drop_locks(ctx);
	drm_modeset_acquire_fini(ctx);
	mutex_unlock(&display->drm->mode_config.mutex);
}

void intel_display_reset_debugfs_register(struct intel_display *display)
{
	debugfs_create_u32("intel_display_reset_count", 0400,
			   display->drm->debugfs_root,
			   &display->reset.count);
}

Annotation

Implementation Notes