Merge branch 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6
* 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6: (87 commits) Fix FADT parsing Add the ability to reset the machine using the RESET_REG in ACPI's FADT table. ACPI: use dev_printk when possible PNPACPI: add support for HP vendor-specific CCSR descriptors PNP: avoid legacy IDE IRQs PNP: convert resource options to single linked list ISAPNP: handle independent options following dependent ones PNP: remove extra 0x100 bit from option priority PNP: support optional IRQ resources PNP: rename pnp_register_*_resource() local variables PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR PNP: centralize resource option allocations PNP: remove redundant pnp_can_configure() check PNP: make resource assignment functions return 0 (success) or -EBUSY (failure) PNP: in debug resource dump, make empty list obvious PNP: improve resource assignment debug PNP: increase I/O port & memory option address sizes PNP: introduce pnp_irq_mask_t typedef PNP: make resource option structures private to PNP subsystem PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM ...
This commit is contained in:
@@ -63,7 +63,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20080321
|
||||
#define ACPI_CA_VERSION 0x20080609
|
||||
|
||||
/*
|
||||
* OS name, used for the _OS object. The _OS object is essentially obsolete,
|
||||
|
||||
@@ -162,6 +162,7 @@ extern struct acpi_dmtable_info acpi_dm_table_info_dmar_hdr[];
|
||||
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_dmar2[];
|
||||
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[];
|
||||
|
||||
@@ -221,7 +221,7 @@ acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state);
|
||||
* dsinit
|
||||
*/
|
||||
acpi_status
|
||||
acpi_ds_initialize_objects(acpi_native_uint table_index,
|
||||
acpi_ds_initialize_objects(u32 table_index,
|
||||
struct acpi_namespace_node *start_node);
|
||||
|
||||
/*
|
||||
|
||||
@@ -108,8 +108,9 @@
|
||||
#define AE_BAD_HEX_CONSTANT (acpi_status) (0x0007 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_OCTAL_CONSTANT (acpi_status) (0x0008 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_DECIMAL_CONSTANT (acpi_status) (0x0009 | AE_CODE_PROGRAMMER)
|
||||
#define AE_MISSING_ARGUMENTS (acpi_status) (0x000A | AE_CODE_PROGRAMMER)
|
||||
|
||||
#define AE_CODE_PGM_MAX 0x0009
|
||||
#define AE_CODE_PGM_MAX 0x000A
|
||||
|
||||
/*
|
||||
* Acpi table exceptions
|
||||
@@ -225,6 +226,7 @@ char const *acpi_gbl_exception_names_env[] = {
|
||||
};
|
||||
|
||||
char const *acpi_gbl_exception_names_pgm[] = {
|
||||
NULL,
|
||||
"AE_BAD_PARAMETER",
|
||||
"AE_BAD_CHARACTER",
|
||||
"AE_BAD_PATHNAME",
|
||||
@@ -233,10 +235,12 @@ char const *acpi_gbl_exception_names_pgm[] = {
|
||||
"AE_ALIGNMENT",
|
||||
"AE_BAD_HEX_CONSTANT",
|
||||
"AE_BAD_OCTAL_CONSTANT",
|
||||
"AE_BAD_DECIMAL_CONSTANT"
|
||||
"AE_BAD_DECIMAL_CONSTANT",
|
||||
"AE_MISSING_ARGUMENTS"
|
||||
};
|
||||
|
||||
char const *acpi_gbl_exception_names_tbl[] = {
|
||||
NULL,
|
||||
"AE_BAD_SIGNATURE",
|
||||
"AE_BAD_HEADER",
|
||||
"AE_BAD_CHECKSUM",
|
||||
@@ -246,6 +250,7 @@ char const *acpi_gbl_exception_names_tbl[] = {
|
||||
};
|
||||
|
||||
char const *acpi_gbl_exception_names_aml[] = {
|
||||
NULL,
|
||||
"AE_AML_ERROR",
|
||||
"AE_AML_PARSE",
|
||||
"AE_AML_BAD_OPCODE",
|
||||
@@ -283,6 +288,7 @@ char const *acpi_gbl_exception_names_aml[] = {
|
||||
};
|
||||
|
||||
char const *acpi_gbl_exception_names_ctrl[] = {
|
||||
NULL,
|
||||
"AE_CTRL_RETURN_VALUE",
|
||||
"AE_CTRL_PENDING",
|
||||
"AE_CTRL_TERMINATE",
|
||||
|
||||
@@ -140,7 +140,7 @@ ACPI_EXTERN u32 acpi_gbl_trace_flags;
|
||||
*/
|
||||
ACPI_EXTERN struct acpi_internal_rsdt acpi_gbl_root_table_list;
|
||||
ACPI_EXTERN struct acpi_table_fadt acpi_gbl_FADT;
|
||||
extern acpi_native_uint acpi_gbl_permanent_mmap;
|
||||
extern u8 acpi_gbl_permanent_mmap;
|
||||
|
||||
/* These addresses are calculated from FADT address values */
|
||||
|
||||
|
||||
@@ -87,6 +87,8 @@ acpi_status acpi_hw_clear_acpi_status(void);
|
||||
/*
|
||||
* hwgpe - GPE support
|
||||
*/
|
||||
acpi_status acpi_hw_low_disable_gpe(struct acpi_gpe_event_info *gpe_event_info);
|
||||
|
||||
acpi_status
|
||||
acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info);
|
||||
|
||||
@@ -100,11 +102,9 @@ acpi_status
|
||||
acpi_hw_clear_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
|
||||
struct acpi_gpe_block_info *gpe_block);
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status
|
||||
acpi_hw_get_gpe_status(struct acpi_gpe_event_info *gpe_event_info,
|
||||
acpi_event_status * event_status);
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
acpi_status acpi_hw_disable_all_gpes(void);
|
||||
|
||||
|
||||
@@ -366,10 +366,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth);
|
||||
|
||||
void
|
||||
acpi_ex_dump_operands(union acpi_operand_object **operands,
|
||||
acpi_interpreter_mode interpreter_mode,
|
||||
char *ident,
|
||||
u32 num_levels,
|
||||
char *note, char *module_name, u32 line_number);
|
||||
const char *opcode_name, u32 num_opcodes);
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
void
|
||||
|
||||
@@ -98,8 +98,8 @@ union acpi_parse_object;
|
||||
|
||||
static char *acpi_gbl_mutex_names[ACPI_NUM_MUTEX] = {
|
||||
"ACPI_MTX_Interpreter",
|
||||
"ACPI_MTX_Tables",
|
||||
"ACPI_MTX_Namespace",
|
||||
"ACPI_MTX_Tables",
|
||||
"ACPI_MTX_Events",
|
||||
"ACPI_MTX_Caches",
|
||||
"ACPI_MTX_Memory",
|
||||
@@ -282,8 +282,8 @@ struct acpi_predefined_names {
|
||||
/* Info structure used to convert external<->internal namestrings */
|
||||
|
||||
struct acpi_namestring_info {
|
||||
char *external_name;
|
||||
char *next_external_char;
|
||||
const char *external_name;
|
||||
const char *next_external_char;
|
||||
char *internal_name;
|
||||
u32 length;
|
||||
u32 num_segments;
|
||||
|
||||
@@ -80,12 +80,12 @@
|
||||
*/
|
||||
#define ACPI_CAST_PTR(t, p) ((t *) (acpi_uintptr_t) (p))
|
||||
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (acpi_uintptr_t) (p))
|
||||
#define ACPI_ADD_PTR(t,a,b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8,(a)) + (acpi_native_uint)(b)))
|
||||
#define ACPI_PTR_DIFF(a,b) (acpi_native_uint) (ACPI_CAST_PTR (u8,(a)) - ACPI_CAST_PTR (u8,(b)))
|
||||
#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8,(a)) + (acpi_size)(b)))
|
||||
#define ACPI_PTR_DIFF(a, b) (acpi_size) (ACPI_CAST_PTR (u8,(a)) - ACPI_CAST_PTR (u8,(b)))
|
||||
|
||||
/* Pointer/Integer type conversions */
|
||||
|
||||
#define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void,(void *) NULL,(acpi_native_uint) i)
|
||||
#define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void, (void *) NULL, (acpi_size) i)
|
||||
#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p,(void *) NULL)
|
||||
#define ACPI_OFFSET(d,f) (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
|
||||
#define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i)
|
||||
@@ -296,22 +296,22 @@ struct acpi_integer_overlay {
|
||||
/*
|
||||
* Rounding macros (Power of two boundaries only)
|
||||
*/
|
||||
#define ACPI_ROUND_DOWN(value,boundary) (((acpi_native_uint)(value)) & \
|
||||
(~(((acpi_native_uint) boundary)-1)))
|
||||
#define ACPI_ROUND_DOWN(value, boundary) (((acpi_size)(value)) & \
|
||||
(~(((acpi_size) boundary)-1)))
|
||||
|
||||
#define ACPI_ROUND_UP(value,boundary) ((((acpi_native_uint)(value)) + \
|
||||
(((acpi_native_uint) boundary)-1)) & \
|
||||
(~(((acpi_native_uint) boundary)-1)))
|
||||
#define ACPI_ROUND_UP(value, boundary) ((((acpi_size)(value)) + \
|
||||
(((acpi_size) boundary)-1)) & \
|
||||
(~(((acpi_size) boundary)-1)))
|
||||
|
||||
/* Note: sizeof(acpi_native_uint) evaluates to either 2, 4, or 8 */
|
||||
/* Note: sizeof(acpi_size) evaluates to either 4 or 8 (32- vs 64-bit mode) */
|
||||
|
||||
#define ACPI_ROUND_DOWN_TO_32BIT(a) ACPI_ROUND_DOWN(a,4)
|
||||
#define ACPI_ROUND_DOWN_TO_64BIT(a) ACPI_ROUND_DOWN(a,8)
|
||||
#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a) ACPI_ROUND_DOWN(a,sizeof(acpi_native_uint))
|
||||
#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a) ACPI_ROUND_DOWN(a,sizeof(acpi_size))
|
||||
|
||||
#define ACPI_ROUND_UP_TO_32BIT(a) ACPI_ROUND_UP(a,4)
|
||||
#define ACPI_ROUND_UP_TO_64BIT(a) ACPI_ROUND_UP(a,8)
|
||||
#define ACPI_ROUND_UP_TO_NATIVE_WORD(a) ACPI_ROUND_UP(a,sizeof(acpi_native_uint))
|
||||
#define ACPI_ROUND_UP_TO_NATIVE_WORD(a) ACPI_ROUND_UP(a,sizeof(acpi_size))
|
||||
|
||||
#define ACPI_ROUND_BITS_UP_TO_BYTES(a) ACPI_DIV_8((a) + 7)
|
||||
#define ACPI_ROUND_BITS_DOWN_TO_BYTES(a) ACPI_DIV_8((a))
|
||||
@@ -322,7 +322,7 @@ struct acpi_integer_overlay {
|
||||
|
||||
#define ACPI_ROUND_UP_TO(value,boundary) (((value) + ((boundary)-1)) / (boundary))
|
||||
|
||||
#define ACPI_IS_MISALIGNED(value) (((acpi_native_uint)value) & (sizeof(acpi_native_uint)-1))
|
||||
#define ACPI_IS_MISALIGNED(value) (((acpi_size)value) & (sizeof(acpi_size)-1))
|
||||
|
||||
/*
|
||||
* Bitmask creation
|
||||
@@ -414,7 +414,7 @@ struct acpi_integer_overlay {
|
||||
* error messages. The __FILE__ macro is not very useful for this, because it
|
||||
* often includes the entire pathname to the module
|
||||
*/
|
||||
#define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_acpi_module_name = name;
|
||||
#define ACPI_MODULE_NAME(name) static const char ACPI_UNUSED_VAR _acpi_module_name[] = name;
|
||||
#else
|
||||
#define ACPI_MODULE_NAME(name)
|
||||
#endif
|
||||
@@ -467,19 +467,17 @@ struct acpi_integer_overlay {
|
||||
/*
|
||||
* If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header,
|
||||
* define it now. This is the case where there the compiler does not support
|
||||
* a __FUNCTION__ macro or equivalent. We save the function name on the
|
||||
* local stack.
|
||||
* a __FUNCTION__ macro or equivalent.
|
||||
*/
|
||||
#ifndef ACPI_GET_FUNCTION_NAME
|
||||
#define ACPI_GET_FUNCTION_NAME _acpi_function_name
|
||||
/*
|
||||
* The Name parameter should be the procedure name as a quoted string.
|
||||
* This is declared as a local string ("MyFunctionName") so that it can
|
||||
* be also used by the function exit macros below.
|
||||
* The function name is also used by the function exit macros below.
|
||||
* Note: (const char) is used to be compatible with the debug interfaces
|
||||
* and macros such as __FUNCTION__.
|
||||
*/
|
||||
#define ACPI_FUNCTION_NAME(name) const char *_acpi_function_name = #name;
|
||||
#define ACPI_FUNCTION_NAME(name) static const char _acpi_function_name[] = #name;
|
||||
|
||||
#else
|
||||
/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */
|
||||
@@ -599,7 +597,7 @@ struct acpi_integer_overlay {
|
||||
/* Stack and buffer dumping */
|
||||
|
||||
#define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a),0)
|
||||
#define ACPI_DUMP_OPERANDS(a,b,c,d,e) acpi_ex_dump_operands(a,b,c,d,e,_acpi_module_name,__LINE__)
|
||||
#define ACPI_DUMP_OPERANDS(a,b,c) acpi_ex_dump_operands(a,b,c)
|
||||
|
||||
#define ACPI_DUMP_ENTRY(a,b) acpi_ns_dump_entry (a,b)
|
||||
#define ACPI_DUMP_PATHNAME(a,b,c,d) acpi_ns_dump_pathname(a,b,c,d)
|
||||
@@ -635,7 +633,7 @@ struct acpi_integer_overlay {
|
||||
#define ACPI_FUNCTION_VALUE_EXIT(s) do { } while(0)
|
||||
#define ACPI_FUNCTION_ENTRY() do { } while(0)
|
||||
#define ACPI_DUMP_STACK_ENTRY(a) do { } while(0)
|
||||
#define ACPI_DUMP_OPERANDS(a,b,c,d,e) do { } while(0)
|
||||
#define ACPI_DUMP_OPERANDS(a,b,c) do { } while(0)
|
||||
#define ACPI_DUMP_ENTRY(a,b) do { } while(0)
|
||||
#define ACPI_DUMP_TABLES(a,b) do { } while(0)
|
||||
#define ACPI_DUMP_PATHNAME(a,b,c,d) do { } while(0)
|
||||
|
||||
@@ -86,8 +86,7 @@ acpi_status acpi_ns_initialize_devices(void);
|
||||
acpi_status acpi_ns_load_namespace(void);
|
||||
|
||||
acpi_status
|
||||
acpi_ns_load_table(acpi_native_uint table_index,
|
||||
struct acpi_namespace_node *node);
|
||||
acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node);
|
||||
|
||||
/*
|
||||
* nswalk - walk the namespace
|
||||
@@ -108,12 +107,11 @@ struct acpi_namespace_node *acpi_ns_get_next_node(acpi_object_type type, struct
|
||||
* nsparse - table parsing
|
||||
*/
|
||||
acpi_status
|
||||
acpi_ns_parse_table(acpi_native_uint table_index,
|
||||
struct acpi_namespace_node *start_node);
|
||||
acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node);
|
||||
|
||||
acpi_status
|
||||
acpi_ns_one_complete_parse(acpi_native_uint pass_number,
|
||||
acpi_native_uint table_index,
|
||||
acpi_ns_one_complete_parse(u32 pass_number,
|
||||
u32 table_index,
|
||||
struct acpi_namespace_node *start_node);
|
||||
|
||||
/*
|
||||
@@ -201,7 +199,7 @@ acpi_ns_pattern_match(struct acpi_namespace_node *obj_node, char *search_for);
|
||||
|
||||
acpi_status
|
||||
acpi_ns_get_node(struct acpi_namespace_node *prefix_node,
|
||||
char *external_pathname,
|
||||
const char *external_pathname,
|
||||
u32 flags, struct acpi_namespace_node **out_node);
|
||||
|
||||
acpi_size acpi_ns_get_pathname_length(struct acpi_namespace_node *node);
|
||||
@@ -265,28 +263,30 @@ acpi_object_type acpi_ns_get_type(struct acpi_namespace_node *node);
|
||||
u32 acpi_ns_local(acpi_object_type type);
|
||||
|
||||
void
|
||||
acpi_ns_report_error(char *module_name,
|
||||
acpi_ns_report_error(const char *module_name,
|
||||
u32 line_number,
|
||||
char *internal_name, acpi_status lookup_status);
|
||||
const char *internal_name, acpi_status lookup_status);
|
||||
|
||||
void
|
||||
acpi_ns_report_method_error(char *module_name,
|
||||
acpi_ns_report_method_error(const char *module_name,
|
||||
u32 line_number,
|
||||
char *message,
|
||||
const char *message,
|
||||
struct acpi_namespace_node *node,
|
||||
char *path, acpi_status lookup_status);
|
||||
const char *path, acpi_status lookup_status);
|
||||
|
||||
void acpi_ns_print_node_pathname(struct acpi_namespace_node *node, char *msg);
|
||||
void
|
||||
acpi_ns_print_node_pathname(struct acpi_namespace_node *node, const char *msg);
|
||||
|
||||
acpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info);
|
||||
|
||||
void acpi_ns_get_internal_name_length(struct acpi_namestring_info *info);
|
||||
|
||||
acpi_status acpi_ns_internalize_name(char *dotted_name, char **converted_name);
|
||||
acpi_status
|
||||
acpi_ns_internalize_name(const char *dotted_name, char **converted_name);
|
||||
|
||||
acpi_status
|
||||
acpi_ns_externalize_name(u32 internal_name_length,
|
||||
char *internal_name,
|
||||
const char *internal_name,
|
||||
u32 * converted_name_length, char **converted_name);
|
||||
|
||||
struct acpi_namespace_node *acpi_ns_map_handle_to_node(acpi_handle handle);
|
||||
|
||||
@@ -376,9 +376,9 @@ acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
|
||||
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
int acpi_pm_device_sleep_state(struct device *, int, int *);
|
||||
int acpi_pm_device_sleep_state(struct device *, int *);
|
||||
#else /* !CONFIG_PM_SLEEP */
|
||||
static inline int acpi_pm_device_sleep_state(struct device *d, int w, int *p)
|
||||
static inline int acpi_pm_device_sleep_state(struct device *d, int *p)
|
||||
{
|
||||
if (p)
|
||||
*p = ACPI_STATE_D0;
|
||||
|
||||
@@ -144,7 +144,7 @@ void acpi_os_release_mutex(acpi_mutex handle);
|
||||
void *acpi_os_allocate(acpi_size size);
|
||||
|
||||
void __iomem *acpi_os_map_memory(acpi_physical_address where,
|
||||
acpi_native_uint length);
|
||||
acpi_size length);
|
||||
|
||||
void acpi_os_unmap_memory(void __iomem * logical_address, acpi_size size);
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ void acpi_free(void *address);
|
||||
*/
|
||||
acpi_status acpi_reallocate_root_table(void);
|
||||
|
||||
acpi_status acpi_find_root_pointer(acpi_native_uint * rsdp_address);
|
||||
acpi_status acpi_find_root_pointer(acpi_size *rsdp_address);
|
||||
|
||||
acpi_status acpi_load_tables(void);
|
||||
|
||||
@@ -108,15 +108,15 @@ acpi_status acpi_unload_table_id(acpi_owner_id id);
|
||||
|
||||
acpi_status
|
||||
acpi_get_table_header(acpi_string signature,
|
||||
acpi_native_uint instance,
|
||||
u32 instance,
|
||||
struct acpi_table_header *out_table_header);
|
||||
|
||||
acpi_status
|
||||
acpi_get_table(acpi_string signature,
|
||||
acpi_native_uint instance, struct acpi_table_header **out_table);
|
||||
u32 instance, struct acpi_table_header **out_table);
|
||||
|
||||
acpi_status
|
||||
acpi_get_table_by_index(acpi_native_uint table_index,
|
||||
acpi_get_table_by_index(u32 table_index,
|
||||
struct acpi_table_header **out_table);
|
||||
|
||||
acpi_status
|
||||
@@ -248,9 +248,7 @@ acpi_status acpi_disable_event(u32 event, u32 flags);
|
||||
|
||||
acpi_status acpi_clear_event(u32 event);
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);
|
||||
|
||||
@@ -260,12 +258,10 @@ acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
|
||||
|
||||
acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
acpi_status
|
||||
acpi_get_gpe_status(acpi_handle gpe_device,
|
||||
u32 gpe_number,
|
||||
u32 flags, acpi_event_status * event_status);
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
acpi_status
|
||||
acpi_install_gpe_block(acpi_handle gpe_device,
|
||||
|
||||
@@ -108,7 +108,6 @@ struct acpi_walk_state {
|
||||
union acpi_operand_object **caller_return_desc;
|
||||
union acpi_generic_state *control_state; /* List of control states (nested IFs) */
|
||||
struct acpi_namespace_node *deferred_node; /* Used when executing deferred opcodes */
|
||||
struct acpi_gpe_event_info *gpe_event_info; /* Info for GPE (_Lxx/_Exx methods only */
|
||||
union acpi_operand_object *implicit_return_obj;
|
||||
struct acpi_namespace_node *method_call_node; /* Called method Node */
|
||||
union acpi_parse_object *method_call_op; /* method_call Op if running a method */
|
||||
@@ -143,7 +142,7 @@ struct acpi_init_walk_info {
|
||||
u16 package_init;
|
||||
u16 object_count;
|
||||
acpi_owner_id owner_id;
|
||||
acpi_native_uint table_index;
|
||||
u32 table_index;
|
||||
};
|
||||
|
||||
struct acpi_get_devices_info {
|
||||
@@ -189,17 +188,12 @@ struct acpi_evaluate_info {
|
||||
union acpi_operand_object **parameters;
|
||||
struct acpi_namespace_node *resolved_node;
|
||||
union acpi_operand_object *return_object;
|
||||
u8 param_count;
|
||||
u8 pass_number;
|
||||
u8 parameter_type;
|
||||
u8 return_object_type;
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
/* Types for parameter_type above */
|
||||
|
||||
#define ACPI_PARAM_ARGS 0
|
||||
#define ACPI_PARAM_GPE 1
|
||||
|
||||
/* Values for Flags above */
|
||||
|
||||
#define ACPI_IGNORE_RETURN_VALUE 1
|
||||
|
||||
@@ -49,7 +49,7 @@ acpi_status acpi_allocate_root_table(u32 initial_table_count);
|
||||
/*
|
||||
* tbfadt - FADT parse/convert/validate
|
||||
*/
|
||||
void acpi_tb_parse_fadt(acpi_native_uint table_index, u8 flags);
|
||||
void acpi_tb_parse_fadt(u32 table_index, u8 flags);
|
||||
|
||||
void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length);
|
||||
|
||||
@@ -58,8 +58,7 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length);
|
||||
*/
|
||||
acpi_status
|
||||
acpi_tb_find_table(char *signature,
|
||||
char *oem_id,
|
||||
char *oem_table_id, acpi_native_uint * table_index);
|
||||
char *oem_id, char *oem_table_id, u32 *table_index);
|
||||
|
||||
/*
|
||||
* tbinstal - Table removal and deletion
|
||||
@@ -69,30 +68,28 @@ acpi_status acpi_tb_resize_root_table_list(void);
|
||||
acpi_status acpi_tb_verify_table(struct acpi_table_desc *table_desc);
|
||||
|
||||
acpi_status
|
||||
acpi_tb_add_table(struct acpi_table_desc *table_desc,
|
||||
acpi_native_uint * table_index);
|
||||
acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index);
|
||||
|
||||
acpi_status
|
||||
acpi_tb_store_table(acpi_physical_address address,
|
||||
struct acpi_table_header *table,
|
||||
u32 length, u8 flags, acpi_native_uint * table_index);
|
||||
u32 length, u8 flags, u32 *table_index);
|
||||
|
||||
void acpi_tb_delete_table(struct acpi_table_desc *table_desc);
|
||||
|
||||
void acpi_tb_terminate(void);
|
||||
|
||||
void acpi_tb_delete_namespace_by_owner(acpi_native_uint table_index);
|
||||
void acpi_tb_delete_namespace_by_owner(u32 table_index);
|
||||
|
||||
acpi_status acpi_tb_allocate_owner_id(acpi_native_uint table_index);
|
||||
acpi_status acpi_tb_allocate_owner_id(u32 table_index);
|
||||
|
||||
acpi_status acpi_tb_release_owner_id(acpi_native_uint table_index);
|
||||
acpi_status acpi_tb_release_owner_id(u32 table_index);
|
||||
|
||||
acpi_status
|
||||
acpi_tb_get_owner_id(acpi_native_uint table_index, acpi_owner_id * owner_id);
|
||||
acpi_status acpi_tb_get_owner_id(u32 table_index, acpi_owner_id *owner_id);
|
||||
|
||||
u8 acpi_tb_is_table_loaded(acpi_native_uint table_index);
|
||||
u8 acpi_tb_is_table_loaded(u32 table_index);
|
||||
|
||||
void acpi_tb_set_table_loaded_flag(acpi_native_uint table_index, u8 is_loaded);
|
||||
void acpi_tb_set_table_loaded_flag(u32 table_index, u8 is_loaded);
|
||||
|
||||
/*
|
||||
* tbutils - table manager utilities
|
||||
@@ -103,14 +100,14 @@ void
|
||||
acpi_tb_print_table_header(acpi_physical_address address,
|
||||
struct acpi_table_header *header);
|
||||
|
||||
u8 acpi_tb_checksum(u8 * buffer, acpi_native_uint length);
|
||||
u8 acpi_tb_checksum(u8 *buffer, u32 length);
|
||||
|
||||
acpi_status
|
||||
acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length);
|
||||
|
||||
void
|
||||
acpi_tb_install_table(acpi_physical_address address,
|
||||
u8 flags, char *signature, acpi_native_uint table_index);
|
||||
u8 flags, char *signature, u32 table_index);
|
||||
|
||||
acpi_status
|
||||
acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags);
|
||||
|
||||
@@ -300,6 +300,7 @@ struct acpi_table_dbgp {
|
||||
/*******************************************************************************
|
||||
*
|
||||
* DMAR - DMA Remapping table
|
||||
* From "Intel Virtualization Technology for Directed I/O", Sept. 2007
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@@ -310,6 +311,10 @@ struct acpi_table_dmar {
|
||||
u8 reserved[10];
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_DMAR_INTR_REMAP (1)
|
||||
|
||||
/* DMAR subtable header */
|
||||
|
||||
struct acpi_dmar_header {
|
||||
@@ -382,6 +387,20 @@ struct acpi_dmar_reserved_memory {
|
||||
|
||||
#define ACPI_DMAR_ALLOW_ALL (1)
|
||||
|
||||
|
||||
/* 2: Root Port ATS Capability Reporting Structure */
|
||||
|
||||
struct acpi_dmar_atsr {
|
||||
struct acpi_dmar_header header;
|
||||
u8 flags;
|
||||
u8 reserved;
|
||||
u16 segment;
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_DMAR_ALL_PORTS (1)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* ECDT - Embedded Controller Boot Resources Table
|
||||
@@ -1156,9 +1175,9 @@ struct acpi_srat_mem_affinity {
|
||||
u16 reserved; /* Reserved, must be zero */
|
||||
u64 base_address;
|
||||
u64 length;
|
||||
u32 memory_type; /* See acpi_address_range_id */
|
||||
u32 reserved1;
|
||||
u32 flags;
|
||||
u64 reserved1; /* Reserved, must be zero */
|
||||
u64 reserved2; /* Reserved, must be zero */
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
@@ -110,10 +110,10 @@
|
||||
* usually used for memory allocation, efficient loop counters, and array
|
||||
* indexes. The types are similar to the size_t type in the C library and are
|
||||
* required because there is no C type that consistently represents the native
|
||||
* data width.
|
||||
* data width. ACPI_SIZE is needed because there is no guarantee that a
|
||||
* kernel-level C library is present.
|
||||
*
|
||||
* ACPI_SIZE 16/32/64-bit unsigned value
|
||||
* ACPI_NATIVE_UINT 16/32/64-bit unsigned value
|
||||
* ACPI_NATIVE_INT 16/32/64-bit signed value
|
||||
*
|
||||
*/
|
||||
@@ -147,9 +147,9 @@ typedef int INT32;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
typedef u64 acpi_native_uint;
|
||||
typedef s64 acpi_native_int;
|
||||
|
||||
typedef u64 acpi_size;
|
||||
typedef u64 acpi_io_address;
|
||||
typedef u64 acpi_physical_address;
|
||||
|
||||
@@ -186,9 +186,9 @@ typedef int INT32;
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
typedef u32 acpi_native_uint;
|
||||
typedef s32 acpi_native_int;
|
||||
|
||||
typedef u32 acpi_size;
|
||||
typedef u32 acpi_io_address;
|
||||
typedef u32 acpi_physical_address;
|
||||
|
||||
@@ -202,10 +202,6 @@ typedef u32 acpi_physical_address;
|
||||
#error unknown ACPI_MACHINE_WIDTH
|
||||
#endif
|
||||
|
||||
/* Variable-width type, used instead of clib size_t */
|
||||
|
||||
typedef acpi_native_uint acpi_size;
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* OS-dependent and compiler-dependent types
|
||||
@@ -219,7 +215,7 @@ typedef acpi_native_uint acpi_size;
|
||||
/* Value returned by acpi_os_get_thread_id */
|
||||
|
||||
#ifndef acpi_thread_id
|
||||
#define acpi_thread_id acpi_native_uint
|
||||
#define acpi_thread_id acpi_size
|
||||
#endif
|
||||
|
||||
/* Object returned from acpi_os_create_lock */
|
||||
@@ -231,7 +227,7 @@ typedef acpi_native_uint acpi_size;
|
||||
/* Flags for acpi_os_acquire_lock/acpi_os_release_lock */
|
||||
|
||||
#ifndef acpi_cpu_flags
|
||||
#define acpi_cpu_flags acpi_native_uint
|
||||
#define acpi_cpu_flags acpi_size
|
||||
#endif
|
||||
|
||||
/* Object returned from acpi_os_create_cache */
|
||||
|
||||
@@ -172,7 +172,7 @@ char *acpi_ut_strstr(char *string1, char *string2);
|
||||
|
||||
void *acpi_ut_memcpy(void *dest, const void *src, acpi_size count);
|
||||
|
||||
void *acpi_ut_memset(void *dest, acpi_native_uint value, acpi_size count);
|
||||
void *acpi_ut_memset(void *dest, u8 value, acpi_size count);
|
||||
|
||||
int acpi_ut_to_upper(int c);
|
||||
|
||||
@@ -245,41 +245,45 @@ void acpi_ut_track_stack_ptr(void);
|
||||
|
||||
void
|
||||
acpi_ut_trace(u32 line_number,
|
||||
const char *function_name, char *module_name, u32 component_id);
|
||||
const char *function_name,
|
||||
const char *module_name, u32 component_id);
|
||||
|
||||
void
|
||||
acpi_ut_trace_ptr(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, void *pointer);
|
||||
const char *module_name, u32 component_id, void *pointer);
|
||||
|
||||
void
|
||||
acpi_ut_trace_u32(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, u32 integer);
|
||||
const char *module_name, u32 component_id, u32 integer);
|
||||
|
||||
void
|
||||
acpi_ut_trace_str(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, char *string);
|
||||
const char *module_name, u32 component_id, char *string);
|
||||
|
||||
void
|
||||
acpi_ut_exit(u32 line_number,
|
||||
const char *function_name, char *module_name, u32 component_id);
|
||||
const char *function_name,
|
||||
const char *module_name, u32 component_id);
|
||||
|
||||
void
|
||||
acpi_ut_status_exit(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, acpi_status status);
|
||||
const char *module_name,
|
||||
u32 component_id, acpi_status status);
|
||||
|
||||
void
|
||||
acpi_ut_value_exit(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, acpi_integer value);
|
||||
const char *module_name,
|
||||
u32 component_id, acpi_integer value);
|
||||
|
||||
void
|
||||
acpi_ut_ptr_exit(u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name, u32 component_id, u8 * ptr);
|
||||
const char *module_name, u32 component_id, u8 *ptr);
|
||||
|
||||
void acpi_ut_dump_buffer(u8 * buffer, u32 count, u32 display, u32 component_id);
|
||||
|
||||
@@ -297,33 +301,35 @@ void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_debug_print(u32 requested_debug_level,
|
||||
u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name,
|
||||
u32 component_id, char *format, ...) ACPI_PRINTF_LIKE(6);
|
||||
const char *module_name,
|
||||
u32 component_id,
|
||||
const char *format, ...) ACPI_PRINTF_LIKE(6);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_debug_print_raw(u32 requested_debug_level,
|
||||
u32 line_number,
|
||||
const char *function_name,
|
||||
char *module_name,
|
||||
const char *module_name,
|
||||
u32 component_id,
|
||||
char *format, ...) ACPI_PRINTF_LIKE(6);
|
||||
const char *format, ...) ACPI_PRINTF_LIKE(6);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_error(char *module_name,
|
||||
u32 line_number, char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
acpi_ut_error(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_exception(char *module_name,
|
||||
acpi_ut_exception(const char *module_name,
|
||||
u32 line_number,
|
||||
acpi_status status, char *format, ...) ACPI_PRINTF_LIKE(4);
|
||||
acpi_status status,
|
||||
const char *format, ...) ACPI_PRINTF_LIKE(4);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_warning(char *module_name,
|
||||
u32 line_number, char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
acpi_ut_warning(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
acpi_ut_info(char *module_name,
|
||||
u32 line_number, char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
acpi_ut_info(const char *module_name,
|
||||
u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
|
||||
|
||||
/*
|
||||
* utdelete - Object deletion and reference counts
|
||||
@@ -376,13 +382,14 @@ acpi_ut_execute_sxds(struct acpi_namespace_node *device_node, u8 * highest);
|
||||
/*
|
||||
* utobject - internal object create/delete/cache routines
|
||||
*/
|
||||
union acpi_operand_object *acpi_ut_create_internal_object_dbg(char *module_name,
|
||||
union acpi_operand_object *acpi_ut_create_internal_object_dbg(const char
|
||||
*module_name,
|
||||
u32 line_number,
|
||||
u32 component_id,
|
||||
acpi_object_type
|
||||
type);
|
||||
|
||||
void *acpi_ut_allocate_object_desc_dbg(char *module_name,
|
||||
void *acpi_ut_allocate_object_desc_dbg(const char *module_name,
|
||||
u32 line_number, u32 component_id);
|
||||
|
||||
#define acpi_ut_create_internal_object(t) acpi_ut_create_internal_object_dbg (_acpi_module_name,__LINE__,_COMPONENT,t)
|
||||
@@ -476,7 +483,7 @@ u8 acpi_ut_valid_acpi_name(u32 name);
|
||||
|
||||
acpi_name acpi_ut_repair_name(char *name);
|
||||
|
||||
u8 acpi_ut_valid_acpi_char(char character, acpi_native_uint position);
|
||||
u8 acpi_ut_valid_acpi_char(char character, u32 position);
|
||||
|
||||
acpi_status
|
||||
acpi_ut_strtoul64(char *string, u32 base, acpi_integer * ret_integer);
|
||||
@@ -543,26 +550,29 @@ acpi_status
|
||||
acpi_ut_initialize_buffer(struct acpi_buffer *buffer,
|
||||
acpi_size required_length);
|
||||
|
||||
void *acpi_ut_allocate(acpi_size size, u32 component, char *module, u32 line);
|
||||
void *acpi_ut_allocate(acpi_size size,
|
||||
u32 component, const char *module, u32 line);
|
||||
|
||||
void *acpi_ut_allocate_zeroed(acpi_size size,
|
||||
u32 component, char *module, u32 line);
|
||||
u32 component, const char *module, u32 line);
|
||||
|
||||
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
void *acpi_ut_allocate_and_track(acpi_size size,
|
||||
u32 component, char *module, u32 line);
|
||||
u32 component, const char *module, u32 line);
|
||||
|
||||
void *acpi_ut_allocate_zeroed_and_track(acpi_size size,
|
||||
u32 component, char *module, u32 line);
|
||||
u32 component,
|
||||
const char *module, u32 line);
|
||||
|
||||
void
|
||||
acpi_ut_free_and_track(void *address, u32 component, char *module, u32 line);
|
||||
acpi_ut_free_and_track(void *address,
|
||||
u32 component, const char *module, u32 line);
|
||||
|
||||
#ifdef ACPI_FUTURE_USAGE
|
||||
void acpi_ut_dump_allocation_info(void);
|
||||
#endif /* ACPI_FUTURE_USAGE */
|
||||
|
||||
void acpi_ut_dump_allocations(u32 component, char *module);
|
||||
void acpi_ut_dump_allocations(u32 component, const char *module);
|
||||
|
||||
acpi_status
|
||||
acpi_ut_create_list(char *list_name,
|
||||
|
||||
@@ -255,7 +255,7 @@ extern void acpi_processor_unregister_performance(struct
|
||||
int acpi_processor_notify_smm(struct module *calling_module);
|
||||
|
||||
/* for communication between multiple parts of the processor kernel module */
|
||||
extern struct acpi_processor *processors[NR_CPUS];
|
||||
DECLARE_PER_CPU(struct acpi_processor *, processors);
|
||||
extern struct acpi_processor_errata errata;
|
||||
|
||||
void arch_acpi_processor_init_pdc(struct acpi_processor *pr);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#ifndef __ACPI_REBOOT_H
|
||||
#define __ACPI_REBOOT_H
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
extern void acpi_reboot(void);
|
||||
#else
|
||||
static inline void acpi_reboot(void) { }
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Dummy placeholder to make the EFI patches apply to the x86 tree.
|
||||
* Andrew/Len, please just kill this file if you encounter it.
|
||||
*/
|
||||
#ifndef acpi_reboot
|
||||
# define acpi_reboot() do { } while (0)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -763,6 +763,8 @@ prefetchw (const void *x)
|
||||
#define spin_lock_prefetch(x) prefetchw(x)
|
||||
|
||||
extern unsigned long boot_option_idle_override;
|
||||
extern unsigned long idle_halt;
|
||||
extern unsigned long idle_nomwait;
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
||||
@@ -727,6 +727,8 @@ extern int force_mwait;
|
||||
extern void select_idle_routine(const struct cpuinfo_x86 *c);
|
||||
|
||||
extern unsigned long boot_option_idle_override;
|
||||
extern unsigned long idle_halt;
|
||||
extern unsigned long idle_nomwait;
|
||||
|
||||
extern void enable_sep_cpu(void);
|
||||
extern int sysenter_setup(void);
|
||||
|
||||
@@ -127,6 +127,15 @@ static inline void set_freezable(void)
|
||||
current->flags &= ~PF_NOFREEZE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Tell the freezer that the current task should be frozen by it and that it
|
||||
* should send a fake signal to the task to freeze it.
|
||||
*/
|
||||
static inline void set_freezable_with_signal(void)
|
||||
{
|
||||
current->flags &= ~(PF_NOFREEZE | PF_FREEZER_NOSIG);
|
||||
}
|
||||
|
||||
/*
|
||||
* Freezer-friendly wrappers around wait_event_interruptible() and
|
||||
* wait_event_interruptible_timeout(), originally defined in <linux/wait.h>
|
||||
@@ -174,6 +183,7 @@ static inline void freezer_do_not_count(void) {}
|
||||
static inline void freezer_count(void) {}
|
||||
static inline int freezer_should_skip(struct task_struct *p) { return 0; }
|
||||
static inline void set_freezable(void) {}
|
||||
static inline void set_freezable_with_signal(void) {}
|
||||
|
||||
#define wait_event_freezable(wq, condition) \
|
||||
wait_event_interruptible(wq, condition)
|
||||
|
||||
@@ -59,6 +59,7 @@ struct resource_list {
|
||||
#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
|
||||
#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
|
||||
#define IORESOURCE_IRQ_SHAREABLE (1<<4)
|
||||
#define IORESOURCE_IRQ_OPTIONAL (1<<5)
|
||||
|
||||
/* PnP DMA specific bits (IORESOURCE_BITS) */
|
||||
#define IORESOURCE_DMA_TYPE_MASK (3<<0)
|
||||
@@ -88,6 +89,10 @@ struct resource_list {
|
||||
#define IORESOURCE_MEM_SHADOWABLE (1<<5) /* dup: IORESOURCE_SHADOWABLE */
|
||||
#define IORESOURCE_MEM_EXPANSIONROM (1<<6)
|
||||
|
||||
/* PnP I/O specific bits (IORESOURCE_BITS) */
|
||||
#define IORESOURCE_IO_16BIT_ADDR (1<<0)
|
||||
#define IORESOURCE_IO_FIXED (1<<1)
|
||||
|
||||
/* PCI ROM control bits (IORESOURCE_BITS) */
|
||||
#define IORESOURCE_ROM_ENABLE (1<<0) /* ROM is enabled, same as PCI_ROM_ADDRESS_ENABLE */
|
||||
#define IORESOURCE_ROM_SHADOW (1<<1) /* ROM is copy at C000:0 */
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/*
|
||||
* Linux Plug and Play Support
|
||||
* Copyright by Adam Belay <ambx1@neo.rr.com>
|
||||
* Copyright (C) 2008 Hewlett-Packard Development Company, L.P.
|
||||
* Bjorn Helgaas <bjorn.helgaas@hp.com>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_PNP_H
|
||||
@@ -15,7 +17,6 @@
|
||||
|
||||
struct pnp_protocol;
|
||||
struct pnp_dev;
|
||||
struct pnp_resource_table;
|
||||
|
||||
/*
|
||||
* Resource Management
|
||||
@@ -24,7 +25,14 @@ struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);
|
||||
|
||||
static inline int pnp_resource_valid(struct resource *res)
|
||||
{
|
||||
if (res && !(res->flags & IORESOURCE_UNSET))
|
||||
if (res)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int pnp_resource_enabled(struct resource *res)
|
||||
{
|
||||
if (res && !(res->flags & IORESOURCE_DISABLED))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
@@ -40,19 +48,31 @@ static inline resource_size_t pnp_resource_len(struct resource *res)
|
||||
static inline resource_size_t pnp_port_start(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IO, bar)->start;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->start;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline resource_size_t pnp_port_end(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IO, bar)->end;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->end;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_port_flags(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IO, bar)->flags;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->flags;
|
||||
return IORESOURCE_IO | IORESOURCE_AUTO;
|
||||
}
|
||||
|
||||
static inline int pnp_port_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
@@ -63,25 +83,41 @@ static inline int pnp_port_valid(struct pnp_dev *dev, unsigned int 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));
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return pnp_resource_len(res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static inline resource_size_t pnp_mem_start(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_MEM, bar)->start;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->start;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline resource_size_t pnp_mem_end(struct pnp_dev *dev,
|
||||
unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_MEM, bar)->end;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->end;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_mem_flags(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_MEM, bar)->flags;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->flags;
|
||||
return IORESOURCE_MEM | IORESOURCE_AUTO;
|
||||
}
|
||||
|
||||
static inline int pnp_mem_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
@@ -92,18 +128,30 @@ static inline int pnp_mem_valid(struct pnp_dev *dev, unsigned int 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));
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return pnp_resource_len(res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static inline resource_size_t pnp_irq(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IRQ, bar)->start;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_IRQ, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->start;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_irq_flags(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_IRQ, bar)->flags;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_IRQ, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->flags;
|
||||
return IORESOURCE_IRQ | IORESOURCE_AUTO;
|
||||
}
|
||||
|
||||
static inline int pnp_irq_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
@@ -114,12 +162,20 @@ static inline int pnp_irq_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
|
||||
static inline resource_size_t pnp_dma(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_DMA, bar)->start;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_DMA, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->start;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline unsigned long pnp_dma_flags(struct pnp_dev *dev, unsigned int bar)
|
||||
{
|
||||
return pnp_get_resource(dev, IORESOURCE_DMA, bar)->flags;
|
||||
struct resource *res = pnp_get_resource(dev, IORESOURCE_DMA, bar);
|
||||
|
||||
if (pnp_resource_valid(res))
|
||||
return res->flags;
|
||||
return IORESOURCE_DMA | IORESOURCE_AUTO;
|
||||
}
|
||||
|
||||
static inline int pnp_dma_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
@@ -128,57 +184,6 @@ static inline int pnp_dma_valid(struct pnp_dev *dev, unsigned int bar)
|
||||
}
|
||||
|
||||
|
||||
#define PNP_PORT_FLAG_16BITADDR (1<<0)
|
||||
#define PNP_PORT_FLAG_FIXED (1<<1)
|
||||
|
||||
struct pnp_port {
|
||||
unsigned short min; /* min base number */
|
||||
unsigned short max; /* max base number */
|
||||
unsigned char align; /* align boundary */
|
||||
unsigned char size; /* size of range */
|
||||
unsigned char flags; /* port flags */
|
||||
unsigned char pad; /* pad */
|
||||
struct pnp_port *next; /* next port */
|
||||
};
|
||||
|
||||
#define PNP_IRQ_NR 256
|
||||
struct pnp_irq {
|
||||
DECLARE_BITMAP(map, PNP_IRQ_NR); /* bitmask for IRQ lines */
|
||||
unsigned char flags; /* IRQ flags */
|
||||
unsigned char pad; /* pad */
|
||||
struct pnp_irq *next; /* next IRQ */
|
||||
};
|
||||
|
||||
struct pnp_dma {
|
||||
unsigned char map; /* bitmask for DMA channels */
|
||||
unsigned char flags; /* DMA flags */
|
||||
struct pnp_dma *next; /* next port */
|
||||
};
|
||||
|
||||
struct pnp_mem {
|
||||
unsigned int min; /* min base number */
|
||||
unsigned int max; /* max base number */
|
||||
unsigned int align; /* align boundary */
|
||||
unsigned int size; /* size of range */
|
||||
unsigned char flags; /* memory flags */
|
||||
unsigned char pad; /* pad */
|
||||
struct pnp_mem *next; /* next memory resource */
|
||||
};
|
||||
|
||||
#define PNP_RES_PRIORITY_PREFERRED 0
|
||||
#define PNP_RES_PRIORITY_ACCEPTABLE 1
|
||||
#define PNP_RES_PRIORITY_FUNCTIONAL 2
|
||||
#define PNP_RES_PRIORITY_INVALID 65535
|
||||
|
||||
struct pnp_option {
|
||||
unsigned short priority; /* priority */
|
||||
struct pnp_port *port; /* first port */
|
||||
struct pnp_irq *irq; /* first IRQ */
|
||||
struct pnp_dma *dma; /* first DMA */
|
||||
struct pnp_mem *mem; /* first memory resource */
|
||||
struct pnp_option *next; /* used to chain dependent resources */
|
||||
};
|
||||
|
||||
/*
|
||||
* Device Management
|
||||
*/
|
||||
@@ -246,9 +251,9 @@ struct pnp_dev {
|
||||
|
||||
int active;
|
||||
int capabilities;
|
||||
struct pnp_option *independent;
|
||||
struct pnp_option *dependent;
|
||||
struct pnp_resource_table *res;
|
||||
unsigned int num_dependent_sets;
|
||||
struct list_head resources;
|
||||
struct list_head options;
|
||||
|
||||
char name[PNP_NAME_LEN]; /* contains a human-readable name */
|
||||
int flags; /* used by protocols */
|
||||
@@ -425,6 +430,8 @@ void pnp_unregister_card_driver(struct pnp_card_driver *drv);
|
||||
extern struct list_head pnp_cards;
|
||||
|
||||
/* resource management */
|
||||
int pnp_possible_config(struct pnp_dev *dev, int type, resource_size_t base,
|
||||
resource_size_t size);
|
||||
int pnp_auto_config_dev(struct pnp_dev *dev);
|
||||
int pnp_start_dev(struct pnp_dev *dev);
|
||||
int pnp_stop_dev(struct pnp_dev *dev);
|
||||
@@ -452,6 +459,9 @@ static inline int pnp_register_card_driver(struct pnp_card_driver *drv) { return
|
||||
static inline void pnp_unregister_card_driver(struct pnp_card_driver *drv) { }
|
||||
|
||||
/* resource management */
|
||||
static inline int pnp_possible_config(struct pnp_dev *dev, int type,
|
||||
resource_size_t base,
|
||||
resource_size_t size) { return 0; }
|
||||
static inline int pnp_auto_config_dev(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; }
|
||||
|
||||
@@ -1494,6 +1494,7 @@ static inline void put_task_struct(struct task_struct *t)
|
||||
#define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */
|
||||
#define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */
|
||||
#define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezeable */
|
||||
#define PF_FREEZER_NOSIG 0x80000000 /* Freezer won't send signals to it */
|
||||
|
||||
/*
|
||||
* Only the _current_ task can read/write to tsk->flags, but other
|
||||
|
||||
Reference in New Issue
Block a user