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

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/i915/display/intel_pch.c
Extension
.c
Size
14530 bytes
Lines
434
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 (pch_type != PCH_NONE) {
			display->pch_type = pch_type;
			break;
		} else if (intel_is_virt_pch(id, pch->subsystem_vendor,
					     pch->subsystem_device)) {
			intel_virt_detect_pch(display, &id, &pch_type);
			display->pch_type = pch_type;
			break;
		}
	}

	/*
	 * Use PCH_NOP (PCH but no South Display) for PCH platforms without
	 * display.
	 */
	if (pch && !HAS_DISPLAY(display)) {
		drm_dbg_kms(display->drm,
			    "Display disabled, reverting to NOP PCH\n");
		display->pch_type = PCH_NOP;
	} else if (!pch) {
		if (intel_display_run_as_guest(display) && HAS_DISPLAY(display)) {
			intel_virt_detect_pch(display, &id, &pch_type);
			display->pch_type = pch_type;
		} else {
			drm_dbg_kms(display->drm, "No PCH found.\n");
		}
	}

	pci_dev_put(pch);
}

Annotation

Implementation Notes