[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.