mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 05:44:11 +00:00
Merge branches 'acpi-resource', 'acpi-numa', 'acpi-soc' and 'acpi-misc'
Merge ACPI resources management quirks, ACPI NUMA updates, an ACPI LPSS (Intel SoC) driver update and an ACPI watchdog driver fixup for 6.8-rc1: - Add IRQ override quirks for some Infinity laptops and for TongFang GMxXGxx (David McFarland, Hans de Goede). - Clean up the ACPI NUMA code and fix it to ensure that fake_pxm is not the same as one of the real pxm values (Yuntao Wang). - Fix the fractional clock divider flags in the ACPI LPSS (Intel SoC) driver so as to prevent miscalculation of the values in the clock divider (Andy Shevchenko). - Adjust comments in the ACPI watchdog driver to prevent kernel-doc from complaining during documentation builds (Randy Dunlap). * acpi-resource: ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override ACPI: resource: Add another DMI match for the TongFang GMxXGxx * acpi-numa: ACPI: NUMA: Fix the logic of getting the fake_pxm value ACPI: NUMA: Optimize the check for the availability of node values ACPI: NUMA: Remove unnecessary check in acpi_parse_gi_affinity() * acpi-soc: ACPI: LPSS: Fix the fractional clock divider flags * acpi-misc: ACPI: watchdog: fix kernel-doc warnings
This commit is contained in:
commit
4ab8d27ad1
4 changed files with 27 additions and 7 deletions
|
@ -453,8 +453,9 @@ static int register_device_clock(struct acpi_device *adev,
|
||||||
if (!clk_name)
|
if (!clk_name)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
clk = clk_register_fractional_divider(NULL, clk_name, parent,
|
clk = clk_register_fractional_divider(NULL, clk_name, parent,
|
||||||
|
0, prv_base, 1, 15, 16, 15,
|
||||||
CLK_FRAC_DIVIDER_POWER_OF_TWO_PS,
|
CLK_FRAC_DIVIDER_POWER_OF_TWO_PS,
|
||||||
prv_base, 1, 15, 16, 15, 0, NULL);
|
NULL);
|
||||||
parent = clk_name;
|
parent = clk_name;
|
||||||
|
|
||||||
clk_name = kasprintf(GFP_KERNEL, "%s-update", devname);
|
clk_name = kasprintf(GFP_KERNEL, "%s-update", devname);
|
||||||
|
|
|
@ -81,7 +81,7 @@ static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
|
||||||
return wdat;
|
return wdat;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Returns true if this system should prefer ACPI based watchdog instead of
|
* Returns true if this system should prefer ACPI based watchdog instead of
|
||||||
* the native one (which are typically the same hardware).
|
* the native one (which are typically the same hardware).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -67,9 +67,9 @@ int acpi_map_pxm_to_node(int pxm)
|
||||||
node = pxm_to_node_map[pxm];
|
node = pxm_to_node_map[pxm];
|
||||||
|
|
||||||
if (node == NUMA_NO_NODE) {
|
if (node == NUMA_NO_NODE) {
|
||||||
if (nodes_weight(nodes_found_map) >= MAX_NUMNODES)
|
|
||||||
return NUMA_NO_NODE;
|
|
||||||
node = first_unset_node(nodes_found_map);
|
node = first_unset_node(nodes_found_map);
|
||||||
|
if (node >= MAX_NUMNODES)
|
||||||
|
return NUMA_NO_NODE;
|
||||||
__acpi_map_pxm_to_node(pxm, node);
|
__acpi_map_pxm_to_node(pxm, node);
|
||||||
node_set(node, nodes_found_map);
|
node_set(node, nodes_found_map);
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,7 @@ static int __init slit_valid(struct acpi_table_slit *slit)
|
||||||
int i, j;
|
int i, j;
|
||||||
int d = slit->locality_count;
|
int d = slit->locality_count;
|
||||||
for (i = 0; i < d; i++) {
|
for (i = 0; i < d; i++) {
|
||||||
for (j = 0; j < d; j++) {
|
for (j = 0; j < d; j++) {
|
||||||
u8 val = slit->entry[d*i + j];
|
u8 val = slit->entry[d*i + j];
|
||||||
if (i == j) {
|
if (i == j) {
|
||||||
if (val != LOCAL_DISTANCE)
|
if (val != LOCAL_DISTANCE)
|
||||||
|
@ -430,7 +430,7 @@ acpi_parse_gi_affinity(union acpi_subtable_headers *header,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
node = acpi_map_pxm_to_node(gi_affinity->proximity_domain);
|
node = acpi_map_pxm_to_node(gi_affinity->proximity_domain);
|
||||||
if (node == NUMA_NO_NODE || node >= MAX_NUMNODES) {
|
if (node == NUMA_NO_NODE) {
|
||||||
pr_err("SRAT: Too many proximity domains.\n");
|
pr_err("SRAT: Too many proximity domains.\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -532,7 +532,7 @@ int __init acpi_numa_init(void)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* fake_pxm is the next unused PXM value after SRAT parsing */
|
/* fake_pxm is the next unused PXM value after SRAT parsing */
|
||||||
for (i = 0, fake_pxm = -1; i < MAX_NUMNODES - 1; i++) {
|
for (i = 0, fake_pxm = -1; i < MAX_NUMNODES; i++) {
|
||||||
if (node_to_pxm_map[i] > fake_pxm)
|
if (node_to_pxm_map[i] > fake_pxm)
|
||||||
fake_pxm = node_to_pxm_map[i];
|
fake_pxm = node_to_pxm_map[i];
|
||||||
}
|
}
|
||||||
|
|
|
@ -510,6 +510,13 @@ static const struct dmi_system_id irq1_edge_low_force_override[] = {
|
||||||
DMI_MATCH(DMI_BOARD_NAME, "GMxXGxx"),
|
DMI_MATCH(DMI_BOARD_NAME, "GMxXGxx"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/* TongFang GMxXGxx sold as Eluktronics Inc. RP-15 */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "Eluktronics Inc."),
|
||||||
|
DMI_MATCH(DMI_BOARD_NAME, "RP-15"),
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */
|
/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -548,6 +555,18 @@ static const struct dmi_system_id irq1_edge_low_force_override[] = {
|
||||||
DMI_MATCH(DMI_BOARD_NAME, "GM6BG0Q"),
|
DMI_MATCH(DMI_BOARD_NAME, "GM6BG0Q"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/* Infinity E15-5A165-BM */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_BOARD_NAME, "GM5RG1E0009COM"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* Infinity E15-5A305-1M */
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_BOARD_NAME, "GM5RGEE0016COM"),
|
||||||
|
},
|
||||||
|
},
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue