ACPICA: ACPI 6.2: Add support for PinGroup() resource

ACPICA commit 7d928e3174fb19d7dc0066b03c30bea07c001563

ACPI 6.2 introduced a new resource that is used to declare set of pins
belonging to a GPIO controller. This resource is referenced by new
PinGroupFunction() and PinGroupConfig() resources using ResourceSource
and ResourceLabel fields.

The PinGroup() resource looks like this:

  PinGroup (ResourceLabel, ResourceUsage, DescriptorName,
            VendorData) {Pin List}

This resource should be listed in _CRS under the GPIO/pincontroller
device providing these pins.

Link: https://github.com/acpica/acpica/commit/7d928e31
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Mika Westerberg
2017-06-05 16:39:25 +08:00
committed by Rafael J. Wysocki
parent 97028ce6fc
commit fdaa098077
10 changed files with 191 additions and 3 deletions

View File

@@ -75,6 +75,10 @@ static void acpi_rs_dump_short_byte_list(u8 length, u8 *data);
static void
acpi_rs_dump_resource_source(struct acpi_resource_source *resource_source);
static void
acpi_rs_dump_resource_label(char *title,
struct acpi_resource_label *resource_label);
static void acpi_rs_dump_address_common(union acpi_resource_data *resource);
static void
@@ -371,6 +375,16 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)
target));
break;
case ACPI_RSD_LABEL:
/*
* resource_label
*/
acpi_rs_dump_resource_label("Resource Label",
ACPI_CAST_PTR(struct
acpi_resource_label,
target));
break;
default:
acpi_os_printf("**** Invalid table opcode [%X] ****\n",
@@ -412,6 +426,30 @@ acpi_rs_dump_resource_source(struct acpi_resource_source *resource_source)
resource_source->string_ptr : "[Not Specified]");
}
/*******************************************************************************
*
* FUNCTION: acpi_rs_dump_resource_label
*
* PARAMETERS: title - Title of the dumped resource field
* resource_label - Pointer to a Resource Label struct
*
* RETURN: None
*
* DESCRIPTION: Common routine for dumping the resource_label
*
******************************************************************************/
static void
acpi_rs_dump_resource_label(char *title,
struct acpi_resource_label *resource_label)
{
ACPI_FUNCTION_ENTRY();
acpi_rs_out_string(title,
resource_label->string_ptr ?
resource_label->string_ptr : "[Not Specified]");
}
/*******************************************************************************
*
* FUNCTION: acpi_rs_dump_address_common