arch/arm/mach-versatile/hotplug.c

Source file repositories/reference/linux-study-clean/arch/arm/mach-versatile/hotplug.c

File Facts

System
Linux kernel
Corpus path
arch/arm/mach-versatile/hotplug.c
Extension
.c
Size
2548 bytes
Lines
103
Domain
Architecture Layer
Bucket
arch/arm
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

if (versatile_cpu_release == cpu_logical_map(cpu)) {
			/*
			 * OK, proper wakeup, we're done
			 */
			break;
		}

		/*
		 * Getting here, means that we have come out of WFI without
		 * having been woken up - this shouldn't happen
		 *
		 * Just note it happening - when we're woken, we can report
		 * its occurrence.
		 */
		(*spurious)++;
	}
}

/*
 * platform-specific code to shutdown a CPU.
 * This code supports immitation-style CPU hotplug for Versatile/Realview/
 * Versatile Express platforms that are unable to do real CPU hotplug.
 */
void versatile_immitation_cpu_die(unsigned int cpu, unsigned int actrl_mask)
{
	int spurious = 0;

	versatile_immitation_enter_lowpower(actrl_mask);
	versatile_immitation_do_lowpower(cpu, &spurious);
	versatile_immitation_leave_lowpower(actrl_mask);

	if (spurious)
		pr_warn("CPU%u: %u spurious wakeup calls\n", cpu, spurious);
}

Annotation

Implementation Notes