Additional ACPI updates for 5.7-rc1
- Update the ACPICA code in the kernel to upstream revision 20200326 including: * Fix for a typo in a comment field (Bob Moore). * acpiExec namespace init file fixes (Bob Moore). * Addition of NHLT to the known tables list (Cezary Rojewski). * Conversion of PlatformCommChannel ASL keyword to PCC (Erik Kaneda). * acpiexec cleanup (Erik Kaneda). * WSMT-related typo fix (Erik Kaneda). * sprintf() utility function fix (John Levon). * IVRS IVHD type 11h parsing implementation (Michał Żygowski). * IVRS IVHD type 10h reserved field name fix (Michał Żygowski). - Fix ACPI-related CPU hotplug deadlock on x86 (Qian Cai). - Fix Intel Tiger Lake ACPI device IDs in several places (Gayatri Kammela). - Add ACPI backlight blacklist entry for Acer Aspire 5783z (Hans de Goede). - Fix documentation of the "acpi_backlight" kernel command line switch (Randy Dunlap). - Clean up the acpi_get_psd_map() CPPC library routine (Liguang Zhang). -----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEE4fcc61cGeeHD/fCwgsRv/nhiVHEFAl6LQEASHHJqd0Byand5 c29ja2kubmV0AAoJEILEb/54YlRxqfoQAI/GPq7xhb8jOofmTfLxa4ahO2NDxK1E Ye4Tcm8JLv78hro7iMUlbPsRXm15lyDxMldGRfxsiLFTF2xQtYhdTnPx+KZ439j+ QokMHUT6gFEMAV7OPFvXd2r58ShJJHezobbn241zTILx1c3ai66dCQrqyhYjlZ28 0hUCyY4ilgXWuYInlckGW3Rp/Qxc9IVOxzFUV90EW9pTb4vKzoqznjNm+dpY8rHm QFNb2BkTJygOPmJiumi/yJX+74YSZrzW5fS1PDQS4Lr46j0imvWVVataMd1qbQ0+ fDhvhL7IimHiM/qZg67hKpsAt6AcQPhaZ6JyoEGUoafxpBQN0a7b5rMwmL0P/HWV pL5mKM+jc7zh0HTb+xkpNotJxT+KBFo1jTRxGyVAnK8SThzlyFhKhetiOwaHCIDv dNYao6bCNsuGLh3T/09xbAmEeCSt7k+ok892N4o9wzqNfoDg6fX/c0M5ZD1F+Awb l9agU7XChziyDJwAqTbqndx71DK4ALrhZa1tNKA5PGTY8b5XrojoKsOyYk6PYA1x CqU20muRV4VAzB0pvdiwBc2Yrtfiv32mv5jMNrqrrv3D6S6R8vBUNhHlWKu/75a9 9muIoEHWnK0/a9kmVJG8CUSXTTTPQpvOovesznruTxvGx3Mp9gw+d3/1tjuA/QNM ZoOOru5AEyi+ =b3Dp -----END PGP SIGNATURE----- Merge tag 'acpi-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull more ACPI updates from Rafael Wysocki: "Additional ACPI updates. These update the ACPICA code in the kernel to the 20200326 upstream revision, fix an ACPI-related CPU hotplug deadlock on x86, update Intel Tiger Lake device IDs in some places, add a new ACPI backlight blacklist entry, update the "acpi_backlight" kernel command line switch documentation and clean up a CPPC library routine. Specifics: - Update the ACPICA code in the kernel to upstream revision 20200326 including: * Fix for a typo in a comment field (Bob Moore) * acpiExec namespace init file fixes (Bob Moore) * Addition of NHLT to the known tables list (Cezary Rojewski) * Conversion of PlatformCommChannel ASL keyword to PCC (Erik Kaneda) * acpiexec cleanup (Erik Kaneda) * WSMT-related typo fix (Erik Kaneda) * sprintf() utility function fix (John Levon) * IVRS IVHD type 11h parsing implementation (Michał Żygowski) * IVRS IVHD type 10h reserved field name fix (Michał Żygowski) - Fix ACPI-related CPU hotplug deadlock on x86 (Qian Cai) - Fix Intel Tiger Lake ACPI device IDs in several places (Gayatri Kammela) - Add ACPI backlight blacklist entry for Acer Aspire 5783z (Hans de Goede) - Fix documentation of the "acpi_backlight" kernel command line switch (Randy Dunlap) - Clean up the acpi_get_psd_map() CPPC library routine (Liguang Zhang)" * tag 'acpi-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: x86: ACPI: fix CPU hotplug deadlock thermal: int340x_thermal: fix: Update Tiger Lake ACPI device IDs platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID ACPI: Update Tiger Lake ACPI device IDs ACPI: video: Use native backlight on Acer Aspire 5783z ACPI: video: Docs update for "acpi_backlight" kernel parameter options ACPICA: Update version 20200326 ACPICA: Fixes for acpiExec namespace init file ACPICA: Add NHLT table signature ACPICA: WSMT: Fix typo, no functional change ACPICA: utilities: fix sprintf() ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support ACPICA: Change PlatformCommChannel ASL keyword to PCC ACPICA: Fix IVRS IVHD type 10h reserved field name ACPICA: Implement IVRS IVHD type 11h parsing ACPICA: Fix a typo in a comment field ACPI: CPPC: clean up acpi_get_psd_map()
This commit is contained in:
Коммит
7e63420847
|
@ -22,11 +22,13 @@
|
|||
default: 0
|
||||
|
||||
acpi_backlight= [HW,ACPI]
|
||||
acpi_backlight=vendor
|
||||
acpi_backlight=video
|
||||
If set to vendor, prefer vendor specific driver
|
||||
{ vendor | video | native | none }
|
||||
If set to vendor, prefer vendor-specific driver
|
||||
(e.g. thinkpad_acpi, sony_acpi, etc.) instead
|
||||
of the ACPI video.ko driver.
|
||||
If set to video, use the ACPI video.ko driver.
|
||||
If set to native, use the device's native backlight mode.
|
||||
If set to none, disable the ACPI backlight interface.
|
||||
|
||||
acpi_force_32bit_fadt_addr
|
||||
force FADT to use 32 bit addresses rather than the
|
||||
|
|
|
@ -161,7 +161,8 @@ int acpi_processor_ffh_cstate_probe(unsigned int cpu,
|
|||
|
||||
/* Make sure we are running on right CPU */
|
||||
|
||||
retval = work_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx);
|
||||
retval = call_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx,
|
||||
false);
|
||||
if (retval == 0) {
|
||||
/* Use the hint in CST */
|
||||
percpu_entry->states[cx->index].eax = cx->address;
|
||||
|
|
|
@ -256,6 +256,8 @@ u32
|
|||
acpi_ns_build_normalized_path(struct acpi_namespace_node *node,
|
||||
char *full_path, u32 path_size, u8 no_trailing);
|
||||
|
||||
void acpi_ns_normalize_pathname(char *original_path);
|
||||
|
||||
char *acpi_ns_get_normalized_pathname(struct acpi_namespace_node *node,
|
||||
u8 no_trailing);
|
||||
|
||||
|
|
|
@ -468,16 +468,14 @@ char *acpi_db_get_next_token(char *string,
|
|||
return (NULL);
|
||||
}
|
||||
|
||||
/* Remove any spaces at the beginning */
|
||||
/* Remove any spaces at the beginning, ignore blank lines */
|
||||
|
||||
if (*string == ' ') {
|
||||
while (*string && (*string == ' ')) {
|
||||
string++;
|
||||
}
|
||||
while (*string && isspace(*string)) {
|
||||
string++;
|
||||
}
|
||||
|
||||
if (!(*string)) {
|
||||
return (NULL);
|
||||
}
|
||||
if (!(*string)) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
switch (*string) {
|
||||
|
@ -570,7 +568,7 @@ char *acpi_db_get_next_token(char *string,
|
|||
|
||||
/* Find end of token */
|
||||
|
||||
while (*string && (*string != ' ')) {
|
||||
while (*string && !isspace(*string)) {
|
||||
string++;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -409,6 +409,7 @@ acpi_status acpi_initialize_debugger(void)
|
|||
acpi_gbl_db_output_flags = ACPI_DB_CONSOLE_OUTPUT;
|
||||
|
||||
acpi_gbl_db_opt_no_ini_methods = FALSE;
|
||||
acpi_gbl_db_opt_no_region_support = FALSE;
|
||||
|
||||
acpi_gbl_db_buffer = acpi_os_allocate(ACPI_DEBUG_BUFFER_SIZE);
|
||||
if (!acpi_gbl_db_buffer) {
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acdebug.h"
|
||||
#ifdef ACPI_EXEC_APP
|
||||
#include "aecommon.h"
|
||||
#endif
|
||||
|
||||
#define _COMPONENT ACPI_DISPATCHER
|
||||
ACPI_MODULE_NAME("dswexec")
|
||||
|
@ -329,6 +332,10 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
|
|||
u32 op_class;
|
||||
union acpi_parse_object *next_op;
|
||||
union acpi_parse_object *first_arg;
|
||||
#ifdef ACPI_EXEC_APP
|
||||
char *namepath;
|
||||
union acpi_operand_object *obj_desc;
|
||||
#endif
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR(ds_exec_end_op, walk_state);
|
||||
|
||||
|
@ -537,6 +544,32 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
|
|||
|
||||
status =
|
||||
acpi_ds_eval_buffer_field_operands(walk_state, op);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
break;
|
||||
}
|
||||
#ifdef ACPI_EXEC_APP
|
||||
/*
|
||||
* acpi_exec support for namespace initialization file (initialize
|
||||
* buffer_fields in this code.)
|
||||
*/
|
||||
namepath =
|
||||
acpi_ns_get_external_pathname(op->common.node);
|
||||
status = ae_lookup_init_file_entry(namepath, &obj_desc);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
status =
|
||||
acpi_ex_write_data_to_field(obj_desc,
|
||||
op->common.
|
||||
node->object,
|
||||
NULL);
|
||||
if ACPI_FAILURE
|
||||
(status) {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"While writing to buffer field"));
|
||||
}
|
||||
}
|
||||
ACPI_FREE(namepath);
|
||||
status = AE_OK;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case AML_TYPE_CREATE_OBJECT:
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include "acdispat.h"
|
||||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
#include "acdisasm.h"
|
||||
#endif
|
||||
|
@ -399,7 +398,6 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state)
|
|||
union acpi_parse_object *op;
|
||||
acpi_object_type object_type;
|
||||
acpi_status status = AE_OK;
|
||||
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
u8 param_count;
|
||||
#endif
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acevents.h"
|
||||
#ifdef ACPI_EXEC_APP
|
||||
#include "aecommon.h"
|
||||
#endif
|
||||
|
||||
#define _COMPONENT ACPI_DISPATCHER
|
||||
ACPI_MODULE_NAME("dswload2")
|
||||
|
@ -373,6 +376,10 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
|
|||
struct acpi_namespace_node *new_node;
|
||||
u32 i;
|
||||
u8 region_space;
|
||||
#ifdef ACPI_EXEC_APP
|
||||
union acpi_operand_object *obj_desc;
|
||||
char *namepath;
|
||||
#endif
|
||||
|
||||
ACPI_FUNCTION_TRACE(ds_load2_end_op);
|
||||
|
||||
|
@ -466,6 +473,11 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
|
|||
* be evaluated later during the execution phase
|
||||
*/
|
||||
status = acpi_ds_create_buffer_field(op, walk_state);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"CreateBufferField failure"));
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
|
||||
case AML_TYPE_NAMED_FIELD:
|
||||
|
@ -604,6 +616,29 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
|
|||
case AML_NAME_OP:
|
||||
|
||||
status = acpi_ds_create_node(walk_state, node, op);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
goto cleanup;
|
||||
}
|
||||
#ifdef ACPI_EXEC_APP
|
||||
/*
|
||||
* acpi_exec support for namespace initialization file (initialize
|
||||
* Name opcodes in this code.)
|
||||
*/
|
||||
namepath = acpi_ns_get_external_pathname(node);
|
||||
status = ae_lookup_init_file_entry(namepath, &obj_desc);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
|
||||
/* Detach any existing object, attach new object */
|
||||
|
||||
if (node->object) {
|
||||
acpi_ns_detach_object(node);
|
||||
}
|
||||
acpi_ns_attach_object(node, obj_desc,
|
||||
obj_desc->common.type);
|
||||
}
|
||||
ACPI_FREE(namepath);
|
||||
status = AE_OK;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case AML_METHOD_OP:
|
||||
|
|
|
@ -13,9 +13,6 @@
|
|||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME("nsnames")
|
||||
|
||||
/* Local Prototypes */
|
||||
static void acpi_ns_normalize_pathname(char *original_path);
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ns_get_external_pathname
|
||||
|
@ -30,7 +27,6 @@ static void acpi_ns_normalize_pathname(char *original_path);
|
|||
* for error and debug statements.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
char *acpi_ns_get_external_pathname(struct acpi_namespace_node *node)
|
||||
{
|
||||
char *name_buffer;
|
||||
|
@ -411,7 +407,7 @@ cleanup:
|
|||
*
|
||||
******************************************************************************/
|
||||
|
||||
static void acpi_ns_normalize_pathname(char *original_path)
|
||||
void acpi_ns_normalize_pathname(char *original_path)
|
||||
{
|
||||
char *input_path = original_path;
|
||||
char *new_path_buffer;
|
||||
|
|
|
@ -78,7 +78,7 @@ const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS] = {
|
|||
"IPMI", /* 0x07 */
|
||||
"GeneralPurposeIo", /* 0x08 */
|
||||
"GenericSerialBus", /* 0x09 */
|
||||
"PlatformCommChannel" /* 0x0A */
|
||||
"PCC" /* 0x0A */
|
||||
};
|
||||
|
||||
const char *acpi_ut_get_region_name(u8 space_id)
|
||||
|
|
|
@ -452,13 +452,13 @@ acpi_ut_update_ref_count(union acpi_operand_object *object, u32 action)
|
|||
*
|
||||
* FUNCTION: acpi_ut_update_object_reference
|
||||
*
|
||||
* PARAMETERS: object - Increment ref count for this object
|
||||
* and all sub-objects
|
||||
* PARAMETERS: object - Increment or decrement the ref count for
|
||||
* this object and all sub-objects
|
||||
* action - Either REF_INCREMENT or REF_DECREMENT
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Increment the object reference count
|
||||
* DESCRIPTION: Increment or decrement the object reference count
|
||||
*
|
||||
* Object references are incremented when:
|
||||
* 1) An object is attached to a Node (namespace object)
|
||||
|
@ -492,7 +492,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
|
|||
}
|
||||
|
||||
/*
|
||||
* All sub-objects must have their reference count incremented
|
||||
* All sub-objects must have their reference count updated
|
||||
* also. Different object types have different subobjects.
|
||||
*/
|
||||
switch (object->common.type) {
|
||||
|
@ -559,6 +559,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
next_object = NULL;
|
||||
break;
|
||||
|
||||
|
|
|
@ -332,7 +332,12 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args)
|
|||
int i;
|
||||
|
||||
pos = string;
|
||||
end = string + size;
|
||||
|
||||
if (size != ACPI_UINT32_MAX) {
|
||||
end = string + size;
|
||||
} else {
|
||||
end = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
|
||||
}
|
||||
|
||||
for (; *format; ++format) {
|
||||
if (*format != '%') {
|
||||
|
|
|
@ -438,13 +438,10 @@ int acpi_get_psd_map(struct cppc_cpudata **all_cpu_data)
|
|||
* domain info.
|
||||
*/
|
||||
for_each_possible_cpu(i) {
|
||||
pr = all_cpu_data[i];
|
||||
if (!pr)
|
||||
continue;
|
||||
|
||||
if (cpumask_test_cpu(i, covered_cpus))
|
||||
continue;
|
||||
|
||||
pr = all_cpu_data[i];
|
||||
cpc_ptr = per_cpu(cpc_desc_ptr, i);
|
||||
if (!cpc_ptr) {
|
||||
retval = -EFAULT;
|
||||
|
@ -495,44 +492,28 @@ int acpi_get_psd_map(struct cppc_cpudata **all_cpu_data)
|
|||
cpumask_set_cpu(j, pr->shared_cpu_map);
|
||||
}
|
||||
|
||||
for_each_possible_cpu(j) {
|
||||
for_each_cpu(j, pr->shared_cpu_map) {
|
||||
if (i == j)
|
||||
continue;
|
||||
|
||||
match_pr = all_cpu_data[j];
|
||||
if (!match_pr)
|
||||
continue;
|
||||
|
||||
match_cpc_ptr = per_cpu(cpc_desc_ptr, j);
|
||||
if (!match_cpc_ptr) {
|
||||
retval = -EFAULT;
|
||||
goto err_ret;
|
||||
}
|
||||
|
||||
match_pdomain = &(match_cpc_ptr->domain_info);
|
||||
if (match_pdomain->domain != pdomain->domain)
|
||||
continue;
|
||||
|
||||
match_pr->shared_type = pr->shared_type;
|
||||
cpumask_copy(match_pr->shared_cpu_map,
|
||||
pr->shared_cpu_map);
|
||||
}
|
||||
}
|
||||
goto out;
|
||||
|
||||
err_ret:
|
||||
for_each_possible_cpu(i) {
|
||||
pr = all_cpu_data[i];
|
||||
if (!pr)
|
||||
continue;
|
||||
|
||||
/* Assume no coordination on any error parsing domain info */
|
||||
if (retval) {
|
||||
cpumask_clear(pr->shared_cpu_map);
|
||||
cpumask_set_cpu(i, pr->shared_cpu_map);
|
||||
pr->shared_type = CPUFREQ_SHARED_TYPE_ALL;
|
||||
}
|
||||
cpumask_clear(pr->shared_cpu_map);
|
||||
cpumask_set_cpu(i, pr->shared_cpu_map);
|
||||
pr->shared_type = CPUFREQ_SHARED_TYPE_ALL;
|
||||
}
|
||||
|
||||
out:
|
||||
free_cpumask_var(covered_cpus);
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -1321,8 +1321,8 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
|
|||
*/
|
||||
static const struct acpi_device_id special_pm_ids[] = {
|
||||
{"PNP0C0B", }, /* Generic ACPI fan */
|
||||
{"INT1044", }, /* Fan for Tiger Lake generation */
|
||||
{"INT3404", }, /* Fan */
|
||||
{"INTC1044", }, /* Fan for Tiger Lake generation */
|
||||
{}
|
||||
};
|
||||
struct acpi_device *adev = ACPI_COMPANION(dev);
|
||||
|
|
|
@ -97,8 +97,8 @@ static int dptf_power_remove(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
static const struct acpi_device_id int3407_device_ids[] = {
|
||||
{"INT1047", 0},
|
||||
{"INT3407", 0},
|
||||
{"INTC1047", 0},
|
||||
{"", 0},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, int3407_device_ids);
|
||||
|
|
|
@ -13,10 +13,6 @@
|
|||
|
||||
#define INT3401_DEVICE 0X01
|
||||
static const struct acpi_device_id int340x_thermal_device_ids[] = {
|
||||
{"INT1040"},
|
||||
{"INT1043"},
|
||||
{"INT1044"},
|
||||
{"INT1047"},
|
||||
{"INT3400"},
|
||||
{"INT3401", INT3401_DEVICE},
|
||||
{"INT3402"},
|
||||
|
@ -28,6 +24,10 @@ static const struct acpi_device_id int340x_thermal_device_ids[] = {
|
|||
{"INT3409"},
|
||||
{"INT340A"},
|
||||
{"INT340B"},
|
||||
{"INTC1040"},
|
||||
{"INTC1043"},
|
||||
{"INTC1044"},
|
||||
{"INTC1047"},
|
||||
{""},
|
||||
};
|
||||
|
||||
|
|
|
@ -897,13 +897,6 @@ static long __acpi_processor_get_throttling(void *data)
|
|||
return pr->throttling.acpi_processor_get_throttling(pr);
|
||||
}
|
||||
|
||||
static int call_on_cpu(int cpu, long (*fn)(void *), void *arg, bool direct)
|
||||
{
|
||||
if (direct || (is_percpu_thread() && cpu == smp_processor_id()))
|
||||
return fn(arg);
|
||||
return work_on_cpu(cpu, fn, arg);
|
||||
}
|
||||
|
||||
static int acpi_processor_get_throttling(struct acpi_processor *pr)
|
||||
{
|
||||
if (!pr)
|
||||
|
|
|
@ -501,7 +501,7 @@ static const char * const table_sigs[] = {
|
|||
ACPI_SIG_WDDT, ACPI_SIG_WDRT, ACPI_SIG_DSDT, ACPI_SIG_FADT,
|
||||
ACPI_SIG_PSDT, ACPI_SIG_RSDT, ACPI_SIG_XSDT, ACPI_SIG_SSDT,
|
||||
ACPI_SIG_IORT, ACPI_SIG_NFIT, ACPI_SIG_HMAT, ACPI_SIG_PPTT,
|
||||
NULL };
|
||||
ACPI_SIG_NHLT, NULL };
|
||||
|
||||
#define ACPI_HEADER_SIZE sizeof(struct acpi_table_header)
|
||||
|
||||
|
|
|
@ -352,6 +352,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
|
|||
DMI_MATCH(DMI_PRODUCT_NAME, "Precision 7510"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = video_detect_force_native,
|
||||
.ident = "Acer Aspire 5738z",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5738"),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "JV50"),
|
||||
},
|
||||
},
|
||||
|
||||
/*
|
||||
* Desktops which falsely report a backlight and which our heuristics
|
||||
|
|
|
@ -19,8 +19,8 @@ MODULE_LICENSE("GPL");
|
|||
MODULE_AUTHOR("Alex Hung");
|
||||
|
||||
static const struct acpi_device_id intel_hid_ids[] = {
|
||||
{"INT1051", 0},
|
||||
{"INT33D5", 0},
|
||||
{"INTC1051", 0},
|
||||
{"", 0},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, intel_hid_ids);
|
||||
|
|
|
@ -369,8 +369,8 @@ static int int3400_thermal_remove(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
static const struct acpi_device_id int3400_thermal_match[] = {
|
||||
{"INT1040", 0},
|
||||
{"INT3400", 0},
|
||||
{"INTC1040", 0},
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
@ -282,8 +282,8 @@ static int int3403_remove(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
static const struct acpi_device_id int3403_device_ids[] = {
|
||||
{"INT1043", 0},
|
||||
{"INT3403", 0},
|
||||
{"INTC1043", 0},
|
||||
{"", 0},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, int3403_device_ids);
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20200214
|
||||
#define ACPI_CA_VERSION 0x20200326
|
||||
|
||||
#include <acpi/acconfig.h>
|
||||
#include <acpi/actypes.h>
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
|
||||
#define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */
|
||||
#define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */
|
||||
#define ACPI_SIG_NHLT "NHLT" /* Non-HDAudio Link Table */
|
||||
|
||||
/*
|
||||
* All tables must be byte-packed to match the ACPI specification, since
|
||||
|
@ -274,7 +275,8 @@ struct acpi_ivrs_header {
|
|||
/* Values for subtable Type above */
|
||||
|
||||
enum acpi_ivrs_type {
|
||||
ACPI_IVRS_TYPE_HARDWARE = 0x10,
|
||||
ACPI_IVRS_TYPE_HARDWARE1 = 0x10,
|
||||
ACPI_IVRS_TYPE_HARDWARE2 = 0x11,
|
||||
ACPI_IVRS_TYPE_MEMORY1 = 0x20,
|
||||
ACPI_IVRS_TYPE_MEMORY2 = 0x21,
|
||||
ACPI_IVRS_TYPE_MEMORY3 = 0x22
|
||||
|
@ -301,13 +303,26 @@ enum acpi_ivrs_type {
|
|||
|
||||
/* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */
|
||||
|
||||
struct acpi_ivrs_hardware {
|
||||
struct acpi_ivrs_hardware_10 {
|
||||
struct acpi_ivrs_header header;
|
||||
u16 capability_offset; /* Offset for IOMMU control fields */
|
||||
u64 base_address; /* IOMMU control registers */
|
||||
u16 pci_segment_group;
|
||||
u16 info; /* MSI number and unit ID */
|
||||
u32 reserved;
|
||||
u32 feature_reporting;
|
||||
};
|
||||
|
||||
/* 0x11: I/O Virtualization Hardware Definition Block (IVHD) */
|
||||
|
||||
struct acpi_ivrs_hardware_11 {
|
||||
struct acpi_ivrs_header header;
|
||||
u16 capability_offset; /* Offset for IOMMU control fields */
|
||||
u64 base_address; /* IOMMU control registers */
|
||||
u16 pci_segment_group;
|
||||
u16 info; /* MSI number and unit ID */
|
||||
u32 attributes;
|
||||
u64 efr_register_image;
|
||||
u64 reserved;
|
||||
};
|
||||
|
||||
/* Masks for Info field above */
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */
|
||||
#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
|
||||
#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */
|
||||
#define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Migrations Table */
|
||||
#define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Mitigations Table */
|
||||
#define ACPI_SIG_XENV "XENV" /* Xen Environment table */
|
||||
#define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */
|
||||
|
||||
|
@ -673,10 +673,10 @@ struct acpi_table_wpbt {
|
|||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* WSMT - Windows SMM Security Migrations Table
|
||||
* WSMT - Windows SMM Security Mitigations Table
|
||||
* Version 1
|
||||
*
|
||||
* Conforms to "Windows SMM Security Migrations Table",
|
||||
* Conforms to "Windows SMM Security Mitigations Table",
|
||||
* Version 1.0, April 18, 2016
|
||||
*
|
||||
******************************************************************************/
|
||||
|
|
|
@ -57,4 +57,4 @@
|
|||
#define UUID_THERMAL_EXTENSIONS "14d399cd-7a27-4b18-8fb4-7cb7b9f4e500"
|
||||
#define UUID_DEVICE_PROPERTIES "daffd814-6eba-4d8c-8a91-bc9bbf4aa301"
|
||||
|
||||
#endif /* __AUUID_H__ */
|
||||
#endif /* __ACUUID_H__ */
|
||||
|
|
|
@ -297,6 +297,14 @@ static inline void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx
|
|||
}
|
||||
#endif
|
||||
|
||||
static inline int call_on_cpu(int cpu, long (*fn)(void *), void *arg,
|
||||
bool direct)
|
||||
{
|
||||
if (direct || (is_percpu_thread() && cpu == smp_processor_id()))
|
||||
return fn(arg);
|
||||
return work_on_cpu(cpu, fn, arg);
|
||||
}
|
||||
|
||||
/* in processor_perflib.c */
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
|
|
Загрузка…
Ссылка в новой задаче