#
# ACPI Boot-Time Table Parsing
#
+++ifeq ($(CONFIG_ACPI_CUSTOM_DSDT),y)
+++tables.o: $(src)/../../include/$(subst $\",,$(CONFIG_ACPI_CUSTOM_DSDT_FILE)) ;
+++
+++endif
+++
obj-$(CONFIG_ACPI) += tables.o
obj-$(CONFIG_X86) += blacklist.o
acpi-$(CONFIG_ACPI_LPIT) += acpi_lpit.o
acpi-$(CONFIG_ACPI_GENERIC_GSI) += irq.o
acpi-$(CONFIG_ACPI_WATCHDOG) += acpi_watchdog.o
+ ++acpi-$(CONFIG_ACPI_PRMT) += prmt.o
# Address translation
acpi-$(CONFIG_ACPI_ADXL) += acpi_adxl.o
#include <linux/pci.h>
#include <acpi/apei.h>
#include <linux/suspend.h>
+ ++#include <linux/prmt.h>
#include "internal.h"
out_kfree:
kfree(output.pointer);
--- if (status != AE_OK)
--- context->ret.pointer = NULL;
return status;
}
EXPORT_SYMBOL(acpi_run_osc);
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_HOTPLUG_OST_SUPPORT;
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PCLPI_SUPPORT;
+ ++ capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PRM_SUPPORT;
#ifdef CONFIG_ARM64
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_GENERIC_INITIATOR_SUPPORT;
if (ACPI_FAILURE(acpi_run_osc(handle, &context)))
return;
--- capbuf_ret = context.ret.pointer;
--- if (context.ret.length <= OSC_SUPPORT_DWORD) {
--- kfree(context.ret.pointer);
--- return;
--- }
+++ kfree(context.ret.pointer);
--- /*
--- * Now run _OSC again with query flag clear and with the caps
--- * supported by both the OS and the platform.
--- */
+++ /* Now run _OSC again with query flag clear */
capbuf[OSC_QUERY_DWORD] = 0;
--- capbuf[OSC_SUPPORT_DWORD] = capbuf_ret[OSC_SUPPORT_DWORD];
--- kfree(context.ret.pointer);
if (ACPI_FAILURE(acpi_run_osc(handle, &context)))
return;
capbuf_ret = context.ret.pointer;
--- if (context.ret.length > OSC_SUPPORT_DWORD) {
--- osc_sb_apei_support_acked =
--- capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_APEI_SUPPORT;
--- osc_pc_lpi_support_confirmed =
--- capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_PCLPI_SUPPORT;
--- osc_sb_native_usb4_support_confirmed =
--- capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_NATIVE_USB4_SUPPORT;
--- }
+++ osc_sb_apei_support_acked =
+++ capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_APEI_SUPPORT;
+++ osc_pc_lpi_support_confirmed =
+++ capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_PCLPI_SUPPORT;
+++ osc_sb_native_usb4_support_confirmed =
+++ capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_NATIVE_USB4_SUPPORT;
kfree(context.ret.pointer);
}
static acpi_status acpi_bus_table_handler(u32 event, void *table, void *context)
{
--- acpi_scan_table_handler(event, table, context);
+++ if (event == ACPI_TABLE_EVENT_LOAD)
+++ acpi_scan_table_notify();
return acpi_sysfs_table_handler(event, table, context);
}
acpi_kobj = NULL;
}
+ ++ init_prmt();
result = acpi_bus_init();
if (result) {
disable_acpi();
union acpi_subtable_headers {
struct acpi_subtable_header common;
struct acpi_hmat_structure hmat;
+ ++ struct acpi_prmt_module_header prmt;
};
typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *table);
#define OSC_SB_OSLPI_SUPPORT 0x00000100
#define OSC_SB_CPC_DIVERSE_HIGH_SUPPORT 0x00001000
#define OSC_SB_GENERIC_INITIATOR_SUPPORT 0x00002000
+ ++#define OSC_SB_PRM_SUPPORT 0x00020000
#define OSC_SB_NATIVE_USB4_SUPPORT 0x00040000
extern bool osc_sb_apei_support_acked;
const struct device_driver *drv);
int acpi_device_uevent_modalias(struct device *, struct kobj_uevent_env *);
int acpi_device_modalias(struct device *, char *, int);
---void acpi_walk_dep_device_list(acpi_handle handle);
struct platform_device *acpi_create_platform_device(struct acpi_device *,
struct property_entry *);