All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Len Brown <len.brown@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>,
	linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: [RFC DBG PATCH] ACPICA: Add CONFIG_ACPI=n build test support.
Date: Wed, 18 Dec 2013 17:07:28 +0800	[thread overview]
Message-ID: <f82182940fe88b1b6428eecc2df1cb1684f0ca80.1387336613.git.lv.zheng@intel.com> (raw)
In-Reply-To: <cover.1387336613.git.lv.zheng@intel.com>

This file can be used to detect ACPICA configurability/build issues in
CONFIG_ACPI=n environment.
This patch is only used for unit test purpose, do not merge it into
public linux kernel source trees.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 init/Makefile |    2 +-
 init/acpica.c |  318 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 319 insertions(+), 1 deletion(-)
 create mode 100644 init/acpica.c

diff --git a/init/Makefile b/init/Makefile
index 7bc47ee..0f655de 100644
--- a/init/Makefile
+++ b/init/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-obj-y                          := main.o version.o mounts.o
+obj-y                          := main.o version.o mounts.o acpica.o
 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
 obj-y                          += noinitramfs.o
 else
diff --git a/init/acpica.c b/init/acpica.c
new file mode 100644
index 0000000..ae9fc61
--- /dev/null
+++ b/init/acpica.c
@@ -0,0 +1,318 @@
+/*
+ * ACPICA build testing for CONFIG_ACPI=n
+ *
+ * Copyright (C) 2013, Intel Corporation
+ *   Author: Lv Zheng <lv.zheng@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/acpica.h>
+
+#define FUNC_CONST_PTR_1(ptr, func, v1)				\
+	do {							\
+		ptr = func(v1);					\
+		printk("%s result is %p.\n", #func, ptr);	\
+	} while (0)
+#define FUNC_0(status, func)					\
+	do {							\
+		status = func();				\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_1(status, func, v1)				\
+	do {							\
+		status = func(v1);				\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_2(status, func, v1, v2)				\
+	do {							\
+		status = func(v1, v2);				\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_3(status, func, v1, v2, v3)			\
+	do {							\
+		status = func(v1, v2, v3);			\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_4(status, func, v1, v2, v3, v4)			\
+	do {							\
+		status = func(v1, v2, v3, v4);			\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_5(status, func, v1, v2, v3, v4, v5)		\
+	do {							\
+		status = func(v1, v2, v3, v4, v5);		\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_6(status, func, v1, v2, v3, v4, v5, v6)		\
+	do {							\
+		status = func(v1, v2, v3, v4, v5, v6);		\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_7(status, func, v1, v2, v3, v4, v5, v6, v7)	\
+	do {							\
+		status = func(v1, v2, v3, v4, v5, v6, v7);	\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+
+#define FUNC_VOID_3(func, v1, v2, v3)				\
+	do {							\
+		func(v1, v2, v3);				\
+	} while (0)
+#define FUNC_VOID_4(func, v1, v2, v3, v4)			\
+	do {							\
+		func(v1, v2, v3, v4);				\
+	} while (0)
+#define FUNC_VOID_6(func, v1, v2, v3, v4, v5, v6)		\
+	do {							\
+		func(v1, v2, v3, v4, v5, v6);			\
+	} while (0)
+
+#define ACCESS_GLOBAL(gbl, val)					\
+	do {							\
+		if ((gbl) == (val)) {				\
+			printk("%s global equals.\n", #gbl);	\
+		} else {					\
+			printk("%s global not equals.\n", #gbl);\
+		}						\
+	} while (0)
+#define ACCESS_FADT_FLAG(flg)					\
+	do {							\
+		if (acpi_test_fadt_flags(flg)) {		\
+			printk("%s flag set\n", #flg);		\
+		} else {					\
+			printk("%s flag cleared.\n", #flg);	\
+		}						\
+	} while (0)
+
+#define ACPI_SNAME(str)						\
+	((u16)((u16)((str)[0]) | ((u16)((str)[1]) << 8)))
+
+#define ACPI_LNAME(str)						\
+	((u32)((u32)ACPI_SNAME(str) | ((u32)ACPI_SNAME((str)+2) << 16)))
+
+#define ACPI_LLNAME(str)					\
+	((u64)((u64)ACPI_LNAME(str) | ((u64)ACPI_LNAME((str)+4) << 32)))
+
+static void test_macros(void)
+{
+	void *mem;
+	u64 a_u64 = ACPI_LLNAME("ABCDEFGH");
+	u32 a_u32 = ACPI_LNAME("ABCD");
+	u16 a_u16 = ACPI_SNAME("AB");
+	u8 a_u8 = 'A';
+
+	mem = ACPI_ALLOCATE(sizeof(u64));
+	ACPI_FREE(mem);
+	mem = ACPI_ALLOCATE_ZEROED(sizeof(u64));
+	ACPI_FREE(mem);
+
+	a_u32 = ACPI_LODWORD(a_u64) + ACPI_HIDWORD(a_u64);
+	a_u32 = ACPI_LODWORD(a_u32) + ACPI_HIDWORD(a_u32);
+	a_u32 = ACPI_LODWORD(a_u16) + ACPI_HIDWORD(a_u16);
+	a_u32 = ACPI_LODWORD(a_u8)  + ACPI_HIDWORD(a_u8);
+
+	a_u16 = ACPI_LOWORD(a_u64) + ACPI_HIWORD(a_u64);
+	a_u16 = ACPI_LOWORD(a_u32) + ACPI_HIWORD(a_u32);
+	a_u16 = ACPI_LOWORD(a_u16) + ACPI_HIWORD(a_u16);
+	a_u16 = ACPI_LOWORD(a_u8)  + ACPI_HIWORD(a_u8);
+
+	a_u8 = ACPI_LOBYTE(a_u64) + ACPI_HIBYTE(a_u64);
+	a_u8 = ACPI_LOBYTE(a_u32) + ACPI_HIBYTE(a_u32);
+	a_u8 = ACPI_LOBYTE(a_u16) + ACPI_HIBYTE(a_u16);
+	a_u8 = ACPI_LOBYTE(a_u8)  + ACPI_HIBYTE(a_u8);
+
+	ACPI_SET_BIT(a_u64, 1);
+	ACPI_SET_BIT(a_u32, 1);
+	ACPI_SET_BIT(a_u16, 1);
+	ACPI_SET_BIT(a_u8,  1);
+	ACPI_CLEAR_BIT(a_u64, 1);
+	ACPI_CLEAR_BIT(a_u32, 1);
+	ACPI_CLEAR_BIT(a_u16, 1);
+	ACPI_CLEAR_BIT(a_u8,  1);
+}
+
+static void test_globals(void)
+{
+	ACCESS_GLOBAL(acpi_current_gpe_count, 0);
+	ACCESS_GLOBAL(acpi_gbl_trace_flags, 0);
+	ACCESS_GLOBAL(acpi_gbl_trace_method_name, 0);
+	ACCESS_GLOBAL(acpi_gbl_system_awake_and_running, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_reduced_hardware, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_enable_interpreter_slack, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_all_methods_serialized, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_create_osi_method, TRUE);
+	ACCESS_GLOBAL(acpi_gbl_use_default_register_widths, TRUE);
+	ACCESS_GLOBAL(acpi_gbl_enable_aml_debug_object, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_copy_dsdt_locally, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_truncate_io_addresses, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_disable_auto_repair, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_disable_ssdt_table_load, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_osi_data, 0);
+	ACCESS_GLOBAL(acpi_dbg_level, ACPI_DEBUG_DEFAULT);
+	ACCESS_GLOBAL(acpi_dbg_layer, ACPI_COMPONENT_DEFAULT);
+#ifdef ACPI_DISASSEMBLER
+	ACCESS_GLOBAL(acpi_gbl_no_resource_disassembly, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_ignore_noop_operator, FALSE);
+#endif
+	ACCESS_GLOBAL(acpi_gbl_permanent_mmap, FALSE);
+	ACCESS_GLOBAL(acpi_rsdt_forced, FALSE);
+
+	printk("FADT revision is %d.\n", acpi_get_fadt_revision());
+
+	ACCESS_FADT_FLAG(ACPI_FADT_WBINVD);
+}
+
+static void test_functions(void)
+{
+	acpi_status status;
+	const void *pointer;
+
+	FUNC_0(status, acpi_enable);
+	FUNC_0(status, acpi_disable);
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_0(status, acpi_subsystem_status);
+	FUNC_1(status, acpi_get_system_info, NULL);
+#endif
+	FUNC_1(status, acpi_get_statistics, NULL);
+	FUNC_CONST_PTR_1(pointer, acpi_format_exception, 0);
+	FUNC_0(status, acpi_purge_cached_objects);
+	FUNC_1(status, acpi_install_interface, NULL);
+	FUNC_1(status, acpi_remove_interface, NULL);
+	FUNC_1(status, acpi_update_interfaces, 0);
+	FUNC_4(status, acpi_check_address_range, 0, 0, 0, false);
+	FUNC_3(status, acpi_decode_pld_buffer, NULL, 0, NULL);
+	FUNC_1(status, acpi_load_table, NULL);
+	FUNC_1(status, acpi_unload_parent_table, NULL);
+	FUNC_1(status, acpi_unload_table_id, 0);
+	FUNC_3(status, acpi_get_table_header, NULL, 0, NULL);
+	FUNC_4(status, acpi_get_table_with_size, NULL, 0, NULL, NULL);
+	FUNC_3(status, acpi_get_table, NULL, 0, NULL);
+	FUNC_2(status, acpi_get_table_by_index, 0, NULL);
+	FUNC_2(status, acpi_install_table_handler, NULL, NULL);
+	FUNC_1(status, acpi_remove_table_handler, NULL);
+	FUNC_7(status, acpi_walk_namespace, 0, NULL, 0, NULL, NULL, NULL, NULL);
+	FUNC_4(status, acpi_get_devices, NULL, NULL, NULL, NULL);
+	FUNC_3(status, acpi_get_name, NULL, 0, NULL);
+	FUNC_3(status, acpi_get_handle, NULL, NULL, NULL);
+	FUNC_3(status, acpi_attach_data, NULL, NULL, NULL);
+	FUNC_2(status, acpi_detach_data, NULL, NULL);
+	FUNC_3(status, acpi_get_data, NULL, NULL, NULL);
+	FUNC_4(status, acpi_debug_trace, NULL, 0, 0, 0);
+	FUNC_4(status, acpi_evaluate_object, NULL, NULL, NULL, NULL);
+	FUNC_5(status, acpi_evaluate_object_typed, NULL, NULL, NULL, NULL, 0);
+	FUNC_2(status, acpi_get_object_info, NULL, NULL);
+	FUNC_1(status, acpi_install_method, NULL);
+	FUNC_4(status, acpi_get_next_object, 0, NULL, NULL, NULL);
+	FUNC_2(status, acpi_get_type, NULL, NULL);
+	FUNC_2(status, acpi_get_id, NULL, NULL);
+	FUNC_2(status, acpi_get_parent, NULL, NULL);
+	FUNC_2(status, acpi_install_initialization_handler, NULL, 0);
+	FUNC_2(status, acpi_install_sci_handler, NULL, NULL);
+	FUNC_1(status, acpi_remove_sci_handler, NULL);
+	FUNC_2(status, acpi_install_global_event_handler, NULL, NULL);
+	FUNC_3(status, acpi_install_fixed_event_handler, 0, NULL, NULL);
+	FUNC_2(status, acpi_remove_fixed_event_handler, 0, NULL);
+	FUNC_5(status, acpi_install_gpe_handler, NULL, 0, 0, NULL, NULL);
+	FUNC_3(status, acpi_remove_gpe_handler, NULL, 0, NULL);
+	FUNC_4(status, acpi_install_notify_handler, NULL, 0, NULL, NULL);
+	FUNC_3(status, acpi_remove_notify_handler, NULL, 0, NULL);
+	FUNC_5(status, acpi_install_address_space_handler, NULL, 0, NULL, NULL, NULL);
+	FUNC_3(status, acpi_remove_address_space_handler, NULL, 0, NULL);
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_1(status, acpi_install_exception_handler, NULL);
+#endif
+	FUNC_1(status, acpi_install_interface_handler, NULL);
+	FUNC_2(status, acpi_acquire_global_lock, 0, NULL);
+	FUNC_1(status, acpi_release_global_lock, 0);
+	FUNC_3(status, acpi_acquire_mutex, NULL, NULL, 0);
+	FUNC_2(status, acpi_release_mutex, NULL, NULL);
+	FUNC_2(status, acpi_enable_event, 0, 0);
+	FUNC_2(status, acpi_disable_event, 0, 0);
+	FUNC_1(status, acpi_clear_event, 0);
+	FUNC_2(status, acpi_get_event_status, 0, NULL);
+	FUNC_0(status, acpi_update_all_gpes);
+	FUNC_2(status, acpi_enable_gpe, NULL, 0);
+	FUNC_2(status, acpi_disable_gpe, NULL, 0);
+	FUNC_2(status, acpi_clear_gpe, NULL, 0);
+	FUNC_3(status, acpi_set_gpe, NULL, 0, 0);
+	FUNC_2(status, acpi_finish_gpe, NULL, 0);
+	FUNC_3(status, acpi_setup_gpe_for_wake, NULL, NULL, 0);
+	FUNC_3(status, acpi_set_gpe_wake_mask, NULL, 0, 0);
+	FUNC_3(status, acpi_get_gpe_status, NULL, 0, NULL);
+	FUNC_0(status, acpi_disable_all_gpes);
+	FUNC_0(status, acpi_enable_all_runtime_gpes);
+	FUNC_2(status, acpi_get_gpe_device, 0, NULL);
+	FUNC_4(status, acpi_install_gpe_block, NULL, NULL, 0, 0);
+	FUNC_1(status, acpi_remove_gpe_block, NULL);
+	FUNC_4(status, acpi_get_vendor_resource, NULL, NULL, NULL, NULL);
+	FUNC_2(status, acpi_get_current_resources, NULL, NULL);
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_2(status, acpi_get_possible_resources, NULL, NULL);
+#endif
+	FUNC_2(status, acpi_get_event_resources, NULL, NULL);
+	FUNC_3(status, acpi_walk_resource_buffer, NULL, NULL, NULL);
+	FUNC_4(status, acpi_walk_resources, NULL, NULL, NULL, NULL);
+	FUNC_2(status, acpi_set_current_resources, NULL, NULL);
+	FUNC_2(status, acpi_get_irq_routing_table, NULL, NULL);
+	FUNC_2(status, acpi_resource_to_address64, NULL, NULL);
+	FUNC_3(status, acpi_buffer_to_resource, NULL, 0, NULL);
+	FUNC_0(status, acpi_reset);
+	FUNC_2(status, acpi_read, NULL, NULL);
+	FUNC_2(status, acpi_write, 0, NULL);
+	FUNC_2(status, acpi_read_bit_register, 0, NULL);
+	FUNC_2(status, acpi_write_bit_register, 0, 0);
+	FUNC_3(status, acpi_get_sleep_type_data, 0, NULL, NULL);
+	FUNC_1(status, acpi_enter_sleep_state_prep, 0);
+	FUNC_1(status, acpi_enter_sleep_state, 0);
+	FUNC_0(status, acpi_enter_sleep_state_s4bios);
+	FUNC_1(status, acpi_leave_sleep_state_prep, 0);
+	FUNC_1(status, acpi_leave_sleep_state, 0);
+	FUNC_1(status, acpi_set_firmware_waking_vector, 0);
+#if ACPI_MACHINE_WIDTH == 64
+	FUNC_1(status, acpi_set_firmware_waking_vector64, 0);
+#endif
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_1(status, acpi_get_timer_resolution, NULL);
+	FUNC_1(status, acpi_get_timer, NULL);
+	FUNC_3(status, acpi_get_timer_duration, 0, 0, NULL);
+#endif
+
+	FUNC_VOID_3(acpi_error, NULL, 0, NULL);
+	FUNC_VOID_4(acpi_exception, NULL, 0, 0, NULL);
+	FUNC_VOID_3(acpi_warning, NULL, 0, NULL);
+	FUNC_VOID_3(acpi_info, NULL, 0, NULL);
+	FUNC_VOID_3(acpi_bios_error, NULL, 0, NULL);
+	FUNC_VOID_3(acpi_bios_warning, NULL, 0, NULL);
+	FUNC_VOID_6(acpi_debug_print, 0, 0, NULL, NULL, 0, NULL);
+	FUNC_VOID_6(acpi_debug_print_raw, 0, 0, NULL, NULL, 0, NULL);
+}
+
+static void __init test_init_functions(void)
+{
+	acpi_status status;
+
+	FUNC_3(status, acpi_initialize_tables, NULL, 0, false);
+	FUNC_0(status, acpi_initialize_subsystem);
+	FUNC_1(status, acpi_enable_subsystem, 0);
+	FUNC_1(status, acpi_initialize_objects, 0);
+	FUNC_0(status, acpi_terminate);
+	FUNC_0(status, acpi_load_tables);
+	FUNC_0(status, acpi_reallocate_root_table);
+	FUNC_1(status, acpi_find_root_pointer, NULL);
+}
+
+static int __init acpica_test_init(void)
+{
+	test_init_functions();
+	test_functions();
+	test_globals();
+	test_macros();
+
+	return 0;
+}
+
+fs_initcall(acpica_test_init);
-- 
1.7.10

WARNING: multiple messages have this Message-ID (diff)
From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Len Brown <len.brown@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>,
	<linux-kernel@vger.kernel.org>,
	linux-acpi@vger.kernel.org
Subject: [RFC DBG PATCH] ACPICA: Add CONFIG_ACPI=n build test support.
Date: Wed, 18 Dec 2013 17:07:28 +0800	[thread overview]
Message-ID: <f82182940fe88b1b6428eecc2df1cb1684f0ca80.1387336613.git.lv.zheng@intel.com> (raw)
In-Reply-To: <cover.1387336613.git.lv.zheng@intel.com>

This file can be used to detect ACPICA configurability/build issues in
CONFIG_ACPI=n environment.
This patch is only used for unit test purpose, do not merge it into
public linux kernel source trees.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 init/Makefile |    2 +-
 init/acpica.c |  318 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 319 insertions(+), 1 deletion(-)
 create mode 100644 init/acpica.c

diff --git a/init/Makefile b/init/Makefile
index 7bc47ee..0f655de 100644
--- a/init/Makefile
+++ b/init/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-obj-y                          := main.o version.o mounts.o
+obj-y                          := main.o version.o mounts.o acpica.o
 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
 obj-y                          += noinitramfs.o
 else
diff --git a/init/acpica.c b/init/acpica.c
new file mode 100644
index 0000000..ae9fc61
--- /dev/null
+++ b/init/acpica.c
@@ -0,0 +1,318 @@
+/*
+ * ACPICA build testing for CONFIG_ACPI=n
+ *
+ * Copyright (C) 2013, Intel Corporation
+ *   Author: Lv Zheng <lv.zheng@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/acpica.h>
+
+#define FUNC_CONST_PTR_1(ptr, func, v1)				\
+	do {							\
+		ptr = func(v1);					\
+		printk("%s result is %p.\n", #func, ptr);	\
+	} while (0)
+#define FUNC_0(status, func)					\
+	do {							\
+		status = func();				\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_1(status, func, v1)				\
+	do {							\
+		status = func(v1);				\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_2(status, func, v1, v2)				\
+	do {							\
+		status = func(v1, v2);				\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_3(status, func, v1, v2, v3)			\
+	do {							\
+		status = func(v1, v2, v3);			\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_4(status, func, v1, v2, v3, v4)			\
+	do {							\
+		status = func(v1, v2, v3, v4);			\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_5(status, func, v1, v2, v3, v4, v5)		\
+	do {							\
+		status = func(v1, v2, v3, v4, v5);		\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_6(status, func, v1, v2, v3, v4, v5, v6)		\
+	do {							\
+		status = func(v1, v2, v3, v4, v5, v6);		\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+#define FUNC_7(status, func, v1, v2, v3, v4, v5, v6, v7)	\
+	do {							\
+		status = func(v1, v2, v3, v4, v5, v6, v7);	\
+		printk("%s result is %d.\n", #func, status);	\
+	} while (0)
+
+#define FUNC_VOID_3(func, v1, v2, v3)				\
+	do {							\
+		func(v1, v2, v3);				\
+	} while (0)
+#define FUNC_VOID_4(func, v1, v2, v3, v4)			\
+	do {							\
+		func(v1, v2, v3, v4);				\
+	} while (0)
+#define FUNC_VOID_6(func, v1, v2, v3, v4, v5, v6)		\
+	do {							\
+		func(v1, v2, v3, v4, v5, v6);			\
+	} while (0)
+
+#define ACCESS_GLOBAL(gbl, val)					\
+	do {							\
+		if ((gbl) == (val)) {				\
+			printk("%s global equals.\n", #gbl);	\
+		} else {					\
+			printk("%s global not equals.\n", #gbl);\
+		}						\
+	} while (0)
+#define ACCESS_FADT_FLAG(flg)					\
+	do {							\
+		if (acpi_test_fadt_flags(flg)) {		\
+			printk("%s flag set\n", #flg);		\
+		} else {					\
+			printk("%s flag cleared.\n", #flg);	\
+		}						\
+	} while (0)
+
+#define ACPI_SNAME(str)						\
+	((u16)((u16)((str)[0]) | ((u16)((str)[1]) << 8)))
+
+#define ACPI_LNAME(str)						\
+	((u32)((u32)ACPI_SNAME(str) | ((u32)ACPI_SNAME((str)+2) << 16)))
+
+#define ACPI_LLNAME(str)					\
+	((u64)((u64)ACPI_LNAME(str) | ((u64)ACPI_LNAME((str)+4) << 32)))
+
+static void test_macros(void)
+{
+	void *mem;
+	u64 a_u64 = ACPI_LLNAME("ABCDEFGH");
+	u32 a_u32 = ACPI_LNAME("ABCD");
+	u16 a_u16 = ACPI_SNAME("AB");
+	u8 a_u8 = 'A';
+
+	mem = ACPI_ALLOCATE(sizeof(u64));
+	ACPI_FREE(mem);
+	mem = ACPI_ALLOCATE_ZEROED(sizeof(u64));
+	ACPI_FREE(mem);
+
+	a_u32 = ACPI_LODWORD(a_u64) + ACPI_HIDWORD(a_u64);
+	a_u32 = ACPI_LODWORD(a_u32) + ACPI_HIDWORD(a_u32);
+	a_u32 = ACPI_LODWORD(a_u16) + ACPI_HIDWORD(a_u16);
+	a_u32 = ACPI_LODWORD(a_u8)  + ACPI_HIDWORD(a_u8);
+
+	a_u16 = ACPI_LOWORD(a_u64) + ACPI_HIWORD(a_u64);
+	a_u16 = ACPI_LOWORD(a_u32) + ACPI_HIWORD(a_u32);
+	a_u16 = ACPI_LOWORD(a_u16) + ACPI_HIWORD(a_u16);
+	a_u16 = ACPI_LOWORD(a_u8)  + ACPI_HIWORD(a_u8);
+
+	a_u8 = ACPI_LOBYTE(a_u64) + ACPI_HIBYTE(a_u64);
+	a_u8 = ACPI_LOBYTE(a_u32) + ACPI_HIBYTE(a_u32);
+	a_u8 = ACPI_LOBYTE(a_u16) + ACPI_HIBYTE(a_u16);
+	a_u8 = ACPI_LOBYTE(a_u8)  + ACPI_HIBYTE(a_u8);
+
+	ACPI_SET_BIT(a_u64, 1);
+	ACPI_SET_BIT(a_u32, 1);
+	ACPI_SET_BIT(a_u16, 1);
+	ACPI_SET_BIT(a_u8,  1);
+	ACPI_CLEAR_BIT(a_u64, 1);
+	ACPI_CLEAR_BIT(a_u32, 1);
+	ACPI_CLEAR_BIT(a_u16, 1);
+	ACPI_CLEAR_BIT(a_u8,  1);
+}
+
+static void test_globals(void)
+{
+	ACCESS_GLOBAL(acpi_current_gpe_count, 0);
+	ACCESS_GLOBAL(acpi_gbl_trace_flags, 0);
+	ACCESS_GLOBAL(acpi_gbl_trace_method_name, 0);
+	ACCESS_GLOBAL(acpi_gbl_system_awake_and_running, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_reduced_hardware, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_enable_interpreter_slack, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_all_methods_serialized, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_create_osi_method, TRUE);
+	ACCESS_GLOBAL(acpi_gbl_use_default_register_widths, TRUE);
+	ACCESS_GLOBAL(acpi_gbl_enable_aml_debug_object, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_copy_dsdt_locally, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_truncate_io_addresses, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_disable_auto_repair, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_disable_ssdt_table_load, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_osi_data, 0);
+	ACCESS_GLOBAL(acpi_dbg_level, ACPI_DEBUG_DEFAULT);
+	ACCESS_GLOBAL(acpi_dbg_layer, ACPI_COMPONENT_DEFAULT);
+#ifdef ACPI_DISASSEMBLER
+	ACCESS_GLOBAL(acpi_gbl_no_resource_disassembly, FALSE);
+	ACCESS_GLOBAL(acpi_gbl_ignore_noop_operator, FALSE);
+#endif
+	ACCESS_GLOBAL(acpi_gbl_permanent_mmap, FALSE);
+	ACCESS_GLOBAL(acpi_rsdt_forced, FALSE);
+
+	printk("FADT revision is %d.\n", acpi_get_fadt_revision());
+
+	ACCESS_FADT_FLAG(ACPI_FADT_WBINVD);
+}
+
+static void test_functions(void)
+{
+	acpi_status status;
+	const void *pointer;
+
+	FUNC_0(status, acpi_enable);
+	FUNC_0(status, acpi_disable);
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_0(status, acpi_subsystem_status);
+	FUNC_1(status, acpi_get_system_info, NULL);
+#endif
+	FUNC_1(status, acpi_get_statistics, NULL);
+	FUNC_CONST_PTR_1(pointer, acpi_format_exception, 0);
+	FUNC_0(status, acpi_purge_cached_objects);
+	FUNC_1(status, acpi_install_interface, NULL);
+	FUNC_1(status, acpi_remove_interface, NULL);
+	FUNC_1(status, acpi_update_interfaces, 0);
+	FUNC_4(status, acpi_check_address_range, 0, 0, 0, false);
+	FUNC_3(status, acpi_decode_pld_buffer, NULL, 0, NULL);
+	FUNC_1(status, acpi_load_table, NULL);
+	FUNC_1(status, acpi_unload_parent_table, NULL);
+	FUNC_1(status, acpi_unload_table_id, 0);
+	FUNC_3(status, acpi_get_table_header, NULL, 0, NULL);
+	FUNC_4(status, acpi_get_table_with_size, NULL, 0, NULL, NULL);
+	FUNC_3(status, acpi_get_table, NULL, 0, NULL);
+	FUNC_2(status, acpi_get_table_by_index, 0, NULL);
+	FUNC_2(status, acpi_install_table_handler, NULL, NULL);
+	FUNC_1(status, acpi_remove_table_handler, NULL);
+	FUNC_7(status, acpi_walk_namespace, 0, NULL, 0, NULL, NULL, NULL, NULL);
+	FUNC_4(status, acpi_get_devices, NULL, NULL, NULL, NULL);
+	FUNC_3(status, acpi_get_name, NULL, 0, NULL);
+	FUNC_3(status, acpi_get_handle, NULL, NULL, NULL);
+	FUNC_3(status, acpi_attach_data, NULL, NULL, NULL);
+	FUNC_2(status, acpi_detach_data, NULL, NULL);
+	FUNC_3(status, acpi_get_data, NULL, NULL, NULL);
+	FUNC_4(status, acpi_debug_trace, NULL, 0, 0, 0);
+	FUNC_4(status, acpi_evaluate_object, NULL, NULL, NULL, NULL);
+	FUNC_5(status, acpi_evaluate_object_typed, NULL, NULL, NULL, NULL, 0);
+	FUNC_2(status, acpi_get_object_info, NULL, NULL);
+	FUNC_1(status, acpi_install_method, NULL);
+	FUNC_4(status, acpi_get_next_object, 0, NULL, NULL, NULL);
+	FUNC_2(status, acpi_get_type, NULL, NULL);
+	FUNC_2(status, acpi_get_id, NULL, NULL);
+	FUNC_2(status, acpi_get_parent, NULL, NULL);
+	FUNC_2(status, acpi_install_initialization_handler, NULL, 0);
+	FUNC_2(status, acpi_install_sci_handler, NULL, NULL);
+	FUNC_1(status, acpi_remove_sci_handler, NULL);
+	FUNC_2(status, acpi_install_global_event_handler, NULL, NULL);
+	FUNC_3(status, acpi_install_fixed_event_handler, 0, NULL, NULL);
+	FUNC_2(status, acpi_remove_fixed_event_handler, 0, NULL);
+	FUNC_5(status, acpi_install_gpe_handler, NULL, 0, 0, NULL, NULL);
+	FUNC_3(status, acpi_remove_gpe_handler, NULL, 0, NULL);
+	FUNC_4(status, acpi_install_notify_handler, NULL, 0, NULL, NULL);
+	FUNC_3(status, acpi_remove_notify_handler, NULL, 0, NULL);
+	FUNC_5(status, acpi_install_address_space_handler, NULL, 0, NULL, NULL, NULL);
+	FUNC_3(status, acpi_remove_address_space_handler, NULL, 0, NULL);
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_1(status, acpi_install_exception_handler, NULL);
+#endif
+	FUNC_1(status, acpi_install_interface_handler, NULL);
+	FUNC_2(status, acpi_acquire_global_lock, 0, NULL);
+	FUNC_1(status, acpi_release_global_lock, 0);
+	FUNC_3(status, acpi_acquire_mutex, NULL, NULL, 0);
+	FUNC_2(status, acpi_release_mutex, NULL, NULL);
+	FUNC_2(status, acpi_enable_event, 0, 0);
+	FUNC_2(status, acpi_disable_event, 0, 0);
+	FUNC_1(status, acpi_clear_event, 0);
+	FUNC_2(status, acpi_get_event_status, 0, NULL);
+	FUNC_0(status, acpi_update_all_gpes);
+	FUNC_2(status, acpi_enable_gpe, NULL, 0);
+	FUNC_2(status, acpi_disable_gpe, NULL, 0);
+	FUNC_2(status, acpi_clear_gpe, NULL, 0);
+	FUNC_3(status, acpi_set_gpe, NULL, 0, 0);
+	FUNC_2(status, acpi_finish_gpe, NULL, 0);
+	FUNC_3(status, acpi_setup_gpe_for_wake, NULL, NULL, 0);
+	FUNC_3(status, acpi_set_gpe_wake_mask, NULL, 0, 0);
+	FUNC_3(status, acpi_get_gpe_status, NULL, 0, NULL);
+	FUNC_0(status, acpi_disable_all_gpes);
+	FUNC_0(status, acpi_enable_all_runtime_gpes);
+	FUNC_2(status, acpi_get_gpe_device, 0, NULL);
+	FUNC_4(status, acpi_install_gpe_block, NULL, NULL, 0, 0);
+	FUNC_1(status, acpi_remove_gpe_block, NULL);
+	FUNC_4(status, acpi_get_vendor_resource, NULL, NULL, NULL, NULL);
+	FUNC_2(status, acpi_get_current_resources, NULL, NULL);
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_2(status, acpi_get_possible_resources, NULL, NULL);
+#endif
+	FUNC_2(status, acpi_get_event_resources, NULL, NULL);
+	FUNC_3(status, acpi_walk_resource_buffer, NULL, NULL, NULL);
+	FUNC_4(status, acpi_walk_resources, NULL, NULL, NULL, NULL);
+	FUNC_2(status, acpi_set_current_resources, NULL, NULL);
+	FUNC_2(status, acpi_get_irq_routing_table, NULL, NULL);
+	FUNC_2(status, acpi_resource_to_address64, NULL, NULL);
+	FUNC_3(status, acpi_buffer_to_resource, NULL, 0, NULL);
+	FUNC_0(status, acpi_reset);
+	FUNC_2(status, acpi_read, NULL, NULL);
+	FUNC_2(status, acpi_write, 0, NULL);
+	FUNC_2(status, acpi_read_bit_register, 0, NULL);
+	FUNC_2(status, acpi_write_bit_register, 0, 0);
+	FUNC_3(status, acpi_get_sleep_type_data, 0, NULL, NULL);
+	FUNC_1(status, acpi_enter_sleep_state_prep, 0);
+	FUNC_1(status, acpi_enter_sleep_state, 0);
+	FUNC_0(status, acpi_enter_sleep_state_s4bios);
+	FUNC_1(status, acpi_leave_sleep_state_prep, 0);
+	FUNC_1(status, acpi_leave_sleep_state, 0);
+	FUNC_1(status, acpi_set_firmware_waking_vector, 0);
+#if ACPI_MACHINE_WIDTH == 64
+	FUNC_1(status, acpi_set_firmware_waking_vector64, 0);
+#endif
+#ifdef ACPI_FUTURE_USAGE
+	FUNC_1(status, acpi_get_timer_resolution, NULL);
+	FUNC_1(status, acpi_get_timer, NULL);
+	FUNC_3(status, acpi_get_timer_duration, 0, 0, NULL);
+#endif
+
+	FUNC_VOID_3(acpi_error, NULL, 0, NULL);
+	FUNC_VOID_4(acpi_exception, NULL, 0, 0, NULL);
+	FUNC_VOID_3(acpi_warning, NULL, 0, NULL);
+	FUNC_VOID_3(acpi_info, NULL, 0, NULL);
+	FUNC_VOID_3(acpi_bios_error, NULL, 0, NULL);
+	FUNC_VOID_3(acpi_bios_warning, NULL, 0, NULL);
+	FUNC_VOID_6(acpi_debug_print, 0, 0, NULL, NULL, 0, NULL);
+	FUNC_VOID_6(acpi_debug_print_raw, 0, 0, NULL, NULL, 0, NULL);
+}
+
+static void __init test_init_functions(void)
+{
+	acpi_status status;
+
+	FUNC_3(status, acpi_initialize_tables, NULL, 0, false);
+	FUNC_0(status, acpi_initialize_subsystem);
+	FUNC_1(status, acpi_enable_subsystem, 0);
+	FUNC_1(status, acpi_initialize_objects, 0);
+	FUNC_0(status, acpi_terminate);
+	FUNC_0(status, acpi_load_tables);
+	FUNC_0(status, acpi_reallocate_root_table);
+	FUNC_1(status, acpi_find_root_pointer, NULL);
+}
+
+static int __init acpica_test_init(void)
+{
+	test_init_functions();
+	test_functions();
+	test_globals();
+	test_macros();
+
+	return 0;
+}
+
+fs_initcall(acpica_test_init);
-- 
1.7.10


WARNING: multiple messages have this Message-ID (diff)
From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Len Brown <len.brown@intel.com>
Cc: alsa-devel@alsa-project.org,
	ibm-acpi-devel@lists.sourceforge.net,
	Takashi Iwai <tiwai@suse.de>,
	Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>,
	linux-kernel@vger.kernel.org, Lv Zheng <zetalog@gmail.com>,
	linux-acpi@vger.kernel.org, Lv Zheng <lv.zheng@intel.com>,
	platform-driver-x86@vger.kernel.org
Subject: [alsa-devel] [RFC PATCH 15/15] ACPI/thinkpad: Fix wrong <acpi/acpi.h> inclusion in Thinkpad ACPI users.
Date: Wed, 18 Dec 2013 17:07:21 +0800	[thread overview]
Message-ID: <f82182940fe88b1b6428eecc2df1cb1684f0ca80.1387336613.git.lv.zheng@intel.com> (raw)
In-Reply-To: <cover.1387336613.git.lv.zheng@intel.com>

CONFIG_ACPI dependent code should include <linux/acpi.h> instead of
directly including <acpi/acpi.h>.  This patch cleans up such wrong
inclusions for Thinkpad ACPI users.

Cc: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org
Cc: ibm-acpi-devel@lists.sourceforge.net
Cc: platform-driver-x86@vger.kernel.org
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/platform/x86/thinkpad_acpi.c |    1 -
 include/linux/thinkpad_acpi.h        |    2 ++
 sound/pci/hda/patch_conexant.c       |    1 -
 sound/pci/hda/patch_realtek.c        |    1 -
 4 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index defb6af..c114d7c 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -76,7 +76,6 @@
 #include <linux/dmi.h>
 #include <linux/jiffies.h>
 #include <linux/workqueue.h>
-#include <linux/acpi.h>
 #include <linux/pci_ids.h>
 #include <linux/thinkpad_acpi.h>
 #include <sound/core.h>
diff --git a/include/linux/thinkpad_acpi.h b/include/linux/thinkpad_acpi.h
index 361de59..02928eb 100644
--- a/include/linux/thinkpad_acpi.h
+++ b/include/linux/thinkpad_acpi.h
@@ -1,6 +1,8 @@
 #ifndef __THINKPAD_ACPI_H__
 #define __THINKPAD_ACPI_H__
 
+#include <linux/acpi.h>
+
 /* These two functions return 0 if success, or negative error code
    (e g -ENODEV if no led present) */
 
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 3fbf288..c2da489 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -3243,7 +3243,6 @@ enum {
 #if IS_ENABLED(CONFIG_THINKPAD_ACPI)
 
 #include <linux/thinkpad_acpi.h>
-#include <acpi/acpi.h>
 
 static int (*led_set_func)(int, bool);
 
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 34de5dc..17306be 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3726,7 +3726,6 @@ static void alc290_fixup_mono_speakers(struct hda_codec *codec,
 #if IS_ENABLED(CONFIG_THINKPAD_ACPI)
 
 #include <linux/thinkpad_acpi.h>
-#include <acpi/acpi.h>
 
 static int (*led_set_func)(int, bool);
 
-- 
1.7.10.4

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2013-12-18  9:07 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-18  9:05 [RFC PATCH 00/15] ACPICA: Add CONFIG_ACPI=n build support for ACPICA header files Lv Zheng
2013-12-18  9:05 ` Lv Zheng
2013-12-18  9:05 ` [RFC PATCH 01/15] ACPICA: OSL: Add configurability mechanism for global variables Lv Zheng
2013-12-18  9:05   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 02/15] ACPICA: Linux: Add configurability for external globals Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 03/15] ACPICA: Linux: Add configurability for OSL APIs Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 04/15] ACPICA: OSL: Cleanup external macros and add stubs for macros Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 05/15] ACPICA: OSL: Add configurability to error message functions Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 06/15] ACPICA: OSL: Add configurability to debug output functions Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 07/15] ACPICA: OSL: Add configurability mechanism for external APIs Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 08/15] ACPICA: OSL: Updates ACPI_EXTERNAL_RETURN_x usages " Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 09/15] ACPICA: Linux: Add stub support for Linux specific variables and functions Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 10/15] ACPICA: Linux: Add architecture specific ACPICA headers in Linux Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:06 ` [RFC PATCH 11/15] ACPICA: Linux: Add stub implementation of ACPICA 64-bit mathematics Lv Zheng
2013-12-18  9:06   ` Lv Zheng
2013-12-18  9:07 ` [RFC PATCH 12/15] ACPICA: Linux: Add configuration item to indicate the architecture specific support Lv Zheng
2013-12-18  9:07   ` Lv Zheng
2013-12-18  9:07 ` [RFC PATCH 13/15] ACPICA: Linux: Remove <asm/acpi.h> inclusion from ACPICA headers Lv Zheng
2013-12-18  9:07   ` Lv Zheng
2013-12-18  9:07 ` [RFC PATCH 14/15] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - table definitions Lv Zheng
2013-12-18  9:07   ` Lv Zheng
2013-12-18  9:07 ` [RFC PATCH 15/15] ACPI/thinkpad: Fix wrong <acpi/acpi.h> inclusion in Thinkpad ACPI users Lv Zheng
2013-12-18  9:07 ` Lv Zheng [this message]
2013-12-18  9:07   ` [RFC DBG PATCH] ACPICA: Add CONFIG_ACPI=n build test support Lv Zheng
2013-12-18  9:07   ` Lv Zheng
2013-12-18 11:41   ` [RFC PATCH 15/15] ACPI/thinkpad: Fix wrong <acpi/acpi.h> inclusion in Thinkpad ACPI users Henrique de Moraes Holschuh
2013-12-18 13:06     ` [alsa-devel] " Takashi Iwai
2013-12-20  0:28       ` Zheng, Lv
2013-12-20  0:28         ` Zheng, Lv
2013-12-20  6:52         ` Takashi Iwai
2013-12-20  6:52           ` Takashi Iwai
2013-12-18  9:07 ` Lv Zheng
2013-12-20  8:30 ` [UPDATE RFC " Lv Zheng
2013-12-20  8:30   ` Lv Zheng
2013-12-20  9:15   ` Takashi Iwai
2013-12-20  9:15     ` Takashi Iwai
2014-07-07  4:16 ` [PATCH v2 0/7] ACPICA: Enable ACPICA prototypes for CONFIG_ACPI=n builds Lv Zheng
2014-07-07  4:16   ` Lv Zheng
2014-07-07  4:16   ` Lv Zheng
2014-07-07  4:17   ` [PATCH v2 1/7] ACPICA: Linux: Add stub support for Linux specific variables and functions Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07  4:17   ` [PATCH v2 2/7] ACPICA: Linux: Add stub implementation of ACPICA 64-bit mathematics Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07  4:17   ` [PATCH v2 3/7] ACPICA: Linux: Add configuration item to indicate the architecture specific support Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07  4:17   ` [PATCH v2 4/7] ACPICA: Linux: Allow ACPICA inclusion for CONFIG_ACPI=n builds Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07  4:17   ` [PATCH v2 5/7] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - table definitions Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07 21:25     ` Rafael J. Wysocki
2014-07-08  0:08       ` Zheng, Lv
2014-07-08  0:08         ` Zheng, Lv
2014-07-07  4:17   ` [PATCH v2 6/7] ACPI: Cleanup useless ACPI inclusion Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-07 21:24     ` Rafael J. Wysocki
2014-07-08  0:05       ` Zheng, Lv
2014-07-08  0:05         ` Zheng, Lv
2014-07-07  4:17   ` [PATCH v2 7/7] ACPI: Add support to force header inclusion rules for <acpi/acpi.h> Lv Zheng
2014-07-07  4:17     ` Lv Zheng
2014-07-16  8:57 ` [PATCH v3 0/7] ACPICA: Enable ACPICA prototypes for CONFIG_ACPI=n builds Lv Zheng
2014-07-16  8:57   ` Lv Zheng
2014-07-16  8:57   ` [PATCH v3 1/7] ACPICA: Linux: Add stub support for Linux specific variables and functions Lv Zheng
2014-07-16  8:57     ` Lv Zheng
2014-07-16  8:58   ` [PATCH v3 2/7] ACPICA: Linux: Add stub implementation of ACPICA 64-bit mathematics Lv Zheng
2014-07-16  8:58     ` Lv Zheng
2014-07-19 23:46     ` Rafael J. Wysocki
2014-07-21  1:26       ` Zheng, Lv
2014-07-21  1:26         ` Zheng, Lv
2014-07-22 23:42         ` Rafael J. Wysocki
2014-07-16  8:58   ` [PATCH v3 3/7] ACPICA: Linux: Add support to exclude <asm/acenv.h> inclusion Lv Zheng
2014-07-16  8:58     ` Lv Zheng
2014-07-16  8:58   ` [PATCH v3 4/7] ACPICA: Linux: Allow ACPICA inclusion for CONFIG_ACPI=n builds Lv Zheng
2014-07-16  8:58     ` Lv Zheng
2014-07-16  8:58   ` [PATCH v3 5/7] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - table definitions Lv Zheng
2014-07-16  8:58     ` Lv Zheng
2014-07-16  8:58   ` [PATCH v3 6/7] ACPI: Add support to force header inclusion rules for <acpi/acpi.h> Lv Zheng
2014-07-16  8:58     ` Lv Zheng
2014-07-23  3:53     ` Hanjun Guo
2014-07-16  8:59   ` [PATCH v3 7/7] ACPI: Cleanup useless ACPI inclusion Lv Zheng
2014-07-16  8:59     ` Lv Zheng
2014-07-16 12:07     ` Mark Brown
2014-07-16 21:46       ` Rafael J. Wysocki
2014-07-16 21:34         ` Mark Brown
2014-07-17  1:29           ` Zheng, Lv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f82182940fe88b1b6428eecc2df1cb1684f0ca80.1387336613.git.lv.zheng@intel.com \
    --to=lv.zheng@intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=zetalog@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.