Commit 14ad7a11 authored by Daniel Lezcano's avatar Daniel Lezcano Committed by Rafael J. Wysocki
Browse files

ARM: tegra2: cpuidle: change driver initialization



Initialize the idle states directly in the driver structure.

That prevents extra structure declaration and memcpy at init time.

Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: default avatarJoseph Lo <josephl@nvidia.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 688036b5
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -43,12 +43,19 @@ static atomic_t abort_barrier;
static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
				    struct cpuidle_driver *drv,
				    int index);
#define TEGRA20_MAX_STATES 2
#else
#define TEGRA20_MAX_STATES 1
#endif

static struct cpuidle_state tegra_idle_states[] = {
	[0] = ARM_CPUIDLE_WFI_STATE_PWR(600),
static struct cpuidle_driver tegra_idle_driver = {
	.name = "tegra_idle",
	.owner = THIS_MODULE,
	.en_core_tk_irqen = 1,
	.states = {
		ARM_CPUIDLE_WFI_STATE_PWR(600),
#ifdef CONFIG_PM_SLEEP
	[1] = {
		{
			.enter            = tegra20_idle_lp2_coupled,
			.exit_latency     = 5000,
			.target_residency = 10000,
@@ -59,12 +66,9 @@ static struct cpuidle_state tegra_idle_states[] = {
			.desc             = "CPU power gated",
		},
#endif
};

static struct cpuidle_driver tegra_idle_driver = {
	.name = "tegra_idle",
	.owner = THIS_MODULE,
	.en_core_tk_irqen = 1,
	},
	.state_count = TEGRA20_MAX_STATES,
	.safe_state_index = 0,
};

static DEFINE_PER_CPU(struct cpuidle_device, tegra_idle_device);
@@ -226,10 +230,6 @@ int __init tegra20_cpuidle_init(void)
	tegra_tear_down_cpu = tegra20_tear_down_cpu;
#endif

	drv->state_count = ARRAY_SIZE(tegra_idle_states);
	memcpy(drv->states, tegra_idle_states,
			drv->state_count * sizeof(drv->states[0]));

	ret = cpuidle_register_driver(&tegra_idle_driver);
	if (ret) {
		pr_err("CPUidle driver registration failed\n");