|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Add optional ACPI device for Windows Continuum
On 13/07/16 10:16, Owen Smith wrote:
> Windows 10 supports a specific ACPI device for handling the
> switch between tablet mode and desktop mode. The meer existance
> of this device is the mimimum to allow tablet/desktop mode to
> be switched.
> Tablet mode referes to the "undocked" state where all applications
> are forced full screen and additional touch screen elements are
> added, such as touch keyboard, larger icons and menus, and touch
> gestures for ease of use.
>
> Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
Are there any docs which can be referenced about this device?
> ---
> tools/firmware/hvmloader/acpi/Makefile | 4 ++--
> tools/firmware/hvmloader/acpi/build.c | 11 ++++++++++
> tools/firmware/hvmloader/acpi/ssdt_conv.asl | 31
> +++++++++++++++++++++++++++++
> tools/libxl/libxl_types.idl | 1 +
> tools/libxl/xl_cmdimpl.c | 1 +
> 5 files changed, 46 insertions(+), 2 deletions(-)
> create mode 100644 tools/firmware/hvmloader/acpi/ssdt_conv.asl
>
> diff --git a/tools/firmware/hvmloader/acpi/Makefile
> b/tools/firmware/hvmloader/acpi/Makefile
> index d3e882a..d75c7af 100644
> --- a/tools/firmware/hvmloader/acpi/Makefile
> +++ b/tools/firmware/hvmloader/acpi/Makefile
> @@ -25,7 +25,7 @@ CFLAGS += $(CFLAGS_xeninclude)
> vpath iasl $(PATH)
> all: acpi.a
>
> -ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl
> +ssdt_s3.h ssdt_s4.h ssdt_conv.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl iasl
> iasl -vs -p $* -tc $<
> sed -e 's/AmlCode/$*/g' $*.hex >$@
> rm -f $*.hex $*.aml
> @@ -56,7 +56,7 @@ iasl:
> @echo
> @exit 1
>
> -build.o: ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h
> +build.o: ssdt_s3.h ssdt_s4.h ssdt_conv.h ssdt_pm.h ssdt_tpm.h
>
> acpi.a: $(OBJS)
> $(AR) rc $@ $(OBJS)
> diff --git a/tools/firmware/hvmloader/acpi/build.c
> b/tools/firmware/hvmloader/acpi/build.c
> index 1f7103e..6485ac8 100644
> --- a/tools/firmware/hvmloader/acpi/build.c
> +++ b/tools/firmware/hvmloader/acpi/build.c
> @@ -18,6 +18,7 @@
> #include "acpi2_0.h"
> #include "ssdt_s3.h"
> #include "ssdt_s4.h"
> +#include "ssdt_conv.h"
> #include "ssdt_tpm.h"
> #include "ssdt_pm.h"
> #include "../config.h"
> @@ -398,6 +399,16 @@ static int construct_secondary_tables(unsigned long
> *table_ptrs,
> printf("S4 disabled\n");
> }
>
> + if ( !strncmp(xenstore_read("platform/acpi_conv", "1"), "1", 1) )
> + {
> + ssdt = mem_alloc(sizeof(ssdt_conv), 16);
> + if (!ssdt) return -1;
> + memcpy(ssdt, ssdt_conv, sizeof(ssdt_conv));
> + table_ptrs[nr_tables++] = (unsigned long)ssdt;
> + } else {
> + printf("Conv disabled\n");
> + }
I would drop this else clause. It isn't interesting in the general
case, and anyone who doesn't know exactly what Conv is will be confused
by it.
> +
> /* TPM TCPA and SSDT. */
> tis_hdr = (uint16_t *)0xFED40F00;
> if ( (tis_hdr[0] == tis_signature[0]) &&
> diff --git a/tools/firmware/hvmloader/acpi/ssdt_conv.asl
> b/tools/firmware/hvmloader/acpi/ssdt_conv.asl
> new file mode 100644
> index 0000000..6e20340
> --- /dev/null
> +++ b/tools/firmware/hvmloader/acpi/ssdt_conv.asl
> @@ -0,0 +1,31 @@
> +/*
> + * ssdt_conv.asl
> + *
> + * Copyright (c) 2015 Citrix Systems, Inc.
Year.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; If not, see <http://www.gnu.org/licenses/>.
Be aware that there is currently an ongoing effort to re-licence all the
apci work as LGPL, and move the acpi/ subdirectory into being a separate
standalone library.
~Andrew
> + */
> +
> +DefinitionBlock ("SSDT_CONV.aml", "SSDT", 2, "Xen", "HVM", 0)
> +{
> + Device(CONV)
> + {
> + Method(_HID, 0x0, NotSerialized)
> + {
> + Return("ID9001")
> + }
> + Name(_CID, "PNP0C60")
> + }
> +}
> +
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |