Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (179 commits) ACPI: Fix acpi_processor_idle and idle= boot parameters interaction acpi: fix section mismatch warning in pnpacpi intel_menlo: fix build warning ACPI: Cleanup: Remove unneeded, multiple local dummy variables ACPI: video - fix permissions on some proc entries ACPI: video - properly handle errors when registering proc elements ACPI: video - do not store invalid entries in attached_array list ACPI: re-name acpi_pm_ops to acpi_suspend_ops ACER_WMI/ASUS_LAPTOP: fix build bug thinkpad_acpi: fix possible NULL pointer dereference if kstrdup failed ACPI: check a return value correctly in acpi_power_get_context() #if 0 acpi/bay.c:eject_removable_drive() eeepc-laptop: add hwmon fan control eeepc-laptop: add backlight eeepc-laptop: add base driver ACPI: thinkpad-acpi: bump up version to 0.20 ACPI: thinkpad-acpi: fix selects in Kconfig ACPI: thinkpad-acpi: use a private workqueue ACPI: thinkpad-acpi: fluff really minor fix ACPI: thinkpad-acpi: use uppercase for "LED" on user documentation ... Fixed conflicts in drivers/acpi/video.c and drivers/misc/intel_menlow.c manually.
This commit is contained in:
+13
-2
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20070126
|
||||
#define ACPI_CA_VERSION 0x20080321
|
||||
|
||||
/*
|
||||
* OS name, used for the _OS object. The _OS object is essentially obsolete,
|
||||
@@ -150,6 +150,17 @@
|
||||
#define ACPI_OBJ_NUM_OPERANDS 8
|
||||
#define ACPI_OBJ_MAX_OPERAND 7
|
||||
|
||||
/* Number of elements in the Result Stack frame, can be an arbitrary value */
|
||||
|
||||
#define ACPI_RESULTS_FRAME_OBJ_NUM 8
|
||||
|
||||
/*
|
||||
* Maximal number of elements the Result Stack can contain,
|
||||
* it may be an arbitray value not exceeding the types of
|
||||
* result_size and result_count (now u8).
|
||||
*/
|
||||
#define ACPI_RESULTS_OBJ_NUM_MAX 255
|
||||
|
||||
/* Names within the namespace are 4 bytes long */
|
||||
|
||||
#define ACPI_NAME_SIZE 4
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+28
-10
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -97,19 +97,23 @@ typedef const struct acpi_dmtable_info {
|
||||
#define ACPI_DMT_CHKSUM 20
|
||||
#define ACPI_DMT_SPACEID 21
|
||||
#define ACPI_DMT_GAS 22
|
||||
#define ACPI_DMT_DMAR 23
|
||||
#define ACPI_DMT_MADT 24
|
||||
#define ACPI_DMT_SRAT 25
|
||||
#define ACPI_DMT_EXIT 26
|
||||
#define ACPI_DMT_SIG 27
|
||||
#define ACPI_DMT_ASF 23
|
||||
#define ACPI_DMT_DMAR 24
|
||||
#define ACPI_DMT_HEST 25
|
||||
#define ACPI_DMT_HESTNTFY 26
|
||||
#define ACPI_DMT_HESTNTYP 27
|
||||
#define ACPI_DMT_MADT 28
|
||||
#define ACPI_DMT_SRAT 29
|
||||
#define ACPI_DMT_EXIT 30
|
||||
#define ACPI_DMT_SIG 31
|
||||
|
||||
typedef
|
||||
void (*ACPI_TABLE_HANDLER) (struct acpi_table_header * table);
|
||||
void (*acpi_dmtable_handler) (struct acpi_table_header * table);
|
||||
|
||||
struct acpi_dmtable_data {
|
||||
char *signature;
|
||||
struct acpi_dmtable_info *table_info;
|
||||
ACPI_TABLE_HANDLER table_handler;
|
||||
acpi_dmtable_handler table_handler;
|
||||
char *name;
|
||||
};
|
||||
|
||||
@@ -149,6 +153,7 @@ extern struct acpi_dmtable_info acpi_dm_table_info_asf3[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_asf4[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_asf_hdr[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_boot[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_bert[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_cpep[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_cpep0[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_dbgp[];
|
||||
@@ -158,11 +163,17 @@ extern struct acpi_dmtable_info acpi_dm_table_info_dmar_scope[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_dmar0[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_dmar1[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_ecdt[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_einj[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_einj0[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_erst[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_facs[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_fadt1[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_fadt2[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_gas[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_header[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_hest[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_hest9[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_hest_notify[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_hpet[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_madt[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_madt0[];
|
||||
@@ -180,6 +191,7 @@ extern struct acpi_dmtable_info acpi_dm_table_info_mcfg0[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_rsdp1[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_rsdp2[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_sbst[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_slic[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_slit[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_spcr[];
|
||||
extern struct acpi_dmtable_info acpi_dm_table_info_spmi[];
|
||||
@@ -194,7 +206,7 @@ extern struct acpi_dmtable_info acpi_dm_table_info_wdrt[];
|
||||
*/
|
||||
void acpi_dm_dump_data_table(struct acpi_table_header *table);
|
||||
|
||||
void
|
||||
acpi_status
|
||||
acpi_dm_dump_table(u32 table_length,
|
||||
u32 table_offset,
|
||||
void *table,
|
||||
@@ -213,9 +225,13 @@ void acpi_dm_dump_cpep(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_dmar(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_einj(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_erst(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_fadt(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_srat(struct acpi_table_header *table);
|
||||
void acpi_dm_dump_hest(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_mcfg(struct acpi_table_header *table);
|
||||
|
||||
@@ -227,6 +243,8 @@ void acpi_dm_dump_rsdt(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_slit(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_srat(struct acpi_table_header *table);
|
||||
|
||||
void acpi_dm_dump_xsdt(struct acpi_table_header *table);
|
||||
|
||||
/*
|
||||
|
||||
+15
-16
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -53,6 +53,9 @@
|
||||
acpi_status
|
||||
acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc);
|
||||
|
||||
acpi_status
|
||||
acpi_ds_get_bank_field_arguments(union acpi_operand_object *obj_desc);
|
||||
|
||||
acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *rgn_desc);
|
||||
|
||||
acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc);
|
||||
@@ -67,11 +70,19 @@ acpi_status
|
||||
acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *op);
|
||||
|
||||
acpi_status
|
||||
acpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *op);
|
||||
|
||||
acpi_status
|
||||
acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *op,
|
||||
union acpi_operand_object *obj_desc);
|
||||
|
||||
acpi_status
|
||||
acpi_ds_eval_bank_field_operands(struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *op);
|
||||
|
||||
acpi_status acpi_ds_initialize_region(acpi_handle obj_handle);
|
||||
|
||||
/*
|
||||
@@ -269,6 +280,8 @@ acpi_status acpi_ds_resolve_operands(struct acpi_walk_state *walk_state);
|
||||
|
||||
void acpi_ds_clear_operands(struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state);
|
||||
|
||||
/*
|
||||
* dswscope - Scope Stack manipulation
|
||||
*/
|
||||
@@ -303,7 +316,7 @@ acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state,
|
||||
u32 aml_length,
|
||||
struct acpi_evaluate_info *info, u8 pass_number);
|
||||
|
||||
acpi_status
|
||||
void
|
||||
acpi_ds_obj_stack_pop_and_delete(u32 pop_count,
|
||||
struct acpi_walk_state *walk_state);
|
||||
|
||||
@@ -316,21 +329,11 @@ void
|
||||
acpi_ds_push_walk_state(struct acpi_walk_state *walk_state,
|
||||
struct acpi_thread_state *thread);
|
||||
|
||||
acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ds_result_stack_push(struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ds_result_stack_clear(struct acpi_walk_state *walk_state);
|
||||
|
||||
struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state
|
||||
*thread);
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status
|
||||
acpi_ds_result_remove(union acpi_operand_object **object,
|
||||
u32 index, struct acpi_walk_state *walk_state);
|
||||
#endif
|
||||
|
||||
acpi_status
|
||||
acpi_ds_result_pop(union acpi_operand_object **object,
|
||||
struct acpi_walk_state *walk_state);
|
||||
@@ -339,8 +342,4 @@ acpi_status
|
||||
acpi_ds_result_push(union acpi_operand_object *object,
|
||||
struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status
|
||||
acpi_ds_result_pop_from_bottom(union acpi_operand_object **object,
|
||||
struct acpi_walk_state *walk_state);
|
||||
|
||||
#endif /* _ACDISPAT_H_ */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+24
-14
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -170,10 +170,14 @@ ACPI_EXTERN u8 acpi_gbl_integer_nybble_width;
|
||||
ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX];
|
||||
|
||||
/*
|
||||
* Global lock semaphore works in conjunction with the actual HW global lock
|
||||
* Global lock mutex is an actual AML mutex object
|
||||
* Global lock semaphore works in conjunction with the HW global lock
|
||||
*/
|
||||
ACPI_EXTERN acpi_mutex acpi_gbl_global_lock_mutex;
|
||||
ACPI_EXTERN union acpi_operand_object *acpi_gbl_global_lock_mutex;
|
||||
ACPI_EXTERN acpi_semaphore acpi_gbl_global_lock_semaphore;
|
||||
ACPI_EXTERN u16 acpi_gbl_global_lock_handle;
|
||||
ACPI_EXTERN u8 acpi_gbl_global_lock_acquired;
|
||||
ACPI_EXTERN u8 acpi_gbl_global_lock_present;
|
||||
|
||||
/*
|
||||
* Spinlocks are used for interfaces that can be possibly called at
|
||||
@@ -213,27 +217,33 @@ ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_device_notify;
|
||||
ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify;
|
||||
ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler;
|
||||
ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler;
|
||||
ACPI_EXTERN acpi_tbl_handler acpi_gbl_table_handler;
|
||||
ACPI_EXTERN void *acpi_gbl_table_handler_context;
|
||||
ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk;
|
||||
|
||||
/* Owner ID support */
|
||||
|
||||
ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS];
|
||||
ACPI_EXTERN u8 acpi_gbl_last_owner_id_index;
|
||||
ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset;
|
||||
|
||||
/* Misc */
|
||||
|
||||
ACPI_EXTERN u32 acpi_gbl_original_mode;
|
||||
ACPI_EXTERN u32 acpi_gbl_rsdp_original_location;
|
||||
ACPI_EXTERN u32 acpi_gbl_ns_lookup_count;
|
||||
ACPI_EXTERN u32 acpi_gbl_ps_find_count;
|
||||
ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS];
|
||||
ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save;
|
||||
ACPI_EXTERN u16 acpi_gbl_global_lock_handle;
|
||||
ACPI_EXTERN u8 acpi_gbl_last_owner_id_index;
|
||||
ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset;
|
||||
ACPI_EXTERN u8 acpi_gbl_debugger_configuration;
|
||||
ACPI_EXTERN u8 acpi_gbl_global_lock_acquired;
|
||||
ACPI_EXTERN u8 acpi_gbl_step_to_next_call;
|
||||
ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present;
|
||||
ACPI_EXTERN u8 acpi_gbl_global_lock_present;
|
||||
ACPI_EXTERN u8 acpi_gbl_events_initialized;
|
||||
ACPI_EXTERN u8 acpi_gbl_system_awake_and_running;
|
||||
|
||||
#ifndef DEFINE_ACPI_GLOBALS
|
||||
|
||||
/* Other miscellaneous */
|
||||
|
||||
extern u8 acpi_gbl_shutdown;
|
||||
extern u32 acpi_gbl_startup_flags;
|
||||
extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT];
|
||||
@@ -241,6 +251,8 @@ extern const char *acpi_gbl_highest_dstate_names[4];
|
||||
extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES];
|
||||
extern const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS];
|
||||
|
||||
#endif
|
||||
|
||||
/* Exception codes */
|
||||
|
||||
extern char const *acpi_gbl_exception_names_env[];
|
||||
@@ -255,8 +267,6 @@ extern char const *acpi_gbl_exception_names_ctrl[];
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define NUM_NS_TYPES ACPI_TYPE_INVALID+1
|
||||
|
||||
#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
|
||||
#define NUM_PREDEFINED_NAMES 10
|
||||
#else
|
||||
@@ -267,7 +277,7 @@ ACPI_EXTERN struct acpi_namespace_node acpi_gbl_root_node_struct;
|
||||
ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_root_node;
|
||||
ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_fadt_gpe_device;
|
||||
|
||||
extern const u8 acpi_gbl_ns_properties[NUM_NS_TYPES];
|
||||
extern const u8 acpi_gbl_ns_properties[ACPI_NUM_NS_TYPES];
|
||||
extern const struct acpi_predefined_names
|
||||
acpi_gbl_pre_defined_names[NUM_PREDEFINED_NAMES];
|
||||
|
||||
@@ -275,8 +285,8 @@ extern const struct acpi_predefined_names
|
||||
ACPI_EXTERN u32 acpi_gbl_current_node_count;
|
||||
ACPI_EXTERN u32 acpi_gbl_current_node_size;
|
||||
ACPI_EXTERN u32 acpi_gbl_max_concurrent_node_count;
|
||||
ACPI_EXTERN acpi_size acpi_gbl_entry_stack_pointer;
|
||||
ACPI_EXTERN acpi_size acpi_gbl_lowest_stack_pointer;
|
||||
ACPI_EXTERN acpi_size *acpi_gbl_entry_stack_pointer;
|
||||
ACPI_EXTERN acpi_size *acpi_gbl_lowest_stack_pointer;
|
||||
ACPI_EXTERN u32 acpi_gbl_deepest_nesting;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+10
-5
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -215,8 +215,6 @@ acpi_ex_create_region(u8 * aml_start,
|
||||
u32 aml_length,
|
||||
u8 region_space, struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ex_create_table_region(struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ex_create_event(struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state);
|
||||
@@ -247,10 +245,17 @@ acpi_ex_acquire_mutex(union acpi_operand_object *time_desc,
|
||||
union acpi_operand_object *obj_desc,
|
||||
struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status
|
||||
acpi_ex_acquire_mutex_object(u16 timeout,
|
||||
union acpi_operand_object *obj_desc,
|
||||
acpi_thread_id thread_id);
|
||||
|
||||
acpi_status
|
||||
acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
|
||||
struct acpi_walk_state *walk_state);
|
||||
|
||||
acpi_status acpi_ex_release_mutex_object(union acpi_operand_object *obj_desc);
|
||||
|
||||
void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread);
|
||||
|
||||
void acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc);
|
||||
@@ -455,9 +460,9 @@ void acpi_ex_relinquish_interpreter(void);
|
||||
|
||||
void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc);
|
||||
|
||||
u8 acpi_ex_acquire_global_lock(u32 rule);
|
||||
void acpi_ex_acquire_global_lock(u32 rule);
|
||||
|
||||
void acpi_ex_release_global_lock(u8 locked);
|
||||
void acpi_ex_release_global_lock(u32 rule);
|
||||
|
||||
void acpi_ex_eisa_id_to_string(u32 numeric_id, char *out_string);
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -522,9 +522,8 @@ struct acpi_thread_state {
|
||||
* AML arguments
|
||||
*/
|
||||
struct acpi_result_values {
|
||||
ACPI_STATE_COMMON u8 num_results;
|
||||
u8 last_insert;
|
||||
union acpi_operand_object *obj_desc[ACPI_OBJ_NUM_OPERANDS];
|
||||
ACPI_STATE_COMMON
|
||||
union acpi_operand_object *obj_desc[ACPI_RESULTS_FRAME_OBJ_NUM];
|
||||
};
|
||||
|
||||
typedef
|
||||
@@ -604,6 +603,7 @@ union acpi_parse_value {
|
||||
union acpi_parse_object *next; /* Next op */\
|
||||
struct acpi_namespace_node *node; /* For use by interpreter */\
|
||||
union acpi_parse_value value; /* Value or args associated with the opcode */\
|
||||
u8 arg_list_length; /* Number of elements in the arg list */\
|
||||
ACPI_DISASM_ONLY_MEMBERS (\
|
||||
u8 disasm_flags; /* Used during AML disassembly */\
|
||||
u8 disasm_opcode; /* Subtype used for disassembly */\
|
||||
@@ -696,6 +696,8 @@ struct acpi_parse_state {
|
||||
#define ACPI_PARSEOP_NAMED 0x02
|
||||
#define ACPI_PARSEOP_DEFERRED 0x04
|
||||
#define ACPI_PARSEOP_BYTELIST 0x08
|
||||
#define ACPI_PARSEOP_IN_STACK 0x10
|
||||
#define ACPI_PARSEOP_TARGET 0x20
|
||||
#define ACPI_PARSEOP_IN_CACHE 0x80
|
||||
|
||||
/* Parse object disasm_flags */
|
||||
|
||||
+36
-35
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -61,30 +61,6 @@
|
||||
|
||||
#define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0]))
|
||||
|
||||
#ifdef ACPI_NO_INTEGER64_SUPPORT
|
||||
/*
|
||||
* acpi_integer is 32-bits, no 64-bit support on this platform
|
||||
*/
|
||||
#define ACPI_LODWORD(l) ((u32)(l))
|
||||
#define ACPI_HIDWORD(l) ((u32)(0))
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* Full 64-bit address/integer on both 32-bit and 64-bit platforms
|
||||
*/
|
||||
#define ACPI_LODWORD(l) ((u32)(u64)(l))
|
||||
#define ACPI_HIDWORD(l) ((u32)(((*(struct uint64_struct *)(void *)(&l))).hi))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* printf() format helpers
|
||||
*/
|
||||
|
||||
/* Split 64-bit integer into two 32-bit values. Use with %8.8_x%8.8_x */
|
||||
|
||||
#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i),ACPI_LODWORD(i)
|
||||
|
||||
/*
|
||||
* Extract data using a pointer. Any more than a byte and we
|
||||
* get into potential aligment issues -- see the STORE macros below.
|
||||
@@ -121,6 +97,31 @@
|
||||
#define ACPI_COMPARE_NAME(a,b) (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Full 64-bit integer must be available on both 32-bit and 64-bit platforms
|
||||
*/
|
||||
struct acpi_integer_overlay {
|
||||
u32 lo_dword;
|
||||
u32 hi_dword;
|
||||
};
|
||||
|
||||
#define ACPI_LODWORD(integer) (ACPI_CAST_PTR (struct acpi_integer_overlay, &integer)->lo_dword)
|
||||
#define ACPI_HIDWORD(integer) (ACPI_CAST_PTR (struct acpi_integer_overlay, &integer)->hi_dword)
|
||||
|
||||
/*
|
||||
* printf() format helpers
|
||||
*/
|
||||
|
||||
/* Split 64-bit integer into two 32-bit values. Use with %8.8_x%8.8_x */
|
||||
|
||||
#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i),ACPI_LODWORD(i)
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
#define ACPI_FORMAT_NATIVE_UINT(i) ACPI_FORMAT_UINT64(i)
|
||||
#else
|
||||
#define ACPI_FORMAT_NATIVE_UINT(i) 0, (i)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Macros for moving data around to/from buffers that are possibly unaligned.
|
||||
* If the hardware supports the transfer of unaligned data, just do the store.
|
||||
@@ -137,29 +138,29 @@
|
||||
|
||||
/* These macros reverse the bytes during the move, converting little-endian to big endian */
|
||||
|
||||
/* Big Endian <== Little Endian */
|
||||
/* Hi...Lo Lo...Hi */
|
||||
/* Big Endian <== Little Endian */
|
||||
/* Hi...Lo Lo...Hi */
|
||||
/* 16-bit source, 16/32/64 destination */
|
||||
|
||||
#define ACPI_MOVE_16_TO_16(d,s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\
|
||||
(( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];}
|
||||
(( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];}
|
||||
|
||||
#define ACPI_MOVE_16_TO_32(d,s) {(*(u32 *)(void *)(d))=0;\
|
||||
((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
|
||||
((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
|
||||
((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
|
||||
((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
|
||||
|
||||
#define ACPI_MOVE_16_TO_64(d,s) {(*(u64 *)(void *)(d))=0;\
|
||||
((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\
|
||||
((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];}
|
||||
((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\
|
||||
((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];}
|
||||
|
||||
/* 32-bit source, 16/32/64 destination */
|
||||
|
||||
#define ACPI_MOVE_32_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
|
||||
|
||||
#define ACPI_MOVE_32_TO_32(d,s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\
|
||||
(( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\
|
||||
(( u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
|
||||
(( u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
|
||||
(( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\
|
||||
(( u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
|
||||
(( u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
|
||||
|
||||
#define ACPI_MOVE_32_TO_64(d,s) {(*(u64 *)(void *)(d))=0;\
|
||||
((u8 *)(void *)(d))[4] = ((u8 *)(void *)(s))[3];\
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -113,7 +113,8 @@ acpi_ns_parse_table(acpi_native_uint table_index,
|
||||
|
||||
acpi_status
|
||||
acpi_ns_one_complete_parse(acpi_native_uint pass_number,
|
||||
acpi_native_uint table_index);
|
||||
acpi_native_uint table_index,
|
||||
struct acpi_namespace_node *start_node);
|
||||
|
||||
/*
|
||||
* nsaccess - Top-level namespace access
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -155,8 +155,9 @@ struct acpi_object_event {
|
||||
struct acpi_object_mutex {
|
||||
ACPI_OBJECT_COMMON_HEADER u8 sync_level; /* 0-15, specified in Mutex() call */
|
||||
u16 acquisition_depth; /* Allow multiple Acquires, same thread */
|
||||
struct acpi_thread_state *owner_thread; /* Current owner of the mutex */
|
||||
acpi_mutex os_mutex; /* Actual OS synchronization object */
|
||||
acpi_thread_id thread_id; /* Current owner of the mutex */
|
||||
struct acpi_thread_state *owner_thread; /* Current owner of the mutex */
|
||||
union acpi_operand_object *prev; /* Link for list of acquired mutexes */
|
||||
union acpi_operand_object *next; /* Link for list of acquired mutexes */
|
||||
struct acpi_namespace_node *node; /* Containing namespace node */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -233,7 +233,7 @@
|
||||
#define ARGI_CREATE_WORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
|
||||
#define ARGI_DATA_REGION_OP ARGI_LIST3 (ARGI_STRING, ARGI_STRING, ARGI_STRING)
|
||||
#define ARGI_DEBUG_OP ARG_NONE
|
||||
#define ARGI_DECREMENT_OP ARGI_LIST1 (ARGI_INTEGER_REF)
|
||||
#define ARGI_DECREMENT_OP ARGI_LIST1 (ARGI_TARGETREF)
|
||||
#define ARGI_DEREF_OF_OP ARGI_LIST1 (ARGI_REF_OR_STRING)
|
||||
#define ARGI_DEVICE_OP ARGI_INVALID_OPCODE
|
||||
#define ARGI_DIVIDE_OP ARGI_LIST4 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF, ARGI_TARGETREF)
|
||||
@@ -246,7 +246,7 @@
|
||||
#define ARGI_FIND_SET_RIGHT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
|
||||
#define ARGI_FROM_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET)
|
||||
#define ARGI_IF_OP ARGI_INVALID_OPCODE
|
||||
#define ARGI_INCREMENT_OP ARGI_LIST1 (ARGI_INTEGER_REF)
|
||||
#define ARGI_INCREMENT_OP ARGI_LIST1 (ARGI_TARGETREF)
|
||||
#define ARGI_INDEX_FIELD_OP ARGI_INVALID_OPCODE
|
||||
#define ARGI_INDEX_OP ARGI_LIST3 (ARGI_COMPLEXOBJ, ARGI_INTEGER, ARGI_TARGETREF)
|
||||
#define ARGI_LAND_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -109,6 +109,8 @@ const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode);
|
||||
|
||||
char *acpi_ps_get_opcode_name(u16 opcode);
|
||||
|
||||
u8 acpi_ps_get_argument_count(u32 op_type);
|
||||
|
||||
/*
|
||||
* psparse - top level parsing routines
|
||||
*/
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -119,6 +119,11 @@ acpi_status
|
||||
acpi_get_table_by_index(acpi_native_uint table_index,
|
||||
struct acpi_table_header **out_table);
|
||||
|
||||
acpi_status
|
||||
acpi_install_table_handler(acpi_tbl_handler handler, void *context);
|
||||
|
||||
acpi_status acpi_remove_table_handler(acpi_tbl_handler handler);
|
||||
|
||||
/*
|
||||
* Namespace and name interfaces
|
||||
*/
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -94,6 +94,7 @@ typedef const struct acpi_rsconvert_info {
|
||||
#define ACPI_RSC_BITMASK16 18
|
||||
#define ACPI_RSC_EXIT_NE 19
|
||||
#define ACPI_RSC_EXIT_LE 20
|
||||
#define ACPI_RSC_EXIT_EQ 21
|
||||
|
||||
/* Resource Conversion sub-opcodes */
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -80,12 +80,15 @@ struct acpi_walk_state {
|
||||
u16 opcode; /* Current AML opcode */
|
||||
u8 next_op_info; /* Info about next_op */
|
||||
u8 num_operands; /* Stack pointer for Operands[] array */
|
||||
u8 operand_index; /* Index into operand stack, to be used by acpi_ds_obj_stack_push */
|
||||
acpi_owner_id owner_id; /* Owner of objects created during the walk */
|
||||
u8 last_predicate; /* Result of last predicate */
|
||||
u8 current_result;
|
||||
u8 return_used;
|
||||
u8 scope_depth;
|
||||
u8 pass_number; /* Parse pass during table load */
|
||||
u8 result_size; /* Total elements for the result stack */
|
||||
u8 result_count; /* Current number of occupied elements of result stack */
|
||||
u32 aml_offset;
|
||||
u32 arg_types;
|
||||
u32 method_breakpoint; /* For single stepping */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+559
-2
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -58,20 +58,28 @@
|
||||
* it more difficult to inadvertently type in the wrong signature.
|
||||
*/
|
||||
#define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */
|
||||
#define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */
|
||||
#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */
|
||||
#define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */
|
||||
#define ACPI_SIG_DBGP "DBGP" /* Debug Port table */
|
||||
#define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */
|
||||
#define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */
|
||||
#define ACPI_SIG_EINJ "EINJ" /* Error Injection table */
|
||||
#define ACPI_SIG_ERST "ERST" /* Error Record Serialization Table */
|
||||
#define ACPI_SIG_HEST "HEST" /* Hardware Error Source Table */
|
||||
#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
|
||||
#define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */
|
||||
#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
|
||||
#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
|
||||
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
|
||||
#define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */
|
||||
#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
|
||||
#define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */
|
||||
#define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */
|
||||
#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
|
||||
#define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */
|
||||
#define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */
|
||||
#define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */
|
||||
#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
|
||||
|
||||
/*
|
||||
@@ -86,13 +94,25 @@
|
||||
* portable, so do not use any other bitfield types.
|
||||
*/
|
||||
|
||||
/* Common Sub-table header (used in MADT, SRAT, etc.) */
|
||||
/* Common Subtable header (used in MADT, SRAT, etc.) */
|
||||
|
||||
struct acpi_subtable_header {
|
||||
u8 type;
|
||||
u8 length;
|
||||
};
|
||||
|
||||
/* Common Subtable header for WHEA tables (EINJ, ERST, WDAT) */
|
||||
|
||||
struct acpi_whea_header {
|
||||
u8 action;
|
||||
u8 instruction;
|
||||
u8 flags;
|
||||
u8 reserved;
|
||||
struct acpi_generic_address register_region;
|
||||
u64 value; /* Value used with Read/Write register */
|
||||
u64 mask; /* Bitmask required for this register instruction */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ASF - Alert Standard Format table (Signature "ASF!")
|
||||
@@ -202,6 +222,35 @@ struct acpi_asf_address {
|
||||
u8 devices;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* BERT - Boot Error Record Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_bert {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 region_length; /* Length of the boot error region */
|
||||
u64 address; /* Physical addresss of the error region */
|
||||
};
|
||||
|
||||
/* Boot Error Region */
|
||||
|
||||
struct acpi_bert_region {
|
||||
u32 block_status;
|
||||
u32 raw_data_offset;
|
||||
u32 raw_data_length;
|
||||
u32 data_length;
|
||||
u32 error_severity;
|
||||
};
|
||||
|
||||
/* block_status Flags */
|
||||
|
||||
#define ACPI_BERT_UNCORRECTABLE (1)
|
||||
#define ACPI_BERT_CORRECTABLE (2)
|
||||
#define ACPI_BERT_MULTIPLE_UNCORRECTABLE (4)
|
||||
#define ACPI_BERT_MULTIPLE_CORRECTABLE (8)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* BOOT - Simple Boot Flag Table
|
||||
@@ -348,6 +397,352 @@ struct acpi_table_ecdt {
|
||||
u8 id[1]; /* Full namepath of the EC in the ACPI namespace */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* EINJ - Error Injection Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_einj {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 header_length;
|
||||
u32 reserved;
|
||||
u32 entries;
|
||||
};
|
||||
|
||||
/* EINJ Injection Instruction Entries (actions) */
|
||||
|
||||
struct acpi_einj_entry {
|
||||
struct acpi_whea_header whea_header; /* Common header for WHEA tables */
|
||||
};
|
||||
|
||||
/* Values for Action field above */
|
||||
|
||||
enum acpi_einj_actions {
|
||||
ACPI_EINJ_BEGIN_OPERATION = 0,
|
||||
ACPI_EINJ_GET_TRIGGER_TABLE = 1,
|
||||
ACPI_EINJ_SET_ERROR_TYPE = 2,
|
||||
ACPI_EINJ_GET_ERROR_TYPE = 3,
|
||||
ACPI_EINJ_END_OPERATION = 4,
|
||||
ACPI_EINJ_EXECUTE_OPERATION = 5,
|
||||
ACPI_EINJ_CHECK_BUSY_STATUS = 6,
|
||||
ACPI_EINJ_GET_COMMAND_STATUS = 7,
|
||||
ACPI_EINJ_ACTION_RESERVED = 8, /* 8 and greater are reserved */
|
||||
ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */
|
||||
};
|
||||
|
||||
/* Values for Instruction field above */
|
||||
|
||||
enum acpi_einj_instructions {
|
||||
ACPI_EINJ_READ_REGISTER = 0,
|
||||
ACPI_EINJ_READ_REGISTER_VALUE = 1,
|
||||
ACPI_EINJ_WRITE_REGISTER = 2,
|
||||
ACPI_EINJ_WRITE_REGISTER_VALUE = 3,
|
||||
ACPI_EINJ_NOOP = 4,
|
||||
ACPI_EINJ_INSTRUCTION_RESERVED = 5 /* 5 and greater are reserved */
|
||||
};
|
||||
|
||||
/* EINJ Trigger Error Action Table */
|
||||
|
||||
struct acpi_einj_trigger {
|
||||
u32 header_size;
|
||||
u32 revision;
|
||||
u32 table_size;
|
||||
u32 entry_count;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ERST - Error Record Serialization Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_erst {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 header_length;
|
||||
u32 reserved;
|
||||
u32 entries;
|
||||
};
|
||||
|
||||
/* ERST Serialization Entries (actions) */
|
||||
|
||||
struct acpi_erst_entry {
|
||||
struct acpi_whea_header whea_header; /* Common header for WHEA tables */
|
||||
};
|
||||
|
||||
/* Values for Action field above */
|
||||
|
||||
enum acpi_erst_actions {
|
||||
ACPI_ERST_BEGIN_WRITE_OPERATION = 0,
|
||||
ACPI_ERST_BEGIN_READ_OPERATION = 1,
|
||||
ACPI_ERST_BETGIN_CLEAR_OPERATION = 2,
|
||||
ACPI_ERST_END_OPERATION = 3,
|
||||
ACPI_ERST_SET_RECORD_OFFSET = 4,
|
||||
ACPI_ERST_EXECUTE_OPERATION = 5,
|
||||
ACPI_ERST_CHECK_BUSY_STATUS = 6,
|
||||
ACPI_ERST_GET_COMMAND_STATUS = 7,
|
||||
ACPI_ERST_GET_RECORD_IDENTIFIER = 8,
|
||||
ACPI_ERST_SET_RECORD_IDENTIFIER = 9,
|
||||
ACPI_ERST_GET_RECORD_COUNT = 10,
|
||||
ACPI_ERST_BEGIN_DUMMY_WRIITE = 11,
|
||||
ACPI_ERST_NOT_USED = 12,
|
||||
ACPI_ERST_GET_ERROR_RANGE = 13,
|
||||
ACPI_ERST_GET_ERROR_LENGTH = 14,
|
||||
ACPI_ERST_GET_ERROR_ATTRIBUTES = 15,
|
||||
ACPI_ERST_ACTION_RESERVED = 16 /* 16 and greater are reserved */
|
||||
};
|
||||
|
||||
/* Values for Instruction field above */
|
||||
|
||||
enum acpi_erst_instructions {
|
||||
ACPI_ERST_READ_REGISTER = 0,
|
||||
ACPI_ERST_READ_REGISTER_VALUE = 1,
|
||||
ACPI_ERST_WRITE_REGISTER = 2,
|
||||
ACPI_ERST_WRITE_REGISTER_VALUE = 3,
|
||||
ACPI_ERST_NOOP = 4,
|
||||
ACPI_ERST_LOAD_VAR1 = 5,
|
||||
ACPI_ERST_LOAD_VAR2 = 6,
|
||||
ACPI_ERST_STORE_VAR1 = 7,
|
||||
ACPI_ERST_ADD = 8,
|
||||
ACPI_ERST_SUBTRACT = 9,
|
||||
ACPI_ERST_ADD_VALUE = 10,
|
||||
ACPI_ERST_SUBTRACT_VALUE = 11,
|
||||
ACPI_ERST_STALL = 12,
|
||||
ACPI_ERST_STALL_WHILE_TRUE = 13,
|
||||
ACPI_ERST_SKIP_NEXT_IF_TRUE = 14,
|
||||
ACPI_ERST_GOTO = 15,
|
||||
ACPI_ERST_SET_SRC_ADDRESS_BASE = 16,
|
||||
ACPI_ERST_SET_DST_ADDRESS_BASE = 17,
|
||||
ACPI_ERST_MOVE_DATA = 18,
|
||||
ACPI_ERST_INSTRUCTION_RESERVED = 19 /* 19 and greater are reserved */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* HEST - Hardware Error Source Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_hest {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 error_source_count;
|
||||
};
|
||||
|
||||
/* HEST subtable header */
|
||||
|
||||
struct acpi_hest_header {
|
||||
u16 type;
|
||||
};
|
||||
|
||||
/* Values for Type field above for subtables */
|
||||
|
||||
enum acpi_hest_types {
|
||||
ACPI_HEST_TYPE_XPF_MACHINE_CHECK = 0,
|
||||
ACPI_HEST_TYPE_XPF_CORRECTED_MACHINE_CHECK = 1,
|
||||
ACPI_HEST_TYPE_XPF_UNUSED = 2,
|
||||
ACPI_HEST_TYPE_XPF_NON_MASKABLE_INTERRUPT = 3,
|
||||
ACPI_HEST_TYPE_IPF_CORRECTED_MACHINE_CHECK = 4,
|
||||
ACPI_HEST_TYPE_IPF_CORRECTED_PLATFORM_ERROR = 5,
|
||||
ACPI_HEST_TYPE_AER_ROOT_PORT = 6,
|
||||
ACPI_HEST_TYPE_AER_ENDPOINT = 7,
|
||||
ACPI_HEST_TYPE_AER_BRIDGE = 8,
|
||||
ACPI_HEST_TYPE_GENERIC_HARDWARE_ERROR_SOURCE = 9,
|
||||
ACPI_HEST_TYPE_RESERVED = 10 /* 10 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
* HEST Sub-subtables
|
||||
*/
|
||||
|
||||
/* XPF Machine Check Error Bank */
|
||||
|
||||
struct acpi_hest_xpf_error_bank {
|
||||
u8 bank_number;
|
||||
u8 clear_status_on_init;
|
||||
u8 status_format;
|
||||
u8 config_write_enable;
|
||||
u32 control_register;
|
||||
u64 control_init_data;
|
||||
u32 status_register;
|
||||
u32 address_register;
|
||||
u32 misc_register;
|
||||
};
|
||||
|
||||
/* Generic Error Status */
|
||||
|
||||
struct acpi_hest_generic_status {
|
||||
u32 block_status;
|
||||
u32 raw_data_offset;
|
||||
u32 raw_data_length;
|
||||
u32 data_length;
|
||||
u32 error_severity;
|
||||
};
|
||||
|
||||
/* Generic Error Data */
|
||||
|
||||
struct acpi_hest_generic_data {
|
||||
u8 section_type[16];
|
||||
u32 error_severity;
|
||||
u16 revision;
|
||||
u8 validation_bits;
|
||||
u8 flags;
|
||||
u32 error_data_length;
|
||||
u8 fru_id[16];
|
||||
u8 fru_text[20];
|
||||
};
|
||||
|
||||
/* Common HEST structure for PCI/AER types below (6,7,8) */
|
||||
|
||||
struct acpi_hest_aer_common {
|
||||
u16 source_id;
|
||||
u16 config_write_enable;
|
||||
u8 flags;
|
||||
u8 enabled;
|
||||
u32 records_to_pre_allocate;
|
||||
u32 max_sections_per_record;
|
||||
u32 bus;
|
||||
u16 device;
|
||||
u16 function;
|
||||
u16 device_control;
|
||||
u16 reserved;
|
||||
u32 uncorrectable_error_mask;
|
||||
u32 uncorrectable_error_severity;
|
||||
u32 correctable_error_mask;
|
||||
u32 advanced_error_cababilities;
|
||||
};
|
||||
|
||||
/* Hardware Error Notification */
|
||||
|
||||
struct acpi_hest_notify {
|
||||
u8 type;
|
||||
u8 length;
|
||||
u16 config_write_enable;
|
||||
u32 poll_interval;
|
||||
u32 vector;
|
||||
u32 polling_threshold_value;
|
||||
u32 polling_threshold_window;
|
||||
u32 error_threshold_value;
|
||||
u32 error_threshold_window;
|
||||
};
|
||||
|
||||
/* Values for Notify Type field above */
|
||||
|
||||
enum acpi_hest_notify_types {
|
||||
ACPI_HEST_NOTIFY_POLLED = 0,
|
||||
ACPI_HEST_NOTIFY_EXTERNAL = 1,
|
||||
ACPI_HEST_NOTIFY_LOCAL = 2,
|
||||
ACPI_HEST_NOTIFY_SCI = 3,
|
||||
ACPI_HEST_NOTIFY_NMI = 4,
|
||||
ACPI_HEST_NOTIFY_RESERVED = 5 /* 5 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
* HEST subtables
|
||||
*
|
||||
* From WHEA Design Document, 16 May 2007.
|
||||
* Note: There is no subtable type 2 in this version of the document,
|
||||
* and there are two different subtable type 3s.
|
||||
*/
|
||||
|
||||
/* 0: XPF Machine Check Exception */
|
||||
|
||||
struct acpi_hest_xpf_machine_check {
|
||||
struct acpi_hest_header header;
|
||||
u16 source_id;
|
||||
u16 config_write_enable;
|
||||
u8 flags;
|
||||
u8 reserved1;
|
||||
u32 records_to_pre_allocate;
|
||||
u32 max_sections_per_record;
|
||||
u64 global_capability_data;
|
||||
u64 global_control_data;
|
||||
u8 num_hardware_banks;
|
||||
u8 reserved2[7];
|
||||
};
|
||||
|
||||
/* 1: XPF Corrected Machine Check */
|
||||
|
||||
struct acpi_table_hest_xpf_corrected {
|
||||
struct acpi_hest_header header;
|
||||
u16 source_id;
|
||||
u16 config_write_enable;
|
||||
u8 flags;
|
||||
u8 enabled;
|
||||
u32 records_to_pre_allocate;
|
||||
u32 max_sections_per_record;
|
||||
struct acpi_hest_notify notify;
|
||||
u8 num_hardware_banks;
|
||||
u8 reserved[3];
|
||||
};
|
||||
|
||||
/* 3: XPF Non-Maskable Interrupt */
|
||||
|
||||
struct acpi_hest_xpf_nmi {
|
||||
struct acpi_hest_header header;
|
||||
u16 source_id;
|
||||
u32 reserved;
|
||||
u32 records_to_pre_allocate;
|
||||
u32 max_sections_per_record;
|
||||
u32 max_raw_data_length;
|
||||
};
|
||||
|
||||
/* 4: IPF Corrected Machine Check */
|
||||
|
||||
struct acpi_hest_ipf_corrected {
|
||||
struct acpi_hest_header header;
|
||||
u8 enabled;
|
||||
u8 reserved;
|
||||
};
|
||||
|
||||
/* 5: IPF Corrected Platform Error */
|
||||
|
||||
struct acpi_hest_ipf_corrected_platform {
|
||||
struct acpi_hest_header header;
|
||||
u8 enabled;
|
||||
u8 reserved;
|
||||
};
|
||||
|
||||
/* 6: PCI Express Root Port AER */
|
||||
|
||||
struct acpi_hest_aer_root {
|
||||
struct acpi_hest_header header;
|
||||
struct acpi_hest_aer_common aer;
|
||||
u32 root_error_command;
|
||||
};
|
||||
|
||||
/* 7: PCI Express AER (AER Endpoint) */
|
||||
|
||||
struct acpi_hest_aer {
|
||||
struct acpi_hest_header header;
|
||||
struct acpi_hest_aer_common aer;
|
||||
};
|
||||
|
||||
/* 8: PCI Express/PCI-X Bridge AER */
|
||||
|
||||
struct acpi_hest_aer_bridge {
|
||||
struct acpi_hest_header header;
|
||||
struct acpi_hest_aer_common aer;
|
||||
u32 secondary_uncorrectable_error_mask;
|
||||
u32 secondary_uncorrectable_error_severity;
|
||||
u32 secondary_advanced_capabilities;
|
||||
};
|
||||
|
||||
/* 9: Generic Hardware Error Source */
|
||||
|
||||
struct acpi_hest_generic {
|
||||
struct acpi_hest_header header;
|
||||
u16 source_id;
|
||||
u16 related_source_id;
|
||||
u8 config_write_enable;
|
||||
u8 enabled;
|
||||
u32 records_to_pre_allocate;
|
||||
u32 max_sections_per_record;
|
||||
u32 max_raw_data_length;
|
||||
struct acpi_generic_address error_status_address;
|
||||
struct acpi_hest_notify notify;
|
||||
u32 error_status_block_length;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* HPET - High Precision Event Timer table
|
||||
@@ -371,6 +766,96 @@ struct acpi_table_hpet {
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* IBFT - Boot Firmware Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_ibft {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u8 reserved[12];
|
||||
};
|
||||
|
||||
/* IBFT common subtable header */
|
||||
|
||||
struct acpi_ibft_header {
|
||||
u8 type;
|
||||
u8 version;
|
||||
u16 length;
|
||||
u8 index;
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
/* Values for Type field above */
|
||||
|
||||
enum acpi_ibft_type {
|
||||
ACPI_IBFT_TYPE_NOT_USED = 0,
|
||||
ACPI_IBFT_TYPE_CONTROL = 1,
|
||||
ACPI_IBFT_TYPE_INITIATOR = 2,
|
||||
ACPI_IBFT_TYPE_NIC = 3,
|
||||
ACPI_IBFT_TYPE_TARGET = 4,
|
||||
ACPI_IBFT_TYPE_EXTENSIONS = 5,
|
||||
ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */
|
||||
};
|
||||
|
||||
/* IBFT subtables */
|
||||
|
||||
struct acpi_ibft_control {
|
||||
struct acpi_ibft_header header;
|
||||
u16 extensions;
|
||||
u16 initiator_offset;
|
||||
u16 nic0_offset;
|
||||
u16 target0_offset;
|
||||
u16 nic1_offset;
|
||||
u16 target1_offset;
|
||||
};
|
||||
|
||||
struct acpi_ibft_initiator {
|
||||
struct acpi_ibft_header header;
|
||||
u8 sns_server[16];
|
||||
u8 slp_server[16];
|
||||
u8 primary_server[16];
|
||||
u8 secondary_server[16];
|
||||
u16 name_length;
|
||||
u16 name_offset;
|
||||
};
|
||||
|
||||
struct acpi_ibft_nic {
|
||||
struct acpi_ibft_header header;
|
||||
u8 ip_address[16];
|
||||
u8 subnet_mask_prefix;
|
||||
u8 origin;
|
||||
u8 gateway[16];
|
||||
u8 primary_dns[16];
|
||||
u8 secondary_dns[16];
|
||||
u8 dhcp[16];
|
||||
u16 vlan;
|
||||
u8 mac_address[6];
|
||||
u16 pci_address;
|
||||
u16 name_length;
|
||||
u16 name_offset;
|
||||
};
|
||||
|
||||
struct acpi_ibft_target {
|
||||
struct acpi_ibft_header header;
|
||||
u8 target_ip_address[16];
|
||||
u16 target_ip_socket;
|
||||
u8 target_boot_lun[8];
|
||||
u8 chap_type;
|
||||
u8 nic_association;
|
||||
u16 target_name_length;
|
||||
u16 target_name_offset;
|
||||
u16 chap_name_length;
|
||||
u16 chap_name_offset;
|
||||
u16 chap_secret_length;
|
||||
u16 chap_secret_offset;
|
||||
u16 reverse_chap_name_length;
|
||||
u16 reverse_chap_name_offset;
|
||||
u16 reverse_chap_secret_length;
|
||||
u16 reverse_chap_secret_offset;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* MADT - Multiple APIC Description Table
|
||||
@@ -695,6 +1180,78 @@ struct acpi_table_tcpa {
|
||||
u64 log_address; /* Address of the event log area */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* UEFI - UEFI Boot optimization Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_uefi {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u8 identifier[16]; /* UUID identifier */
|
||||
u16 data_offset; /* Offset of remaining data in table */
|
||||
u8 data;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* WDAT - Watchdog Action Table
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_wdat {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 header_length; /* Watchdog Header Length */
|
||||
u16 pci_segment; /* PCI Segment number */
|
||||
u8 pci_bus; /* PCI Bus number */
|
||||
u8 pci_device; /* PCI Device number */
|
||||
u8 pci_function; /* PCI Function number */
|
||||
u8 reserved[3];
|
||||
u32 timer_period; /* Period of one timer count (msec) */
|
||||
u32 max_count; /* Maximum counter value supported */
|
||||
u32 min_count; /* Minimum counter value */
|
||||
u8 flags;
|
||||
u8 reserved2[3];
|
||||
u32 entries; /* Number of watchdog entries that follow */
|
||||
};
|
||||
|
||||
/* WDAT Instruction Entries (actions) */
|
||||
|
||||
struct acpi_wdat_entry {
|
||||
struct acpi_whea_header whea_header; /* Common header for WHEA tables */
|
||||
};
|
||||
|
||||
/* Values for Action field above */
|
||||
|
||||
enum acpi_wdat_actions {
|
||||
ACPI_WDAT_RESET = 1,
|
||||
ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4,
|
||||
ACPI_WDAT_GET_COUNTDOWN = 5,
|
||||
ACPI_WDAT_SET_COUNTDOWN = 6,
|
||||
ACPI_WDAT_GET_RUNNING_STATE = 8,
|
||||
ACPI_WDAT_SET_RUNNING_STATE = 9,
|
||||
ACPI_WDAT_GET_STOPPED_STATE = 10,
|
||||
ACPI_WDAT_SET_STOPPED_STATE = 11,
|
||||
ACPI_WDAT_GET_REBOOT = 16,
|
||||
ACPI_WDAT_SET_REBOOT = 17,
|
||||
ACPI_WDAT_GET_SHUTDOWN = 18,
|
||||
ACPI_WDAT_SET_SHUTDOWN = 19,
|
||||
ACPI_WDAT_GET_STATUS = 32,
|
||||
ACPI_WDAT_SET_STATUS = 33,
|
||||
ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */
|
||||
};
|
||||
|
||||
/* Values for Instruction field above */
|
||||
|
||||
enum acpi_wdat_instructions {
|
||||
ACPI_WDAT_READ_VALUE = 0,
|
||||
ACPI_WDAT_READ_COUNTDOWN = 1,
|
||||
ACPI_WDAT_WRITE_VALUE = 2,
|
||||
ACPI_WDAT_WRITE_COUNTDOWN = 3,
|
||||
ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */
|
||||
ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* WDRT - Watchdog Resource Table
|
||||
|
||||
+51
-42
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -323,27 +323,11 @@ struct uint32_struct {
|
||||
#define acpi_semaphore void *
|
||||
|
||||
/*
|
||||
* Acpi integer width. In ACPI version 1, integers are
|
||||
* 32 bits. In ACPI version 2, integers are 64 bits.
|
||||
* Note that this pertains to the ACPI integer type only, not
|
||||
* other integers used in the implementation of the ACPI CA
|
||||
* Acpi integer width. In ACPI version 1, integers are 32 bits. In ACPI
|
||||
* version 2, integers are 64 bits. Note that this pertains to the ACPI integer
|
||||
* type only, not other integers used in the implementation of the ACPI CA
|
||||
* subsystem.
|
||||
*/
|
||||
#ifdef ACPI_NO_INTEGER64_SUPPORT
|
||||
|
||||
/* 32-bit integers only, no 64-bit support */
|
||||
|
||||
typedef u32 acpi_integer;
|
||||
#define ACPI_INTEGER_MAX ACPI_UINT32_MAX
|
||||
#define ACPI_INTEGER_BIT_SIZE 32
|
||||
#define ACPI_MAX_DECIMAL_DIGITS 10 /* 2^32 = 4,294,967,296 */
|
||||
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* Use compiler native 32-bit divide */
|
||||
|
||||
#else
|
||||
|
||||
/* 64-bit integers */
|
||||
|
||||
typedef unsigned long long acpi_integer;
|
||||
#define ACPI_INTEGER_MAX ACPI_UINT64_MAX
|
||||
#define ACPI_INTEGER_BIT_SIZE 64
|
||||
@@ -352,7 +336,6 @@ typedef unsigned long long acpi_integer;
|
||||
#if ACPI_MACHINE_WIDTH == 64
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* Use compiler native 64-bit divide */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define ACPI_MAX64_DECIMAL_DIGITS 20
|
||||
#define ACPI_MAX32_DECIMAL_DIGITS 10
|
||||
@@ -419,14 +402,20 @@ typedef unsigned long long acpi_integer;
|
||||
/*
|
||||
* Standard notify values
|
||||
*/
|
||||
#define ACPI_NOTIFY_BUS_CHECK (u8) 0
|
||||
#define ACPI_NOTIFY_DEVICE_CHECK (u8) 1
|
||||
#define ACPI_NOTIFY_DEVICE_WAKE (u8) 2
|
||||
#define ACPI_NOTIFY_EJECT_REQUEST (u8) 3
|
||||
#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT (u8) 4
|
||||
#define ACPI_NOTIFY_FREQUENCY_MISMATCH (u8) 5
|
||||
#define ACPI_NOTIFY_BUS_MODE_MISMATCH (u8) 6
|
||||
#define ACPI_NOTIFY_POWER_FAULT (u8) 7
|
||||
#define ACPI_NOTIFY_BUS_CHECK (u8) 0x00
|
||||
#define ACPI_NOTIFY_DEVICE_CHECK (u8) 0x01
|
||||
#define ACPI_NOTIFY_DEVICE_WAKE (u8) 0x02
|
||||
#define ACPI_NOTIFY_EJECT_REQUEST (u8) 0x03
|
||||
#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT (u8) 0x04
|
||||
#define ACPI_NOTIFY_FREQUENCY_MISMATCH (u8) 0x05
|
||||
#define ACPI_NOTIFY_BUS_MODE_MISMATCH (u8) 0x06
|
||||
#define ACPI_NOTIFY_POWER_FAULT (u8) 0x07
|
||||
#define ACPI_NOTIFY_CAPABILITIES_CHECK (u8) 0x08
|
||||
#define ACPI_NOTIFY_DEVICE_PLD_CHECK (u8) 0x09
|
||||
#define ACPI_NOTIFY_RESERVED (u8) 0x0A
|
||||
#define ACPI_NOTIFY_LOCALITY_UPDATE (u8) 0x0B
|
||||
|
||||
#define ACPI_NOTIFY_MAX 0x0B
|
||||
|
||||
/*
|
||||
* Types associated with ACPI names and objects. The first group of
|
||||
@@ -494,6 +483,8 @@ typedef u32 acpi_object_type;
|
||||
#define ACPI_TYPE_INVALID 0x1E
|
||||
#define ACPI_TYPE_NOT_FOUND 0xFF
|
||||
|
||||
#define ACPI_NUM_NS_TYPES (ACPI_TYPE_INVALID + 1)
|
||||
|
||||
/*
|
||||
* All I/O
|
||||
*/
|
||||
@@ -599,7 +590,7 @@ typedef u32 acpi_event_status;
|
||||
|
||||
#define ACPI_SYSTEM_NOTIFY 0x1
|
||||
#define ACPI_DEVICE_NOTIFY 0x2
|
||||
#define ACPI_ALL_NOTIFY 0x3
|
||||
#define ACPI_ALL_NOTIFY (ACPI_SYSTEM_NOTIFY | ACPI_DEVICE_NOTIFY)
|
||||
#define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3
|
||||
|
||||
#define ACPI_MAX_SYS_NOTIFY 0x7f
|
||||
@@ -654,46 +645,51 @@ typedef u8 acpi_adr_space_type;
|
||||
/*
|
||||
* External ACPI object definition
|
||||
*/
|
||||
|
||||
/*
|
||||
* Note: Type == ACPI_TYPE_ANY (0) is used to indicate a NULL package element
|
||||
* or an unresolved named reference.
|
||||
*/
|
||||
union acpi_object {
|
||||
acpi_object_type type; /* See definition of acpi_ns_type for values */
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
acpi_object_type type; /* ACPI_TYPE_INTEGER */
|
||||
acpi_integer value; /* The actual number */
|
||||
} integer;
|
||||
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
acpi_object_type type; /* ACPI_TYPE_STRING */
|
||||
u32 length; /* # of bytes in string, excluding trailing null */
|
||||
char *pointer; /* points to the string value */
|
||||
} string;
|
||||
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
acpi_object_type type; /* ACPI_TYPE_BUFFER */
|
||||
u32 length; /* # of bytes in buffer */
|
||||
u8 *pointer; /* points to the buffer */
|
||||
} buffer;
|
||||
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
u32 fill1;
|
||||
acpi_handle handle; /* object reference */
|
||||
} reference;
|
||||
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
acpi_object_type type; /* ACPI_TYPE_PACKAGE */
|
||||
u32 count; /* # of elements in package */
|
||||
union acpi_object *elements; /* Pointer to an array of ACPI_OBJECTs */
|
||||
} package;
|
||||
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
acpi_object_type type; /* ACPI_TYPE_LOCAL_REFERENCE */
|
||||
acpi_object_type actual_type; /* Type associated with the Handle */
|
||||
acpi_handle handle; /* object reference */
|
||||
} reference;
|
||||
|
||||
struct {
|
||||
acpi_object_type type; /* ACPI_TYPE_PROCESSOR */
|
||||
u32 proc_id;
|
||||
acpi_io_address pblk_address;
|
||||
u32 pblk_length;
|
||||
} processor;
|
||||
|
||||
struct {
|
||||
acpi_object_type type;
|
||||
acpi_object_type type; /* ACPI_TYPE_POWER */
|
||||
u32 system_level;
|
||||
u32 resource_order;
|
||||
} power_resource;
|
||||
@@ -747,6 +743,12 @@ struct acpi_system_info {
|
||||
u32 debug_layer;
|
||||
};
|
||||
|
||||
/* Table Event Types */
|
||||
|
||||
#define ACPI_TABLE_EVENT_LOAD 0x0
|
||||
#define ACPI_TABLE_EVENT_UNLOAD 0x1
|
||||
#define ACPI_NUM_TABLE_EVENTS 2
|
||||
|
||||
/*
|
||||
* Types specific to the OS service interfaces
|
||||
*/
|
||||
@@ -776,6 +778,11 @@ acpi_status(*acpi_exception_handler) (acpi_status aml_status,
|
||||
u16 opcode,
|
||||
u32 aml_offset, void *context);
|
||||
|
||||
/* Table Event handler (Load, load_table etc) and types */
|
||||
|
||||
typedef
|
||||
acpi_status(*acpi_tbl_handler) (u32 event, void *table, void *context);
|
||||
|
||||
/* Address Spaces (For Operation Regions) */
|
||||
|
||||
typedef
|
||||
@@ -990,6 +997,7 @@ struct acpi_vendor_uuid {
|
||||
* Structures used to describe device resources
|
||||
*/
|
||||
struct acpi_resource_irq {
|
||||
u8 descriptor_length;
|
||||
u8 triggering;
|
||||
u8 polarity;
|
||||
u8 sharable;
|
||||
@@ -1006,6 +1014,7 @@ struct acpi_resource_dma {
|
||||
};
|
||||
|
||||
struct acpi_resource_start_dependent {
|
||||
u8 descriptor_length;
|
||||
u8 compatibility_priority;
|
||||
u8 performance_robustness;
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -116,6 +116,8 @@ void acpi_ut_init_globals(void);
|
||||
|
||||
char *acpi_ut_get_mutex_name(u32 mutex_id);
|
||||
|
||||
const char *acpi_ut_get_notify_name(u32 notify_value);
|
||||
|
||||
#endif
|
||||
|
||||
char *acpi_ut_get_type_name(acpi_object_type type);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2007, R. Byron Moore
|
||||
* Copyright (C) 2000 - 2008, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -25,16 +25,6 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/pnp.h>
|
||||
|
||||
/*
|
||||
* Configuration registers (TODO: change by specification)
|
||||
*/
|
||||
|
||||
#define ISAPNP_CFG_ACTIVATE 0x30 /* byte */
|
||||
#define ISAPNP_CFG_MEM 0x40 /* 4 * dword */
|
||||
#define ISAPNP_CFG_PORT 0x60 /* 8 * word */
|
||||
#define ISAPNP_CFG_IRQ 0x70 /* 2 * word */
|
||||
#define ISAPNP_CFG_DMA 0x74 /* 2 * byte */
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
+107
-95
@@ -11,59 +11,122 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
#define PNP_MAX_PORT 40
|
||||
#define PNP_MAX_MEM 24
|
||||
#define PNP_MAX_IRQ 2
|
||||
#define PNP_MAX_DMA 2
|
||||
#define PNP_NAME_LEN 50
|
||||
|
||||
struct pnp_protocol;
|
||||
struct pnp_dev;
|
||||
struct pnp_resource_table;
|
||||
|
||||
/*
|
||||
* Resource Management
|
||||
*/
|
||||
struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);
|
||||
|
||||
/* Use these instead of directly reading pnp_dev to get resource information */
|
||||
#define pnp_port_start(dev,bar) ((dev)->res.port_resource[(bar)].start)
|
||||
#define pnp_port_end(dev,bar) ((dev)->res.port_resource[(bar)].end)
|
||||
#define pnp_port_flags(dev,bar) ((dev)->res.port_resource[(bar)].flags)
|
||||
#define pnp_port_valid(dev,bar) \
|
||||
((pnp_port_flags((dev),(bar)) & (IORESOURCE_IO | IORESOURCE_UNSET)) \
|
||||
== IORESOURCE_IO)
|
||||
#define pnp_port_len(dev,bar) \
|
||||
((pnp_port_start((dev),(bar)) == 0 && \
|
||||
pnp_port_end((dev),(bar)) == \
|
||||
pnp_port_start((dev),(bar))) ? 0 : \
|
||||
\
|
||||
(pnp_port_end((dev),(bar)) - \
|
||||
pnp_port_start((dev),(bar)) + 1))
|
||||
static inline int pnp_resource_valid(struct resource *res)
|
||||
{
|
||||
if (res && !(res->flags & IORESOURCE_UNSET))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define pnp_mem_start(dev,bar) ((dev)->res.mem_resource[(bar)].start)
|
||||
#define pnp_mem_end(dev,bar) ((dev)->res.mem_resource[(bar)].end)
|
||||
#define pnp_mem_flags(dev,bar) ((dev)->res.mem_resource[(bar)].flags)
|
||||
#define pnp_mem_valid(dev,bar) \
|
||||
((pnp_mem_flags((dev),(bar)) & (IORESOURCE_MEM | IORESOURCE_UNSET)) \
|
||||
== IORESOURCE_MEM)
|
||||
#define pnp_mem_len(dev,bar) \
|
||||
((pnp_mem_start((dev),(bar)) == 0 && \
|
||||
pnp_mem_end((dev),(bar)) == \
|
||||
pnp_mem_start((dev),(bar))) ? 0 : \
|
||||
\
|
||||
(pnp_mem_end((dev),(bar)) - \
|
||||
pnp_mem_start((dev),(bar)) + 1))
|
||||
static inline resource_size_t pnp_resource_len(struct resource *res)
|
||||
{
|
||||
if (res->start == 0 && res->end == 0)
|
||||
return 0;
|
||||
return res->end - res->start + 1;
|
||||
}
|
||||
|
||||
#define pnp_irq(dev,bar) ((dev)->res.irq_resource[(bar)].start)
|
||||
#define pnp_irq_flags(dev,bar) ((dev)->res.irq_resource[(bar)].flags)
|
||||
#define pnp_irq_valid(dev,bar) \
|
||||
((pnp_irq_flags((dev),(bar)) & (IORESOURCE_IRQ | IORESOURCE_UNSET)) \
|
||||
== IORESOURCE_IRQ)
|
||||
|
||||
#define pnp_dma(dev,bar) ((dev)->res.dma_resource[(bar)].start)
|
||||
#define pnp_dma_flags(dev,bar) ((dev)->res.dma_resource[(bar)].flags)
|
||||
#define pnp_dma_valid(dev,bar) \
|
||||
((pnp_dma_flags((dev),(bar)) & (IORESOURCE_DMA | IORESOURCE_UNSET)) \
|
||||
== IORESOURCE_DMA)
|
||||
static inline resource_size_t pnp_port_start(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IO, bar)->start;
|
||||
}
|
||||
|
||||
static inline resource_size_t pnp_port_end(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IO, bar)->end;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_port_flags(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IO, bar)->flags;
|
||||
}
|
||||
|
||||
static inline int pnp_port_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_IO, bar));
|
||||
}
|
||||
|
||||
static inline resource_size_t pnp_port_len(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_resource_len(pnp_get_resource(dev, IORESOURCE_IO, bar));
|
||||
}
|
||||
|
||||
|
||||
static inline resource_size_t pnp_mem_start(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_MEM, bar)->start;
|
||||
}
|
||||
|
||||
static inline resource_size_t pnp_mem_end(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_MEM, bar)->end;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_mem_flags(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_MEM, bar)->flags;
|
||||
}
|
||||
|
||||
static inline int pnp_mem_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_MEM, bar));
|
||||
}
|
||||
|
||||
static inline resource_size_t pnp_mem_len(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_resource_len(pnp_get_resource(dev, IORESOURCE_MEM, bar));
|
||||
}
|
||||
|
||||
|
||||
static inline resource_size_t pnp_irq(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IRQ, bar)->start;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_irq_flags(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IRQ, bar)->flags;
|
||||
}
|
||||
|
||||
static inline int pnp_irq_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_IRQ, bar));
|
||||
}
|
||||
|
||||
|
||||
static inline resource_size_t pnp_dma(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_DMA, bar)->start;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_dma_flags(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_DMA, bar)->flags;
|
||||
}
|
||||
|
||||
static inline int pnp_dma_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_DMA, bar));
|
||||
}
|
||||
|
||||
|
||||
#define PNP_PORT_FLAG_16BITADDR (1<<0)
|
||||
#define PNP_PORT_FLAG_FIXED (1<<1)
|
||||
@@ -116,13 +179,6 @@ struct pnp_option {
|
||||
struct pnp_option *next; /* used to chain dependent resources */
|
||||
};
|
||||
|
||||
struct pnp_resource_table {
|
||||
struct resource port_resource[PNP_MAX_PORT];
|
||||
struct resource mem_resource[PNP_MAX_MEM];
|
||||
struct resource dma_resource[PNP_MAX_DMA];
|
||||
struct resource irq_resource[PNP_MAX_IRQ];
|
||||
};
|
||||
|
||||
/*
|
||||
* Device Management
|
||||
*/
|
||||
@@ -192,10 +248,9 @@ struct pnp_dev {
|
||||
int capabilities;
|
||||
struct pnp_option *independent;
|
||||
struct pnp_option *dependent;
|
||||
struct pnp_resource_table res;
|
||||
struct pnp_resource_table *res;
|
||||
|
||||
char name[PNP_NAME_LEN]; /* contains a human-readable name */
|
||||
unsigned short regs; /* ISAPnP: supported registers */
|
||||
int flags; /* used by protocols */
|
||||
struct proc_dir_entry *procent; /* device entry in /proc/bus/isapnp */
|
||||
void *data;
|
||||
@@ -326,8 +381,8 @@ struct pnp_protocol {
|
||||
char *name;
|
||||
|
||||
/* resource control functions */
|
||||
int (*get) (struct pnp_dev *dev, struct pnp_resource_table *res);
|
||||
int (*set) (struct pnp_dev *dev, struct pnp_resource_table *res);
|
||||
int (*get) (struct pnp_dev *dev);
|
||||
int (*set) (struct pnp_dev *dev);
|
||||
int (*disable) (struct pnp_dev *dev);
|
||||
|
||||
/* protocol specific suspend/resume */
|
||||
@@ -356,20 +411,12 @@ extern struct bus_type pnp_bus_type;
|
||||
#if defined(CONFIG_PNP)
|
||||
|
||||
/* device management */
|
||||
int pnp_register_protocol(struct pnp_protocol *protocol);
|
||||
void pnp_unregister_protocol(struct pnp_protocol *protocol);
|
||||
int pnp_add_device(struct pnp_dev *dev);
|
||||
int pnp_device_attach(struct pnp_dev *pnp_dev);
|
||||
void pnp_device_detach(struct pnp_dev *pnp_dev);
|
||||
extern struct list_head pnp_global;
|
||||
extern int pnp_platform_devices;
|
||||
|
||||
/* multidevice card support */
|
||||
int pnp_add_card(struct pnp_card *card);
|
||||
void pnp_remove_card(struct pnp_card *card);
|
||||
int pnp_add_card_device(struct pnp_card *card, struct pnp_dev *dev);
|
||||
void pnp_remove_card_device(struct pnp_dev *dev);
|
||||
int pnp_add_card_id(struct pnp_id *id, struct pnp_card *card);
|
||||
struct pnp_dev *pnp_request_card_device(struct pnp_card_link *clink,
|
||||
const char *id, struct pnp_dev *from);
|
||||
void pnp_release_card_device(struct pnp_dev *dev);
|
||||
@@ -378,77 +425,42 @@ void pnp_unregister_card_driver(struct pnp_card_driver *drv);
|
||||
extern struct list_head pnp_cards;
|
||||
|
||||
/* resource management */
|
||||
struct pnp_option *pnp_register_independent_option(struct pnp_dev *dev);
|
||||
struct pnp_option *pnp_register_dependent_option(struct pnp_dev *dev,
|
||||
int priority);
|
||||
int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data);
|
||||
int pnp_register_dma_resource(struct pnp_option *option, struct pnp_dma *data);
|
||||
int pnp_register_port_resource(struct pnp_option *option,
|
||||
struct pnp_port *data);
|
||||
int pnp_register_mem_resource(struct pnp_option *option, struct pnp_mem *data);
|
||||
void pnp_init_resource_table(struct pnp_resource_table *table);
|
||||
int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res,
|
||||
int mode);
|
||||
int pnp_auto_config_dev(struct pnp_dev *dev);
|
||||
int pnp_validate_config(struct pnp_dev *dev);
|
||||
int pnp_start_dev(struct pnp_dev *dev);
|
||||
int pnp_stop_dev(struct pnp_dev *dev);
|
||||
int pnp_activate_dev(struct pnp_dev *dev);
|
||||
int pnp_disable_dev(struct pnp_dev *dev);
|
||||
void pnp_resource_change(struct resource *resource, resource_size_t start,
|
||||
resource_size_t size);
|
||||
|
||||
/* protocol helpers */
|
||||
int pnp_is_active(struct pnp_dev *dev);
|
||||
int compare_pnp_id(struct pnp_id *pos, const char *id);
|
||||
int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev);
|
||||
int pnp_register_driver(struct pnp_driver *drv);
|
||||
void pnp_unregister_driver(struct pnp_driver *drv);
|
||||
|
||||
#else
|
||||
|
||||
/* device management */
|
||||
static inline int pnp_register_protocol(struct pnp_protocol *protocol) { return -ENODEV; }
|
||||
static inline void pnp_unregister_protocol(struct pnp_protocol *protocol) { }
|
||||
static inline int pnp_init_device(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_add_device(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_device_attach(struct pnp_dev *pnp_dev) { return -ENODEV; }
|
||||
static inline void pnp_device_detach(struct pnp_dev *pnp_dev) { }
|
||||
|
||||
#define pnp_platform_devices 0
|
||||
|
||||
/* multidevice card support */
|
||||
static inline int pnp_add_card(struct pnp_card *card) { return -ENODEV; }
|
||||
static inline void pnp_remove_card(struct pnp_card *card) { }
|
||||
static inline int pnp_add_card_device(struct pnp_card *card, struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline void pnp_remove_card_device(struct pnp_dev *dev) { }
|
||||
static inline int pnp_add_card_id(struct pnp_id *id, struct pnp_card *card) { return -ENODEV; }
|
||||
static inline struct pnp_dev *pnp_request_card_device(struct pnp_card_link *clink, const char *id, struct pnp_dev *from) { return NULL; }
|
||||
static inline void pnp_release_card_device(struct pnp_dev *dev) { }
|
||||
static inline int pnp_register_card_driver(struct pnp_card_driver *drv) { return -ENODEV; }
|
||||
static inline void pnp_unregister_card_driver(struct pnp_card_driver *drv) { }
|
||||
|
||||
/* resource management */
|
||||
static inline struct pnp_option *pnp_register_independent_option(struct pnp_dev *dev) { return NULL; }
|
||||
static inline struct pnp_option *pnp_register_dependent_option(struct pnp_dev *dev, int priority) { return NULL; }
|
||||
static inline int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data) { return -ENODEV; }
|
||||
static inline int pnp_register_dma_resource(struct pnp_option *option, struct pnp_dma *data) { return -ENODEV; }
|
||||
static inline int pnp_register_port_resource(struct pnp_option *option, struct pnp_port *data) { return -ENODEV; }
|
||||
static inline int pnp_register_mem_resource(struct pnp_option *option, struct pnp_mem *data) { return -ENODEV; }
|
||||
static inline void pnp_init_resource_table(struct pnp_resource_table *table) { }
|
||||
static inline int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res, int mode) { return -ENODEV; }
|
||||
static inline int pnp_auto_config_dev(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_validate_config(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_start_dev(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_stop_dev(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_activate_dev(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_disable_dev(struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline void pnp_resource_change(struct resource *resource, resource_size_t start, resource_size_t size) { }
|
||||
|
||||
/* protocol helpers */
|
||||
static inline int pnp_is_active(struct pnp_dev *dev) { return 0; }
|
||||
static inline int compare_pnp_id(struct pnp_id *pos, const char *id) { return -ENODEV; }
|
||||
static inline int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev) { return -ENODEV; }
|
||||
static inline int pnp_register_driver(struct pnp_driver *drv) { return -ENODEV; }
|
||||
static inline void pnp_unregister_driver(struct pnp_driver *drv) { }
|
||||
|
||||
|
||||
@@ -1,151 +0,0 @@
|
||||
/*
|
||||
* Include file for the interface to a PnP BIOS
|
||||
*
|
||||
* Original BIOS code (C) 1998 Christian Schmidt (chr.schmidt@tu-bs.de)
|
||||
* PnP handler parts (c) 1998 Tom Lees <tom@lpsg.demon.co.uk>
|
||||
* Minor reorganizations by David Hinds <dahinds@users.sourceforge.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2, or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_PNPBIOS_H
|
||||
#define _LINUX_PNPBIOS_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/pnp.h>
|
||||
|
||||
/*
|
||||
* Return codes
|
||||
*/
|
||||
#define PNP_SUCCESS 0x00
|
||||
#define PNP_NOT_SET_STATICALLY 0x7f
|
||||
#define PNP_UNKNOWN_FUNCTION 0x81
|
||||
#define PNP_FUNCTION_NOT_SUPPORTED 0x82
|
||||
#define PNP_INVALID_HANDLE 0x83
|
||||
#define PNP_BAD_PARAMETER 0x84
|
||||
#define PNP_SET_FAILED 0x85
|
||||
#define PNP_EVENTS_NOT_PENDING 0x86
|
||||
#define PNP_SYSTEM_NOT_DOCKED 0x87
|
||||
#define PNP_NO_ISA_PNP_CARDS 0x88
|
||||
#define PNP_UNABLE_TO_DETERMINE_DOCK_CAPABILITIES 0x89
|
||||
#define PNP_CONFIG_CHANGE_FAILED_NO_BATTERY 0x8a
|
||||
#define PNP_CONFIG_CHANGE_FAILED_RESOURCE_CONFLICT 0x8b
|
||||
#define PNP_BUFFER_TOO_SMALL 0x8c
|
||||
#define PNP_USE_ESCD_SUPPORT 0x8d
|
||||
#define PNP_MESSAGE_NOT_SUPPORTED 0x8e
|
||||
#define PNP_HARDWARE_ERROR 0x8f
|
||||
|
||||
#define ESCD_SUCCESS 0x00
|
||||
#define ESCD_IO_ERROR_READING 0x55
|
||||
#define ESCD_INVALID 0x56
|
||||
#define ESCD_BUFFER_TOO_SMALL 0x59
|
||||
#define ESCD_NVRAM_TOO_SMALL 0x5a
|
||||
#define ESCD_FUNCTION_NOT_SUPPORTED 0x81
|
||||
|
||||
/*
|
||||
* Events that can be received by "get event"
|
||||
*/
|
||||
#define PNPEV_ABOUT_TO_CHANGE_CONFIG 0x0001
|
||||
#define PNPEV_DOCK_CHANGED 0x0002
|
||||
#define PNPEV_SYSTEM_DEVICE_CHANGED 0x0003
|
||||
#define PNPEV_CONFIG_CHANGED_FAILED 0x0004
|
||||
#define PNPEV_UNKNOWN_SYSTEM_EVENT 0xffff
|
||||
/* 0x8000 through 0xfffe are OEM defined */
|
||||
|
||||
/*
|
||||
* Messages that should be sent through "send message"
|
||||
*/
|
||||
#define PNPMSG_OK 0x00
|
||||
#define PNPMSG_ABORT 0x01
|
||||
#define PNPMSG_UNDOCK_DEFAULT_ACTION 0x40
|
||||
#define PNPMSG_POWER_OFF 0x41
|
||||
#define PNPMSG_PNP_OS_ACTIVE 0x42
|
||||
#define PNPMSG_PNP_OS_INACTIVE 0x43
|
||||
|
||||
/*
|
||||
* Plug and Play BIOS flags
|
||||
*/
|
||||
#define PNPBIOS_NO_DISABLE 0x0001
|
||||
#define PNPBIOS_NO_CONFIG 0x0002
|
||||
#define PNPBIOS_OUTPUT 0x0004
|
||||
#define PNPBIOS_INPUT 0x0008
|
||||
#define PNPBIOS_BOOTABLE 0x0010
|
||||
#define PNPBIOS_DOCK 0x0020
|
||||
#define PNPBIOS_REMOVABLE 0x0040
|
||||
#define pnpbios_is_static(x) (((x)->flags & 0x0100) == 0x0000)
|
||||
#define pnpbios_is_dynamic(x) ((x)->flags & 0x0080)
|
||||
|
||||
/*
|
||||
* Function Parameters
|
||||
*/
|
||||
#define PNPMODE_STATIC 1
|
||||
#define PNPMODE_DYNAMIC 0
|
||||
|
||||
/* 0x8000 through 0xffff are OEM defined */
|
||||
|
||||
#pragma pack(1)
|
||||
struct pnp_dev_node_info {
|
||||
__u16 no_nodes;
|
||||
__u16 max_node_size;
|
||||
};
|
||||
struct pnp_docking_station_info {
|
||||
__u32 location_id;
|
||||
__u32 serial;
|
||||
__u16 capabilities;
|
||||
};
|
||||
struct pnp_isa_config_struc {
|
||||
__u8 revision;
|
||||
__u8 no_csns;
|
||||
__u16 isa_rd_data_port;
|
||||
__u16 reserved;
|
||||
};
|
||||
struct escd_info_struc {
|
||||
__u16 min_escd_write_size;
|
||||
__u16 escd_size;
|
||||
__u32 nv_storage_base;
|
||||
};
|
||||
struct pnp_bios_node {
|
||||
__u16 size;
|
||||
__u8 handle;
|
||||
__u32 eisa_id;
|
||||
__u8 type_code[3];
|
||||
__u16 flags;
|
||||
__u8 data[0];
|
||||
};
|
||||
#pragma pack()
|
||||
|
||||
#ifdef CONFIG_PNPBIOS
|
||||
|
||||
/* non-exported */
|
||||
extern struct pnp_dev_node_info node_info;
|
||||
|
||||
extern int pnp_bios_dev_node_info(struct pnp_dev_node_info *data);
|
||||
extern int pnp_bios_get_dev_node(u8 *nodenum, char config,
|
||||
struct pnp_bios_node *data);
|
||||
extern int pnp_bios_set_dev_node(u8 nodenum, char config,
|
||||
struct pnp_bios_node *data);
|
||||
extern int pnp_bios_get_stat_res(char *info);
|
||||
extern int pnp_bios_isapnp_config(struct pnp_isa_config_struc *data);
|
||||
extern int pnp_bios_escd_info(struct escd_info_struc *data);
|
||||
extern int pnp_bios_read_escd(char *data, u32 nvram_base);
|
||||
extern int pnp_bios_dock_station_info(struct pnp_docking_station_info *data);
|
||||
|
||||
#endif /* CONFIG_PNPBIOS */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_PNPBIOS_H */
|
||||
+25
-14
@@ -41,6 +41,7 @@ struct thermal_zone_device_ops {
|
||||
int (*set_mode) (struct thermal_zone_device *, const char *);
|
||||
int (*get_trip_type) (struct thermal_zone_device *, int, char *);
|
||||
int (*get_trip_temp) (struct thermal_zone_device *, int, char *);
|
||||
int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *);
|
||||
};
|
||||
|
||||
struct thermal_cooling_device_ops {
|
||||
@@ -65,6 +66,23 @@ struct thermal_cooling_device {
|
||||
((long)t-2732+5)/10 : ((long)t-2732-5)/10)
|
||||
#define CELSIUS_TO_KELVIN(t) ((t)*10+2732)
|
||||
|
||||
#if defined(CONFIG_HWMON) || \
|
||||
(defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE))
|
||||
/* thermal zone devices with the same type share one hwmon device */
|
||||
struct thermal_hwmon_device {
|
||||
char type[THERMAL_NAME_LENGTH];
|
||||
struct device *device;
|
||||
int count;
|
||||
struct list_head tz_list;
|
||||
struct list_head node;
|
||||
};
|
||||
|
||||
struct thermal_hwmon_attr {
|
||||
struct device_attribute attr;
|
||||
char name[16];
|
||||
};
|
||||
#endif
|
||||
|
||||
struct thermal_zone_device {
|
||||
int id;
|
||||
char type[THERMAL_NAME_LENGTH];
|
||||
@@ -76,6 +94,13 @@ struct thermal_zone_device {
|
||||
struct idr idr;
|
||||
struct mutex lock; /* protect cooling devices list */
|
||||
struct list_head node;
|
||||
#if defined(CONFIG_HWMON) || \
|
||||
(defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE))
|
||||
struct list_head hwmon_node;
|
||||
struct thermal_hwmon_device *hwmon;
|
||||
struct thermal_hwmon_attr temp_input; /* hwmon sys attr */
|
||||
struct thermal_hwmon_attr temp_crit; /* hwmon sys attr */
|
||||
#endif
|
||||
};
|
||||
|
||||
struct thermal_zone_device *thermal_zone_device_register(char *, int, void *,
|
||||
@@ -88,24 +113,10 @@ int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int,
|
||||
struct thermal_cooling_device *);
|
||||
int thermal_zone_unbind_cooling_device(struct thermal_zone_device *, int,
|
||||
struct thermal_cooling_device *);
|
||||
|
||||
#ifdef CONFIG_THERMAL
|
||||
struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
|
||||
struct
|
||||
thermal_cooling_device_ops
|
||||
*);
|
||||
void thermal_cooling_device_unregister(struct thermal_cooling_device *);
|
||||
#else
|
||||
static inline struct thermal_cooling_device
|
||||
*thermal_cooling_device_register(char *c, void *v,
|
||||
struct thermal_cooling_device_ops *t)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
static inline
|
||||
void thermal_cooling_device_unregister(struct thermal_cooling_device *t)
|
||||
{
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* __THERMAL_H__ */
|
||||
|
||||
Reference in New Issue
Block a user