drivers/platform/x86/msi-ec.h
Source file repositories/reference/linux-study-clean/drivers/platform/x86/msi-ec.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/platform/x86/msi-ec.h- Extension
.h- Size
- 2668 bytes
- Lines
- 123
- Domain
- Driver Families
- Bucket
- drivers/platform
- 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.
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.h
Detected Declarations
struct msi_ec_charge_control_confstruct msi_ec_webcam_confstruct msi_ec_fn_win_swap_confstruct msi_ec_cooler_boost_confstruct msi_ec_modestruct msi_ec_shift_mode_confstruct msi_ec_super_battery_confstruct msi_ec_fan_mode_confstruct msi_ec_cpu_confstruct msi_ec_gpu_confstruct msi_ec_led_confstruct msi_ec_kbd_bl_confstruct msi_ec_conf
Annotated Snippet
struct msi_ec_charge_control_conf {
int address;
int offset_start;
int offset_end;
int range_min;
int range_max;
};
struct msi_ec_webcam_conf {
int address;
int block_address;
int bit;
};
struct msi_ec_fn_win_swap_conf {
int address;
int bit;
};
struct msi_ec_cooler_boost_conf {
int address;
int bit;
};
#define MSI_EC_MODE_NULL { NULL, 0 }
struct msi_ec_mode {
const char *name;
int value;
};
struct msi_ec_shift_mode_conf {
int address;
struct msi_ec_mode modes[5]; // fixed size for easier hard coding
};
struct msi_ec_super_battery_conf {
int address;
int mask;
};
struct msi_ec_fan_mode_conf {
int address;
struct msi_ec_mode modes[5]; // fixed size for easier hard coding
};
struct msi_ec_cpu_conf {
int rt_temp_address;
int rt_fan_speed_address; // realtime
int rt_fan_speed_base_min;
int rt_fan_speed_base_max;
int bs_fan_speed_address; // basic
int bs_fan_speed_base_min;
int bs_fan_speed_base_max;
};
struct msi_ec_gpu_conf {
int rt_temp_address;
int rt_fan_speed_address; // realtime
};
struct msi_ec_led_conf {
int micmute_led_address;
int mute_led_address;
int bit;
};
#define MSI_EC_KBD_BL_STATE_MASK 0x3
struct msi_ec_kbd_bl_conf {
int bl_mode_address;
int bl_modes[2];
int max_mode;
int bl_state_address;
int state_base_value;
int max_state;
};
struct msi_ec_conf {
const char * const *allowed_fw;
struct msi_ec_charge_control_conf charge_control;
struct msi_ec_webcam_conf webcam;
struct msi_ec_fn_win_swap_conf fn_win_swap;
struct msi_ec_cooler_boost_conf cooler_boost;
struct msi_ec_shift_mode_conf shift_mode;
struct msi_ec_super_battery_conf super_battery;
struct msi_ec_fan_mode_conf fan_mode;
struct msi_ec_cpu_conf cpu;
struct msi_ec_gpu_conf gpu;
struct msi_ec_led_conf leds;
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct msi_ec_charge_control_conf`, `struct msi_ec_webcam_conf`, `struct msi_ec_fn_win_swap_conf`, `struct msi_ec_cooler_boost_conf`, `struct msi_ec_mode`, `struct msi_ec_shift_mode_conf`, `struct msi_ec_super_battery_conf`, `struct msi_ec_fan_mode_conf`, `struct msi_ec_cpu_conf`, `struct msi_ec_gpu_conf`.
- Atlas domain: Driver Families / drivers/platform.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.