mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 11:46:44 +07:00
Merge branches 'acpi-init', 'acpi-osl', 'acpi-bus', 'acpi-tables' and 'acpi-misc'
* acpi-init: ACPI: probe ECDT before loading AML tables regardless of module-level code flag * acpi-osl: ACPI / OSL: Use 'jiffies' as the time bassis for acpi_os_get_timer() * acpi-bus: ACPI / glue: Split dev_is_platform() out of module for wide use * acpi-tables: ACPI/PPTT: Handle architecturally unknown cache types drivers: base: cacheinfo: Do not populate sysfs for unknown cache types * acpi-misc: ACPI: remove redundant 'default n' from Kconfig ACPI: custom_method: remove meaningless null check before debugfs_remove()
This commit is contained in:
commit
bd371e088b
@ -138,7 +138,6 @@ config ACPI_REV_OVERRIDE_POSSIBLE
|
||||
|
||||
config ACPI_EC_DEBUGFS
|
||||
tristate "EC read/write access through /sys/kernel/debug/ec"
|
||||
default n
|
||||
help
|
||||
Say N to disable Embedded Controller /sys/kernel/debug interface
|
||||
|
||||
@ -283,7 +282,6 @@ config ACPI_PROCESSOR
|
||||
config ACPI_IPMI
|
||||
tristate "IPMI"
|
||||
depends on IPMI_HANDLER
|
||||
default n
|
||||
help
|
||||
This driver enables the ACPI to access the BMC controller. And it
|
||||
uses the IPMI request/response message to communicate with BMC
|
||||
@ -361,7 +359,6 @@ config ACPI_TABLE_UPGRADE
|
||||
|
||||
config ACPI_DEBUG
|
||||
bool "Debug Statements"
|
||||
default n
|
||||
help
|
||||
The ACPI subsystem can produce debug output. Saying Y enables this
|
||||
output and increases the kernel size by around 50K.
|
||||
@ -374,7 +371,6 @@ config ACPI_DEBUG
|
||||
config ACPI_PCI_SLOT
|
||||
bool "PCI slot detection driver"
|
||||
depends on SYSFS
|
||||
default n
|
||||
help
|
||||
This driver creates entries in /sys/bus/pci/slots/ for all PCI
|
||||
slots in the system. This can help correlate PCI bus addresses,
|
||||
@ -436,7 +432,6 @@ config ACPI_HED
|
||||
config ACPI_CUSTOM_METHOD
|
||||
tristate "Allow ACPI methods to be inserted/replaced at run time"
|
||||
depends on DEBUG_FS
|
||||
default n
|
||||
help
|
||||
This debug facility allows ACPI AML methods to be inserted and/or
|
||||
replaced without rebooting the system. For details refer to:
|
||||
@ -481,7 +476,6 @@ config ACPI_EXTLOG
|
||||
tristate "Extended Error Log support"
|
||||
depends on X86_MCE && X86_LOCAL_APIC && EDAC
|
||||
select UEFI_CPER
|
||||
default n
|
||||
help
|
||||
Certain usages such as Predictive Failure Analysis (PFA) require
|
||||
more information about the error than what can be described in
|
||||
|
@ -1054,15 +1054,17 @@ void __init acpi_early_init(void)
|
||||
goto error0;
|
||||
}
|
||||
|
||||
if (!acpi_gbl_execute_tables_as_methods &&
|
||||
acpi_gbl_group_module_level_code) {
|
||||
status = acpi_load_tables();
|
||||
if (ACPI_FAILURE(status)) {
|
||||
printk(KERN_ERR PREFIX
|
||||
"Unable to load the System Description Tables\n");
|
||||
goto error0;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* ACPI 2.0 requires the EC driver to be loaded and work before
|
||||
* the EC device is found in the namespace (i.e. before
|
||||
* acpi_load_tables() is called).
|
||||
*
|
||||
* This is accomplished by looking for the ECDT table, and getting
|
||||
* the EC parameters out of that.
|
||||
*
|
||||
* Ignore the result. Not having an ECDT is not fatal.
|
||||
*/
|
||||
status = acpi_ec_ecdt_probe();
|
||||
|
||||
#ifdef CONFIG_X86
|
||||
if (!acpi_ioapic) {
|
||||
@ -1133,25 +1135,11 @@ static int __init acpi_bus_init(void)
|
||||
|
||||
acpi_os_initialize1();
|
||||
|
||||
/*
|
||||
* ACPI 2.0 requires the EC driver to be loaded and work before
|
||||
* the EC device is found in the namespace (i.e. before
|
||||
* acpi_load_tables() is called).
|
||||
*
|
||||
* This is accomplished by looking for the ECDT table, and getting
|
||||
* the EC parameters out of that.
|
||||
*/
|
||||
status = acpi_ec_ecdt_probe();
|
||||
/* Ignore result. Not having an ECDT is not fatal. */
|
||||
|
||||
if (acpi_gbl_execute_tables_as_methods ||
|
||||
!acpi_gbl_group_module_level_code) {
|
||||
status = acpi_load_tables();
|
||||
if (ACPI_FAILURE(status)) {
|
||||
printk(KERN_ERR PREFIX
|
||||
"Unable to load the System Description Tables\n");
|
||||
goto error1;
|
||||
}
|
||||
status = acpi_load_tables();
|
||||
if (ACPI_FAILURE(status)) {
|
||||
printk(KERN_ERR PREFIX
|
||||
"Unable to load the System Description Tables\n");
|
||||
goto error1;
|
||||
}
|
||||
|
||||
status = acpi_enable_subsystem(ACPI_NO_ACPI_ENABLE);
|
||||
|
@ -92,8 +92,7 @@ static int __init acpi_custom_method_init(void)
|
||||
|
||||
static void __exit acpi_custom_method_exit(void)
|
||||
{
|
||||
if (cm_dentry)
|
||||
debugfs_remove(cm_dentry);
|
||||
debugfs_remove(cm_dentry);
|
||||
}
|
||||
|
||||
module_init(acpi_custom_method_init);
|
||||
|
@ -320,7 +320,7 @@ static int acpi_platform_notify(struct device *dev)
|
||||
if (!adev)
|
||||
goto out;
|
||||
|
||||
if (dev->bus == &platform_bus_type)
|
||||
if (dev_is_platform(dev))
|
||||
acpi_configure_pmsi_domain(dev);
|
||||
|
||||
if (type && type->setup)
|
||||
|
@ -617,15 +617,18 @@ void acpi_os_stall(u32 us)
|
||||
}
|
||||
|
||||
/*
|
||||
* Support ACPI 3.0 AML Timer operand
|
||||
* Returns 64-bit free-running, monotonically increasing timer
|
||||
* with 100ns granularity
|
||||
* Support ACPI 3.0 AML Timer operand. Returns a 64-bit free-running,
|
||||
* monotonically increasing timer with 100ns granularity. Do not use
|
||||
* ktime_get() to implement this function because this function may get
|
||||
* called after timekeeping has been suspended. Note: calling this function
|
||||
* after timekeeping has been suspended may lead to unexpected results
|
||||
* because when timekeeping is suspended the jiffies counter is not
|
||||
* incremented. See also timekeeping_suspend().
|
||||
*/
|
||||
u64 acpi_os_get_timer(void)
|
||||
{
|
||||
u64 time_ns = ktime_to_ns(ktime_get());
|
||||
do_div(time_ns, 100);
|
||||
return time_ns;
|
||||
return (get_jiffies_64() - INITIAL_JIFFIES) *
|
||||
(ACPI_100NSEC_PER_SEC / HZ);
|
||||
}
|
||||
|
||||
acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)
|
||||
|
@ -338,9 +338,6 @@ static struct acpi_pptt_cache *acpi_find_cache_node(struct acpi_table_header *ta
|
||||
return found;
|
||||
}
|
||||
|
||||
/* total number of attributes checked by the properties code */
|
||||
#define PPTT_CHECKED_ATTRIBUTES 4
|
||||
|
||||
/**
|
||||
* update_cache_properties() - Update cacheinfo for the given processor
|
||||
* @this_leaf: Kernel cache info structure being updated
|
||||
@ -357,25 +354,15 @@ static void update_cache_properties(struct cacheinfo *this_leaf,
|
||||
struct acpi_pptt_cache *found_cache,
|
||||
struct acpi_pptt_processor *cpu_node)
|
||||
{
|
||||
int valid_flags = 0;
|
||||
|
||||
this_leaf->fw_token = cpu_node;
|
||||
if (found_cache->flags & ACPI_PPTT_SIZE_PROPERTY_VALID) {
|
||||
if (found_cache->flags & ACPI_PPTT_SIZE_PROPERTY_VALID)
|
||||
this_leaf->size = found_cache->size;
|
||||
valid_flags++;
|
||||
}
|
||||
if (found_cache->flags & ACPI_PPTT_LINE_SIZE_VALID) {
|
||||
if (found_cache->flags & ACPI_PPTT_LINE_SIZE_VALID)
|
||||
this_leaf->coherency_line_size = found_cache->line_size;
|
||||
valid_flags++;
|
||||
}
|
||||
if (found_cache->flags & ACPI_PPTT_NUMBER_OF_SETS_VALID) {
|
||||
if (found_cache->flags & ACPI_PPTT_NUMBER_OF_SETS_VALID)
|
||||
this_leaf->number_of_sets = found_cache->number_of_sets;
|
||||
valid_flags++;
|
||||
}
|
||||
if (found_cache->flags & ACPI_PPTT_ASSOCIATIVITY_VALID) {
|
||||
if (found_cache->flags & ACPI_PPTT_ASSOCIATIVITY_VALID)
|
||||
this_leaf->ways_of_associativity = found_cache->associativity;
|
||||
valid_flags++;
|
||||
}
|
||||
if (found_cache->flags & ACPI_PPTT_WRITE_POLICY_VALID) {
|
||||
switch (found_cache->attributes & ACPI_PPTT_MASK_WRITE_POLICY) {
|
||||
case ACPI_PPTT_CACHE_POLICY_WT:
|
||||
@ -402,11 +389,17 @@ static void update_cache_properties(struct cacheinfo *this_leaf,
|
||||
}
|
||||
}
|
||||
/*
|
||||
* If the above flags are valid, and the cache type is NOCACHE
|
||||
* update the cache type as well.
|
||||
* If cache type is NOCACHE, then the cache hasn't been specified
|
||||
* via other mechanisms. Update the type if a cache type has been
|
||||
* provided.
|
||||
*
|
||||
* Note, we assume such caches are unified based on conventional system
|
||||
* design and known examples. Significant work is required elsewhere to
|
||||
* fully support data/instruction only type caches which are only
|
||||
* specified in PPTT.
|
||||
*/
|
||||
if (this_leaf->type == CACHE_TYPE_NOCACHE &&
|
||||
valid_flags == PPTT_CHECKED_ATTRIBUTES)
|
||||
found_cache->flags & ACPI_PPTT_CACHE_TYPE_VALID)
|
||||
this_leaf->type = CACHE_TYPE_UNIFIED;
|
||||
}
|
||||
|
||||
|
@ -615,6 +615,8 @@ static int cache_add_dev(unsigned int cpu)
|
||||
this_leaf = this_cpu_ci->info_list + i;
|
||||
if (this_leaf->disable_sysfs)
|
||||
continue;
|
||||
if (this_leaf->type == CACHE_TYPE_NOCACHE)
|
||||
break;
|
||||
cache_groups = cache_get_attribute_groups(this_leaf);
|
||||
ci_dev = cpu_device_create(parent, this_leaf, cache_groups,
|
||||
"index%1u", i);
|
||||
|
@ -40,6 +40,7 @@ struct platform_device {
|
||||
|
||||
#define platform_get_device_id(pdev) ((pdev)->id_entry)
|
||||
|
||||
#define dev_is_platform(dev) ((dev)->bus == &platform_bus_type)
|
||||
#define to_platform_device(x) container_of((x), struct platform_device, dev)
|
||||
|
||||
extern int platform_device_register(struct platform_device *);
|
||||
|
Loading…
Reference in New Issue
Block a user