All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zheng, Lv" <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>,
	Matt Fleming <matt@codeblueprint.co.uk>,
	Mark Brown <broonie@kernel.org>, Wolfram Sang <wsa@the-dreams.de>
Cc: Joel Becker <jlbec@evilplan.org>, Christoph Hellwig <hch@lst.de>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
	"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Tirdea, Irina" <irina.tirdea@intel.com>,
	"Purdila, Octavian" <octavian.purdila@intel.com>
Subject: RE: [RFC PATCH 02/10] acpi: install SSDT tables from initrd
Date: Fri, 1 Apr 2016 05:05:03 +0000	[thread overview]
Message-ID: <1AE640813FDE7649BE1B193DEA596E883BB66258@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <1459417026-6697-3-git-send-email-octavian.purdila@intel.com>

Hi,

IMO, there is already a similar function upstreamed:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c85cc81
Could it work for your use case?

> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Octavian Purdila
> Subject: [RFC PATCH 02/10] acpi: install SSDT tables from initrd
> 
> This patch allows loading user defined SSDTs from the first,
> uncompressed, initrd. The SSDT aml code must be stored in files under
> the /kernel/firmware/acpi/overlay path.
> 
> Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
> ---
>  Documentation/acpi/ssdt-overlays.txt | 94
> ++++++++++++++++++++++++++++++++++++
>  drivers/acpi/bus.c                   | 63 ++++++++++++++++++++++++
>  2 files changed, 157 insertions(+)
>  create mode 100644 Documentation/acpi/ssdt-overlays.txt
> 
> diff --git a/Documentation/acpi/ssdt-overlays.txt b/Documentation/acpi/ssdt-
> overlays.txt
> new file mode 100644
> index 0000000..a94c3f9
> --- /dev/null
> +++ b/Documentation/acpi/ssdt-overlays.txt
> @@ -0,0 +1,94 @@
> +
> +In order to support ACPI open-ended hardware configurations (e.g.
> development
> +boards) we need a way to augment the ACPI configuration provided by the
> firmware
> +image. A common example is connecting sensors on I2C / SPI buses on
> development
> +boards.
> +
> +Although this can be accomplished by creating a kernel platform driver or
> +recompiling the firmware image with updated ACPI tables, neither is practical:
> +the former proliferates board specific kernel code while the latter requires
> +access to firmware tools which are often not publicly available.
> +
> +Because ACPI supports external references in AML code a more practical
> +way to augment firmware ACPI configuration is by dynamically loading
> +user defined SSDT tables that contain the board specific information.
> +
> +For example, to enumerate a Bosch BMA222E accelerometer on the I2C bus
> of the
> +Minnowboard MAX development board exposed via the LSE connector [1],
> the
> +following ASL code can be used:
> +
> +DefinitionBlock ("minnowmax.aml", "SSDT", 1, "Vendor", "Accel", 0x00000003)
> +{
> +    External (\_SB.I2C6, DeviceObj)
> +
> +    Scope (\_SB.I2C6)
> +    {
> +        Device (STAC)
> +        {
> +            Name (_ADR, Zero)
> +            Name (_HID, "BMA222E")
> +
> +            Method (_CRS, 0, Serialized)
> +            {
> +                Name (RBUF, ResourceTemplate ()
> +                {
> +                    I2cSerialBus (0x0018, ControllerInitiated, 0x00061A80,
> +                                  AddressingMode7Bit, "\\_SB.I2C6", 0x00,
> +                                  ResourceConsumer, ,)
> +                    GpioInt (Edge, ActiveHigh, Exclusive, PullDown, 0x0000,
> +                             "\\_SB.GPO2", 0x00, ResourceConsumer, , )
> +                    { // Pin list
> +                        0
> +                    }
> +                })
> +                Return (RBUF)
> +            }
> +        }
> +    }
> +}
> +
> +which can then be compiled to AML binary format:
> +
> +$ iasl minnowmax.asl
> +
> +Intel ACPI Component Architecture
> +ASL Optimizing Compiler version 20140214-64 [Mar 29 2014]
> +Copyright (c) 2000 - 2014 Intel Corporation
> +
> +ASL Input:     minnomax.asl - 30 lines, 614 bytes, 7 keywords
> +AML Output:    minnowmax.aml - 165 bytes, 6 named objects, 1 executable
> opcodes
> +
> +[1]
> http://wiki.minnowboard.org/MinnowBoard_MAX#Low_Speed_Expansion_Co
> nnector_.28Top.29
> +
> +The resulting AML code can then be loaded by the kernel using one of the
> methods
> +below.
> +
> +== Loading ACPI SSDTs from initrd ==
> +
> +This option allows loading of user defined SSDTs from initrd and it is useful
> +when the system does not support EFI or when there is not enough EFI
> storage.
> +
> +It works in a similar way with initrd based ACPI tables overrides: SSDT aml
> code
> +must be placed in the first, uncompressed, initrd under the
> +"kernel/firmware/acpi/overlay" path. We use a different path than the initrd
> +tables override to avoid conflicts with the override feature.
> +
> +Multiple files can be used and this will translate in loading multiple
> +tables. Only tables with the SSDT signature will be loaded.
> +
> +Here is an example:
> +
> +# Add the raw ACPI tables to an uncompressed cpio archive.
> +# They must be put into a /kernel/firmware/acpi/overlay directory inside the
> +# cpio archive.
> +# The uncompressed cpio archive must be the first.
> +# Other, typically compressed cpio archives, must be
> +# concatenated on top of the uncompressed one.
> +mkdir -p kernel/firmware/acpi
> +cp ssdt.aml kernel/firmware/acpi
> +
> +# Create the uncompressed cpio archive and concatenate the original initrd
> +# on top:
> +find kernel | cpio -H newc --create > /boot/instrumented_initrd
> +cat /boot/initrd >>/boot/instrumented_initrd
> +
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index 891c42d..5e0d076 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -37,9 +37,14 @@
>  #include <acpi/apei.h>
>  #include <linux/dmi.h>
>  #include <linux/suspend.h>
> +#include <linux/initrd.h>
> +#include <linux/earlycpio.h>
> 
>  #include "internal.h"
> 
> +#undef pr_fmt
> +#define pr_fmt(fmt) "ACPI: " fmt
> +
>  #define _COMPONENT		ACPI_BUS_COMPONENT
>  ACPI_MODULE_NAME("bus");
> 
> @@ -863,6 +868,62 @@ static int __init acpi_bus_init_irq(void)
>  	return 0;
>  }
> 
> +void __init acpi_load_initrd_ssdts(void)
> +{
> +	void *data = (void *)initrd_start;
> +	int size = initrd_end - initrd_start;
> +	const char *path = "kernel/firmware/acpi/overlay";
> +	long offset = 0;
> +	struct cpio_data file;
> +	struct acpi_table_header *header;
> +	void *table;
> +	acpi_status status;
> +
> +	while (true) {
> +		file = find_cpio_data(path, data, size, &offset);
> +		if (!file.data)
> +			break;
> +
> +		data += offset;
> +		size -= offset;
> +
> +		if (file.size < sizeof(struct acpi_table_header)) {
> +			pr_err("initrd table smaller than ACPI header
> [%s%s]\n",
> +			       path, file.name);
> +			continue;
> +		}
> +
> +		header = file.data;
> +
> +		if (file.size != header->length) {
> +			pr_err("initrd file / table length mismatch [%s%s]\n",
> +			       path, file.name);
> +			continue;
> +		}
> +
> +		if (memcmp(header->signature, ACPI_SIG_SSDT, 4)) {
> +			pr_warn("skipping non-SSDT initrd table [%s%s]\n",
> +				path, file.name);
> +			continue;
> +		}
> +
> +		table = kmemdup(file.data, file.size, GFP_KERNEL);
> +		if (!table)
> +			continue;
> +
> +		status = acpi_install_table((uintptr_t)table, 0);
> +		if (ACPI_FAILURE(status)) {
> +			pr_err("failed to install SSDT from initrd [%s%s]\n",
> +			       path, file.name);
> +			kfree(table);
> +		}
> +
> +		pr_info("installed SSDT table found in initrd [%s%s][0x%x]\n",
> +			path, file.name, header->length);
> +		add_taint(TAINT_OVERLAY_ACPI_TABLE, LOCKDEP_STILL_OK);
> +	}
> +}
> +
[Lv Zheng] 
I can see that this is so similar to the acpi_initrd_initialize_tables() which is in the drivers/acpi/osl.c.
Please check.

