drivers/gpu/drm/i915/i915_debugfs.c

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/i915/i915_debugfs.c
Extension
.c
Size
20330 bytes
Lines
747
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: operation-table or driver-model contract
Status
pattern 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

static const struct file_operations i915_forcewake_fops = {
	.owner = THIS_MODULE,
	.open = i915_forcewake_open,
	.release = i915_forcewake_release,
};

static const struct drm_info_list i915_debugfs_list[] = {
	{"i915_capabilities", i915_capabilities, 0},
	{"i915_gem_objects", i915_gem_object_info, 0},
	{"i915_frequency_info", i915_frequency_info, 0},
	{"i915_swizzle_info", i915_swizzle_info, 0},
	{"i915_runtime_pm_status", i915_runtime_pm_status, 0},
	{"i915_engine_info", i915_engine_info, 0},
	{"i915_wa_registers", i915_wa_registers, 0},
	{"i915_sseu_status", i915_sseu_status, 0},
	{"i915_rps_boost_info", i915_rps_boost_info, 0},
};

static const struct i915_debugfs_files {
	const char *name;
	const struct file_operations *fops;
} i915_debugfs_files[] = {
	{"i915_perf_noa_delay", &i915_perf_noa_delay_fops},
	{"i915_wedged", &i915_wedged_fops},
	{"i915_gem_drop_caches", &i915_drop_caches_fops},
};

void i915_debugfs_register(struct drm_i915_private *i915)
{
	struct dentry *debugfs_root = i915->drm.debugfs_root;
	int i;

	i915_debugfs_params(i915);

	debugfs_create_file("i915_forcewake_user", S_IRUSR, debugfs_root,
			    i915, &i915_forcewake_fops);
	for (i = 0; i < ARRAY_SIZE(i915_debugfs_files); i++) {
		debugfs_create_file(i915_debugfs_files[i].name, S_IRUGO | S_IWUSR,
				    debugfs_root, i915,
				    i915_debugfs_files[i].fops);
	}

	drm_debugfs_create_files(i915_debugfs_list,
				 ARRAY_SIZE(i915_debugfs_list),
				 debugfs_root, i915->drm.primary);

	i915_gpu_error_debugfs_register(i915);
}

Annotation

Implementation Notes