drivers/soc/renesas/r9a06g032-smp.c

Source file repositories/reference/linux-study-clean/drivers/soc/renesas/r9a06g032-smp.c

File Facts

System
Linux kernel
Corpus path
drivers/soc/renesas/r9a06g032-smp.c
Extension
.c
Size
2411 bytes
Lines
97
Domain
Driver Families
Bucket
drivers/soc
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 (dns == sizeof(u64)) {
			u64 temp;

			ret = of_property_read_u64(dn,
						   "cpu-release-addr", &temp);
			bootaddr = temp;
		} else {
			ret = of_property_read_u32(dn,
						   "cpu-release-addr",
						   &bootaddr);
		}
	}
	of_node_put(dn);
	if (ret) {
		pr_err("CPU#1: invalid cpu-release-addr property\n");
		return;
	}
	pr_info("CPU#1: cpu-release-addr %08x\n", bootaddr);

	cpu_bootaddr = ioremap(bootaddr, sizeof(bootaddr));
}

static const struct smp_operations r9a06g032_smp_ops __initconst = {
	.smp_prepare_cpus = r9a06g032_smp_prepare_cpus,
	.smp_boot_secondary = r9a06g032_smp_boot_secondary,
};

CPU_METHOD_OF_DECLARE(r9a06g032_smp,
		      "renesas,r9a06g032-smp", &r9a06g032_smp_ops);

Annotation

Implementation Notes