Thanks and best regards
-Lv

>  /**
>   * acpi_early_init - Initialize ACPICA and populate the ACPI namespace.
>   *
> @@ -911,6 +972,8 @@ void __init acpi_early_init(void)
>  		goto error0;
>  	}
> 
> +	acpi_load_initrd_ssdts();
> +
>  	status = acpi_load_tables();
>  	if (ACPI_FAILURE(status)) {
>  		printk(KERN_ERR PREFIX
> --
> 1.9.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: "Zheng, Lv" <lv.zheng@intel.com>
To: "Purdila, Octavian" <octavian.purdila@intel.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>,
	Matt Fleming <matt@codeblueprint.co.uk>,
	Mark Brown <broonie@kernel.org>, Wolfram Sang <wsa@the-dreams.de>
Cc: Joel Becker <jlbec@evilplan.org>, Christoph Hellwig <hch@lst.de>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
	"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Tirdea, Irina" <irina.tirdea@intel.com>,
	"Purdila, Octavian" <octavian.purdila@intel.com>
Subject: RE: [RFC PATCH 02/10] acpi: install SSDT tables from initrd
Date: Fri, 1 Apr 2016 05:05:03 +0000	[thread overview]
Message-ID: <1AE640813FDE7649BE1B193DEA596E883BB66258@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <1459417026-6697-3-git-send-email-octavian.purdila@intel.com>

Hi,

IMO, there is already a similar function upstreamed:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c85cc81
Could it work for your use case?

> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Octavian Purdila
> Subject: [RFC PATCH 02/10] acpi: install SSDT tables from initrd
> 
> This patch allows loading user defined SSDTs from the first,
> uncompressed, initrd. The SSDT aml code must be stored in files under
> the /kernel/firmware/acpi/overlay path.
> 
> Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
> ---
>  Documentation/acpi/ssdt-overlays.txt | 94
> ++++++++++++++++++++++++++++++++++++
>  drivers/acpi/bus.c                   | 63 ++++++++++++++++++++++++
>  2 files changed, 157 insertions(+)
>  create mode 100644 Documentation/acpi/ssdt-overlays.txt
> 
> diff --git a/Documentation/acpi/ssdt-overlays.txt b/Documentation/acpi/ssdt-
> overlays.txt
> new file mode 100644
> index 0000000..a94c3f9
> --- /dev/null
> +++ b/Documentation/acpi/ssdt-overlays.txt
> @@ -0,0 +1,94 @@
> +
> +In order to support ACPI open-ended hardware configurations (e.g.
> development
> +boards) we need a way to augment the ACPI configuration provided by the
> firmware
> +image. A common example is connecting sensors on I2C / SPI buses on
> development
> +boards.
> +
> +Although this can be accomplished by creating a kernel platform driver or
> +recompiling the firmware image with updated ACPI tables, neither is practical:
> +the former proliferates board specific kernel code while the latter requires
> +access to firmware tools which are often not publicly available.
> +
> +Because ACPI supports external references in AML code a more practical
> +way to augment firmware ACPI configuration is by dynamically loading
> +user defined SSDT tables that contain the board specific information.
> +
> +For example, to enumerate a Bosch BMA222E accelerometer on the I2C bus
> of the
> +Minnowboard MAX development board exposed via the LSE connector [1],
> the
> +following ASL code can be used:
> +
> +DefinitionBlock ("minnowmax.aml", "SSDT", 1, "Vendor", "Accel", 0x00000003)
> +{
> +    External (\_SB.I2C6, DeviceObj)
> +
> +    Scope (\_SB.I2C6)
> +    {
> +        Device (STAC)
> +        {
> +            Name (_ADR, Zero)
> +            Name (_HID, "BMA222E")
> +
> +            Method (_CRS, 0, Serialized)
> +            {
> +                Name (RBUF, ResourceTemplate ()
> +                {
> +                    I2cSerialBus (0x0018, ControllerInitiated, 0x00061A80,
> +                                  AddressingMode7Bit, "\\_SB.I2C6", 0x00,
> +                                  ResourceConsumer, ,)
> +                    GpioInt (Edge, ActiveHigh, Exclusive, PullDown, 0x0000,
> +                             "\\_SB.GPO2", 0x00, ResourceConsumer, , )
> +                    { // Pin list
> +                        0
> +                    }
> +                })
> +                Return (RBUF)
> +            }
> +        }
> +    }
> +}
> +
> +which can then be compiled to AML binary format:
> +
> +$ iasl minnowmax.asl
> +
> +Intel ACPI Component Architecture
> +ASL Optimizing Compiler version 20140214-64 [Mar 29 2014]
> +Copyright (c) 2000 - 2014 Intel Corporation
> +
> +ASL Input:     minnomax.asl - 30 lines, 614 bytes, 7 keywords
> +AML Output:    minnowmax.aml - 165 bytes, 6 named objects, 1 executable
> opcodes
> +
> +[1]
> http://wiki.minnowboard.org/MinnowBoard_MAX#Low_Speed_Expansion_Co
> nnector_.28Top.29
> +
> +The resulting AML code can then be loaded by the kernel using one of the
> methods
> +below.
> +
> +== Loading ACPI SSDTs from initrd ==
> +
> +This option allows loading of user defined SSDTs from initrd and it is useful
> +when the system does not support EFI or when there is not enough EFI
> storage.
> +
> +It works in a similar way with initrd based ACPI tables overrides: SSDT aml
> code
> +must be placed in the first, uncompressed, initrd under the
> +"kernel/firmware/acpi/overlay" path. We use a different path than the initrd
> +tables override to avoid conflicts with the override feature.
> +
> +Multiple files can be used and this will translate in loading multiple
> +tables. Only tables with the SSDT signature will be loaded.
> +
> +Here is an example:
> +
> +# Add the raw ACPI tables to an uncompressed cpio archive.
> +# They must be put into a /kernel/firmware/acpi/overlay directory inside the
> +# cpio archive.
> +# The uncompressed cpio archive must be the first.
> +# Other, typically compressed cpio archives, must be
> +# concatenated on top of the uncompressed one.
> +mkdir -p kernel/firmware/acpi
> +cp ssdt.aml kernel/firmware/acpi
> +
> +# Create the uncompressed cpio archive and concatenate the original initrd
> +# on top:
> +find kernel | cpio -H newc --create > /boot/instrumented_initrd
> +cat /boot/initrd >>/boot/instrumented_initrd
> +
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index 891c42d..5e0d076 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -37,9 +37,14 @@
>  #include <acpi/apei.h>
>  #include <linux/dmi.h>
>  #include <linux/suspend.h>
> +#include <linux/initrd.h>
> +#include <linux/earlycpio.h>
> 
>  #include "internal.h"
> 
> +#undef pr_fmt
> +#define pr_fmt(fmt) "ACPI: " fmt
> +
>  #define _COMPONENT		ACPI_BUS_COMPONENT
>  ACPI_MODULE_NAME("bus");
> 
> @@ -863,6 +868,62 @@ static int __init acpi_bus_init_irq(void)
>  	return 0;
>  }
> 
> +void __init acpi_load_initrd_ssdts(void)
> +{
> +	void *data = (void *)initrd_start;
> +	int size = initrd_end - initrd_start;
> +	const char *path = "kernel/firmware/acpi/overlay";
> +	long offset = 0;
> +	struct cpio_data file;
> +	struct acpi_table_header *header;
> +	void *table;
> +	acpi_status status;
> +
> +	while (true) {
> +		file = find_cpio_data(path, data, size, &offset);
> +		if (!file.data)
> +			break;
> +
> +		data += offset;
> +		size -= offset;
> +
> +		if (file.size < sizeof(struct acpi_table_header)) {
> +			pr_err("initrd table smaller than ACPI header
> [%s%s]\n",
> +			       path, file.name);
> +			continue;
> +		}
> +
> +		header = file.data;
> +
> +		if (file.size != header->length) {
> +			pr_err("initrd file / table length mismatch [%s%s]\n",
> +			       path, file.name);
> +			continue;
> +		}
> +
> +		if (memcmp(header->signature, ACPI_SIG_SSDT, 4)) {
> +			pr_warn("skipping non-SSDT initrd table [%s%s]\n",
> +				path, file.name);
> +			continue;
> +		}
> +
> +		table = kmemdup(file.data, file.size, GFP_KERNEL);
> +		if (!table)
> +			continue;
> +
> +		status = acpi_install_table((uintptr_t)table, 0);
> +		if (ACPI_FAILURE(status)) {
> +			pr_err("failed to install SSDT from initrd [%s%s]\n",
> +			       path, file.name);
> +			kfree(table);
> +		}
> +
> +		pr_info("installed SSDT table found in initrd [%s%s][0x%x]\n",
> +			path, file.name, header->length);
> +		add_taint(TAINT_OVERLAY_ACPI_TABLE, LOCKDEP_STILL_OK);
> +	}
> +}
> +
[Lv Zheng] 
I can see that this is so similar to the acpi_initrd_initialize_tables() which is in the drivers/acpi/osl.c.
Please check.

Thanks and best regards
-Lv

>  /**
>   * acpi_early_init - Initialize ACPICA and populate the ACPI namespace.
>   *
> @@ -911,6 +972,8 @@ void __init acpi_early_init(void)
>  		goto error0;
>  	}
> 
> +	acpi_load_initrd_ssdts();
> +
>  	status = acpi_load_tables();
>  	if (ACPI_FAILURE(status)) {
>  		printk(KERN_ERR PREFIX
> --
> 1.9.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-04-01  5:05 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-31  9:36 [RFC PATCH 00/10] ACPI overlays Octavian Purdila
2016-03-31  9:36 ` [RFC PATCH 01/10] kernel: add TAINT_OVERLAY_ACPI_TABLE Octavian Purdila
2016-03-31  9:36 ` [RFC PATCH 02/10] acpi: install SSDT tables from initrd Octavian Purdila
2016-04-01  5:05   ` Zheng, Lv [this message]
2016-04-01  5:05     ` Zheng, Lv
2016-04-01 10:11     ` Octavian Purdila
     [not found]       ` <CAE1zotJ1fa4m-_FO3PUQK8_p0vHcfWD5TmuMdxOSHDjku421pA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-04 13:07         ` Octavian Purdila
2016-04-04 13:07           ` Octavian Purdila
2016-04-05  0:49           ` Zheng, Lv
2016-04-05  7:23             ` Octavian Purdila
2016-04-06  6:15               ` Zheng, Lv
2016-04-05  0:57         ` Zheng, Lv
2016-04-05  0:57           ` Zheng, Lv
2016-03-31  9:36 ` [RFC PATCH 03/10] acpi: add support for ACPI reconfiguration notifiers Octavian Purdila
2016-03-31  9:37 ` [RFC PATCH 04/10] acpi: fix enumeration (visited) flags for bus rescans Octavian Purdila
2016-03-31  9:37 ` [RFC PATCH 05/10] i2c: add support for ACPI reconfigure notifications Octavian Purdila
2016-03-31  9:37 ` [RFC PATCH 06/10] spi: " Octavian Purdila
     [not found]   ` <1459417026-6697-7-git-send-email-octavian.purdila-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-31 17:29     ` Mark Brown
2016-03-31 17:29       ` Mark Brown
2016-04-01 10:54       ` Octavian Purdila
2016-04-01 14:08         ` Mark Brown
2016-04-01 19:26           ` Rafael J. Wysocki
2016-04-02 16:24             ` Mark Brown
2016-04-04 10:25               ` Octavian Purdila
2016-04-04 16:03                 ` Mark Brown
2016-04-04 19:34                   ` Octavian Purdila
     [not found]                     ` <CAE1zot+ESGBEYeUbLTreKfkc-6B45uQq3PWhhRfBo1AWd-7Vxw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-04 21:18                       ` Rafael J. Wysocki
2016-04-04 21:18                         ` Rafael J. Wysocki
     [not found]                         ` <CAJZ5v0gV8N6zgVrwtRFaY98Wv1HsoKs+4=U-s_V29FSpCdFW3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-05 11:49                           ` Octavian Purdila
2016-04-05 11:49                             ` Octavian Purdila
2016-04-05 18:32                             ` Mark Brown
     [not found]                               ` <20160405183255.GH1924-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2016-04-05 19:16                                 ` Octavian Purdila
2016-04-05 19:16                                   ` Octavian Purdila
     [not found]                                   ` <CAE1zotL7X+di4rHecRW_G-45wUPbbNb9jvn3C_zjD4XttZ4v3w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-05 21:20                                     ` Mark Brown
2016-04-05 21:20                                       ` Mark Brown
2016-04-05 18:24                       ` Mark Brown
2016-04-05 18:24                         ` Mark Brown
     [not found] ` <1459417026-6697-1-git-send-email-octavian.purdila-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-31  9:37   ` [RFC PATCH 07/10] efi: load SSTDs from EFI variables Octavian Purdila
2016-03-31  9:37     ` Octavian Purdila
2016-03-31  9:37 ` [RFC PATCH 08/10] configfs: fix CONFIGFS_BIN_ATTR_[RW]O definitions Octavian Purdila
2016-03-31  9:37 ` [RFC PATCH 09/10] acpi: add support for configfs Octavian Purdila
2016-03-31  9:37 ` [RFC PATCH 10/10] acpi: add support for loading SSDTs via configfs Octavian Purdila
     [not found]   ` <1459417026-6697-11-git-send-email-octavian.purdila-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-01  4:55     ` Zheng, Lv
2016-04-01  4:55       ` Zheng, Lv
2016-04-01  4:55       ` Zheng, Lv
     [not found]       ` <1AE640813FDE7649BE1B193DEA596E883BB66233-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-04-01 10:01         ` Octavian Purdila
2016-04-01 10:01           ` Octavian Purdila
2016-04-05  3:11           ` Zheng, Lv
     [not found]             ` <1AE640813FDE7649BE1B193DEA596E883BB6677B-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-04-05  8:21               ` Octavian Purdila
2016-04-05  8:21                 ` Octavian Purdila
2016-04-06  6:05                 ` Zheng, Lv
     [not found]                   ` <1AE640813FDE7649BE1B193DEA596E883BB66B8C-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-04-06 18:46                     ` Octavian Purdila
2016-04-06 18:46                       ` Octavian Purdila
     [not found]                       ` <CAE1zotKa+t5cxznWfPyQ599k9ZB=akOuEDZusWcJgzux8wqp5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-07  2:42                         ` Zheng, Lv
2016-04-07  2:42                           ` 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=1AE640813FDE7649BE1B193DEA596E883BB66258@SHSMSX101.ccr.corp.intel.com \
    --to=lv.zheng@intel.com \
    --cc=broonie@kernel.org \
    --cc=hch@lst.de \
    --cc=irina.tirdea@intel.com \
    --cc=jlbec@evilplan.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=octavian.purdila@intel.com \
    --cc=rjw@rjwysocki.net \
    --cc=wsa@the-dreams.de \
    /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.