linux-kernel.vger.kernel.org archive mirror
 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


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

Thread overview: 50+ 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 ` [RFC PATCH 01/15] ACPICA: OSL: Add configurability mechanism for global variables 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 ` [RFC PATCH 03/15] ACPICA: Linux: Add configurability for OSL APIs 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 ` [RFC PATCH 05/15] ACPICA: OSL: Add configurability to error message functions 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 ` [RFC PATCH 07/15] ACPICA: OSL: Add configurability mechanism for external APIs 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 ` [RFC PATCH 09/15] ACPICA: Linux: Add stub support for Linux specific variables and functions 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 ` [RFC PATCH 11/15] ACPICA: Linux: Add stub implementation of ACPICA 64-bit mathematics 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 ` [RFC PATCH 13/15] ACPICA: Linux: Remove <asm/acpi.h> inclusion from ACPICA headers 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 [this message]
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  6:52         ` Takashi Iwai
2013-12-20  8:30 ` [UPDATE RFC " Lv Zheng
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:17   ` [PATCH v2 1/7] ACPICA: Linux: Add stub support for Linux specific variables and functions 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   ` [PATCH v2 3/7] ACPICA: Linux: Add configuration item to indicate the architecture specific support 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   ` [PATCH v2 5/7] ACPI/SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - table definitions Lv Zheng
2014-07-07 21:25     ` Rafael J. Wysocki
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 21:24     ` Rafael J. Wysocki
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-16  8:57 ` [PATCH v3 0/7] ACPICA: Enable ACPICA prototypes for CONFIG_ACPI=n builds 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:58   ` [PATCH v3 2/7] ACPICA: Linux: Add stub implementation of ACPICA 64-bit mathematics Lv Zheng
2014-07-19 23:46     ` Rafael J. Wysocki
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   ` [PATCH v3 4/7] ACPICA: Linux: Allow ACPICA inclusion for CONFIG_ACPI=n builds 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   ` [PATCH v3 6/7] ACPI: Add support to force header inclusion rules for <acpi/acpi.h> 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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).