acpi: limit the AMDI0020/AMDI0010 workaround to an option
It appears that production versions of EPYC firmware get the _STA method right for these nodes. In fact, this workaround breaks on production hardware by including too many uart nodes. This work around was for pre-release hardware that wound up not having a large deployment. Move this work around to a kernel option since the machines that needed it have been powered off and are difficult to resurrect. Should there be a more significant deployment than is understood, we can restrict it based on smbios strings. Discussed with: mmacy@, seanc@, jhb@ MFC After: 3 days
This commit is contained in:
parent
adc4ea97bd
commit
35af933173
@ -705,6 +705,7 @@ ACPI_DEBUG opt_acpi.h
|
||||
ACPI_MAX_TASKS opt_acpi.h
|
||||
ACPI_MAX_THREADS opt_acpi.h
|
||||
DEV_ACPI opt_acpi.h
|
||||
ACPI_EARLY_EPYC_WAR opt_acpi.h
|
||||
|
||||
# options for IOMMU support
|
||||
IOMMU opt_iommu.h
|
||||
|
@ -2273,6 +2273,8 @@ acpi_DeviceIsPresent(device_t dev)
|
||||
h = acpi_get_handle(dev);
|
||||
if (h == NULL)
|
||||
return (FALSE);
|
||||
|
||||
#ifdef ACPI_EARLY_EPYC_WAR
|
||||
/*
|
||||
* Certain Treadripper boards always returns 0 for FreeBSD because it
|
||||
* only returns non-zero for the OS string "Windows 2015". Otherwise it
|
||||
@ -2281,6 +2283,7 @@ acpi_DeviceIsPresent(device_t dev)
|
||||
*/
|
||||
if (acpi_MatchHid(h, "AMDI0020") || acpi_MatchHid(h, "AMDI0010"))
|
||||
return (TRUE);
|
||||
#endif
|
||||
|
||||
status = acpi_GetInteger(h, "_STA", &s);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user