mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-10 17:41:54 +00:00
switch: Initialize switch state earlier during HOOK_INIT
The host may ask for our switch state at any time, so do initialization immediately after lid + power button are initialized. BUG=chrome-os-partner:63073 BRANCH=gru TEST=On kevin, verify system boots when EC reset is triggered with lid open. Verify lid close and power button press still succeed to power-down from dev screen. Change-Id: I8e37c02ef4f4d2d7c06beb383cdbda8eea67bc5c Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/444322 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> (cherry picked from commit 106d33cd3a8e4f3356950a3b2b92ea587977b4e7) Reviewed-on: https://chromium-review.googlesource.com/445276 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
a990e4e832
commit
899fba9649
@@ -518,6 +518,11 @@ static int host_command_read_memmap(struct host_cmd_handler_args *args)
|
||||
offset + size > EC_MEMMAP_SIZE)
|
||||
return EC_RES_INVALID_PARAM;
|
||||
|
||||
/* Make sure switch data is initialized */
|
||||
if (offset == EC_MEMMAP_SWITCHES &&
|
||||
*host_get_memmap(EC_MEMMAP_SWITCHES_VERSION) == 0)
|
||||
return EC_RES_UNAVAILABLE;
|
||||
|
||||
memcpy(args->response, host_get_memmap(offset), size);
|
||||
args->response_size = size;
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ static void switch_init(void)
|
||||
gpio_enable_interrupt(GPIO_WP_L);
|
||||
#endif
|
||||
}
|
||||
DECLARE_HOOK(HOOK_INIT, switch_init, HOOK_PRIO_DEFAULT);
|
||||
DECLARE_HOOK(HOOK_INIT, switch_init, HOOK_PRIO_INIT_SWITCH);
|
||||
|
||||
void switch_interrupt(enum gpio_signal signal)
|
||||
{
|
||||
|
||||
@@ -29,18 +29,20 @@ enum hook_priority {
|
||||
HOOK_PRIO_INIT_LID = HOOK_PRIO_FIRST + 4,
|
||||
/* Power button inits before chipset and switch */
|
||||
HOOK_PRIO_INIT_POWER_BUTTON = HOOK_PRIO_FIRST + 5,
|
||||
/* Init switch states after power button / lid */
|
||||
HOOK_PRIO_INIT_SWITCH = HOOK_PRIO_FIRST + 6,
|
||||
/* Init fan before PWM */
|
||||
HOOK_PRIO_INIT_FAN = HOOK_PRIO_FIRST + 6,
|
||||
HOOK_PRIO_INIT_FAN = HOOK_PRIO_FIRST + 7,
|
||||
/* PWM inits before modules which might use it (LEDs) */
|
||||
HOOK_PRIO_INIT_PWM = HOOK_PRIO_FIRST + 7,
|
||||
HOOK_PRIO_INIT_PWM = HOOK_PRIO_FIRST + 8,
|
||||
/* SPI inits before modules which might use it (sensors) */
|
||||
HOOK_PRIO_INIT_SPI = HOOK_PRIO_FIRST + 8,
|
||||
HOOK_PRIO_INIT_SPI = HOOK_PRIO_FIRST + 9,
|
||||
/* Extpower inits before modules which might use it (battery, LEDs) */
|
||||
HOOK_PRIO_INIT_EXTPOWER = HOOK_PRIO_FIRST + 9,
|
||||
HOOK_PRIO_INIT_EXTPOWER = HOOK_PRIO_FIRST + 10,
|
||||
/* Init VBOOT hash later, since it depends on deferred functions */
|
||||
HOOK_PRIO_INIT_VBOOT_HASH = HOOK_PRIO_FIRST + 10,
|
||||
HOOK_PRIO_INIT_VBOOT_HASH = HOOK_PRIO_FIRST + 11,
|
||||
/* Init charge manager before usage in board init */
|
||||
HOOK_PRIO_CHARGE_MANAGER_INIT = HOOK_PRIO_FIRST + 11,
|
||||
HOOK_PRIO_CHARGE_MANAGER_INIT = HOOK_PRIO_FIRST + 12,
|
||||
|
||||
/* Specific values to lump temperature-related hooks together */
|
||||
HOOK_PRIO_TEMP_SENSOR = 6000,
|
||||
|
||||
Reference in New Issue
Block a user