mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-05 14:31:31 +00:00
Before this change drivers had no way of knowing that a frequency change was coming. This could cause problems for some drivers (like i2c) that need to make sure that a transaction isn't happening while a frequency change is happening. The PRE_FREQ_CHANGE archiecture is very simple here and we don't allow any way to cancel it. At the moment, we guarantee: - We won't call PRE_FREQ_CHANGE with interrupts disabled, so acquiring locks / sleeping is OK. - We'll call the actual HOOK_FREQ_CHANGE after the PRE_FREQ_CHANGE. PRE_FREQ_CHANGE and HOOK_FREQ_CHANGE should not use deferred function calls. BRANCH=pit BUG=chrome-os-partner:22093 TEST=With all patches together: - on AP: suspend_stress_test - on EC: battery 10000 50 Change-Id: I2731a3e85d41e749fa571fdb74b5c9b12043cda6 Signed-off-by: Doug Anderson <dianders@chromium.org> Previous-Reviewed-on: https://chromium-review.googlesource.com/167101 (cherry picked from commit d84c0dbbf7c5a72917a820e292ecfdfa698d0fb9) Reviewed-on: https://chromium-review.googlesource.com/167148 Reviewed-by: Randall Spangler <rspangler@chromium.org>
68 lines
2.6 KiB
C
68 lines
2.6 KiB
C
/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*
|
|
* Symbols from linker definitions
|
|
*/
|
|
|
|
#ifndef __CROS_EC_LINK_DEFS_H
|
|
#define __CROS_EC_LINK_DEFS_H
|
|
|
|
#include "console.h"
|
|
#include "hooks.h"
|
|
#include "host_command.h"
|
|
#include "task.h"
|
|
|
|
/* Console commands */
|
|
extern const struct console_command __cmds[];
|
|
extern const struct console_command __cmds_end[];
|
|
|
|
/* Hooks */
|
|
extern const struct hook_data __hooks_init[];
|
|
extern const struct hook_data __hooks_init_end[];
|
|
extern const struct hook_data __hooks_pre_freq_change[];
|
|
extern const struct hook_data __hooks_pre_freq_change_end[];
|
|
extern const struct hook_data __hooks_freq_change[];
|
|
extern const struct hook_data __hooks_freq_change_end[];
|
|
extern const struct hook_data __hooks_sysjump[];
|
|
extern const struct hook_data __hooks_sysjump_end[];
|
|
extern const struct hook_data __hooks_chipset_pre_init[];
|
|
extern const struct hook_data __hooks_chipset_pre_init_end[];
|
|
extern const struct hook_data __hooks_chipset_startup[];
|
|
extern const struct hook_data __hooks_chipset_startup_end[];
|
|
extern const struct hook_data __hooks_chipset_resume[];
|
|
extern const struct hook_data __hooks_chipset_resume_end[];
|
|
extern const struct hook_data __hooks_chipset_suspend[];
|
|
extern const struct hook_data __hooks_chipset_suspend_end[];
|
|
extern const struct hook_data __hooks_chipset_shutdown[];
|
|
extern const struct hook_data __hooks_chipset_shutdown_end[];
|
|
extern const struct hook_data __hooks_ac_change[];
|
|
extern const struct hook_data __hooks_ac_change_end[];
|
|
extern const struct hook_data __hooks_lid_change[];
|
|
extern const struct hook_data __hooks_lid_change_end[];
|
|
extern const struct hook_data __hooks_pwrbtn_change[];
|
|
extern const struct hook_data __hooks_pwrbtn_change_end[];
|
|
extern const struct hook_data __hooks_charge_state_change[];
|
|
extern const struct hook_data __hooks_charge_state_change_end[];
|
|
extern const struct hook_data __hooks_tick[];
|
|
extern const struct hook_data __hooks_tick_end[];
|
|
extern const struct hook_data __hooks_second[];
|
|
extern const struct hook_data __hooks_second_end[];
|
|
|
|
/* Deferrable functions */
|
|
extern const struct deferred_data __deferred_funcs[];
|
|
extern const struct deferred_data __deferred_funcs_end[];
|
|
|
|
/* Host commands */
|
|
extern const struct host_command __hcmds[];
|
|
extern const struct host_command __hcmds_end[];
|
|
|
|
/* IRQs (interrupt handlers) */
|
|
extern const struct irq_priority __irqprio[];
|
|
extern const struct irq_priority __irqprio_end[];
|
|
|
|
/* Shared memory buffer. Use via shared_mem.h interface. */
|
|
extern uint8_t __shared_mem_buf[];
|
|
|
|
#endif /* __CROS_EC_LINK_DEFS_H */
|