Merge branches 'acpi-misc', 'acpi-tools' and 'acpi-docs'
Merge miscellaneous ACPI material, ACPI tools changes and ACPI documentation updates for 6.1-rc1: - Drop references to non-functional 01.org/linux-acpi web site from MAINTAINERS and Kconfig help texts (Rafael Wysocki). - Replace strlcpy() with unused retval with strscpy() in the ACPI support code (Wolfram Sang). - Do not initialize ret in main() in the pfrut utility (Shi junming). - Drop useless ACPI DSDT override documentation (Rafael Wysocki). - Fix a few typos and wording mistakes in the ACPI device enumeration documentation (Jean Delvare). * acpi-misc: MAINTAINERS: Drop records pointing to 01.org/linux-acpi ACPI: Kconfig: Drop link to https://01.org/linux-acpi ACPI: DPTF: Drop stale link from Kconfig help ACPI: move from strlcpy() with unused retval to strscpy() * acpi-tools: ACPI: tools: pfrut: Do not initialize ret in main() * acpi-docs: ACPI: docs: Drop useless DSDT override documentation ACPI: docs: enumeration: Fix a few typos and wording mistakes
This commit is contained in:
commit
a7ece531b9
@ -1,13 +0,0 @@
|
|||||||
.. SPDX-License-Identifier: GPL-2.0
|
|
||||||
|
|
||||||
===============
|
|
||||||
Overriding DSDT
|
|
||||||
===============
|
|
||||||
|
|
||||||
Linux supports a method of overriding the BIOS DSDT:
|
|
||||||
|
|
||||||
CONFIG_ACPI_CUSTOM_DSDT - builds the image into the kernel.
|
|
||||||
|
|
||||||
When to use this method is described in detail on the
|
|
||||||
Linux/ACPI home page:
|
|
||||||
https://01.org/linux-acpi/documentation/overriding-dsdt
|
|
@ -21,7 +21,7 @@ possible we decided to do following:
|
|||||||
- Devices behind real busses where there is a connector resource
|
- Devices behind real busses where there is a connector resource
|
||||||
are represented as struct spi_device or struct i2c_device. Note
|
are represented as struct spi_device or struct i2c_device. Note
|
||||||
that standard UARTs are not busses so there is no struct uart_device,
|
that standard UARTs are not busses so there is no struct uart_device,
|
||||||
although some of them may be represented by sturct serdev_device.
|
although some of them may be represented by struct serdev_device.
|
||||||
|
|
||||||
As both ACPI and Device Tree represent a tree of devices (and their
|
As both ACPI and Device Tree represent a tree of devices (and their
|
||||||
resources) this implementation follows the Device Tree way as much as
|
resources) this implementation follows the Device Tree way as much as
|
||||||
@ -205,7 +205,7 @@ Here is what the ACPI namespace for a SPI slave might look like::
|
|||||||
}
|
}
|
||||||
...
|
...
|
||||||
|
|
||||||
The SPI device drivers only need to add ACPI IDs in a similar way than with
|
The SPI device drivers only need to add ACPI IDs in a similar way to
|
||||||
the platform device drivers. Below is an example where we add ACPI support
|
the platform device drivers. Below is an example where we add ACPI support
|
||||||
to at25 SPI eeprom driver (this is meant for the above ACPI snippet)::
|
to at25 SPI eeprom driver (this is meant for the above ACPI snippet)::
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ These GPIO numbers are controller relative and path "\\_SB.PCI0.GPI0"
|
|||||||
specifies the path to the controller. In order to use these GPIOs in Linux
|
specifies the path to the controller. In order to use these GPIOs in Linux
|
||||||
we need to translate them to the corresponding Linux GPIO descriptors.
|
we need to translate them to the corresponding Linux GPIO descriptors.
|
||||||
|
|
||||||
There is a standard GPIO API for that and is documented in
|
There is a standard GPIO API for that and it is documented in
|
||||||
Documentation/admin-guide/gpio/.
|
Documentation/admin-guide/gpio/.
|
||||||
|
|
||||||
In the above example we can get the corresponding two GPIO descriptors with
|
In the above example we can get the corresponding two GPIO descriptors with
|
||||||
@ -538,8 +538,8 @@ information.
|
|||||||
PCI hierarchy representation
|
PCI hierarchy representation
|
||||||
============================
|
============================
|
||||||
|
|
||||||
Sometimes could be useful to enumerate a PCI device, knowing its position on the
|
Sometimes it could be useful to enumerate a PCI device, knowing its position on
|
||||||
PCI bus.
|
the PCI bus.
|
||||||
|
|
||||||
For example, some systems use PCI devices soldered directly on the mother board,
|
For example, some systems use PCI devices soldered directly on the mother board,
|
||||||
in a fixed position (ethernet, Wi-Fi, serial ports, etc.). In this conditions it
|
in a fixed position (ethernet, Wi-Fi, serial ports, etc.). In this conditions it
|
||||||
@ -550,7 +550,7 @@ To identify a PCI device, a complete hierarchical description is required, from
|
|||||||
the chipset root port to the final device, through all the intermediate
|
the chipset root port to the final device, through all the intermediate
|
||||||
bridges/switches of the board.
|
bridges/switches of the board.
|
||||||
|
|
||||||
For example, let us assume to have a system with a PCIe serial port, an
|
For example, let's assume we have a system with a PCIe serial port, an
|
||||||
Exar XR17V3521, soldered on the main board. This UART chip also includes
|
Exar XR17V3521, soldered on the main board. This UART chip also includes
|
||||||
16 GPIOs and we want to add the property ``gpio-line-names`` [1] to these pins.
|
16 GPIOs and we want to add the property ``gpio-line-names`` [1] to these pins.
|
||||||
In this case, the ``lspci`` output for this component is::
|
In this case, the ``lspci`` output for this component is::
|
||||||
@ -593,8 +593,8 @@ of the chipset bridge (also called "root port") with address::
|
|||||||
|
|
||||||
Bus: 0 - Device: 14 - Function: 1
|
Bus: 0 - Device: 14 - Function: 1
|
||||||
|
|
||||||
To find this information is necessary disassemble the BIOS ACPI tables, in
|
To find this information, it is necessary to disassemble the BIOS ACPI tables,
|
||||||
particular the DSDT (see also [2])::
|
in particular the DSDT (see also [2])::
|
||||||
|
|
||||||
mkdir ~/tables/
|
mkdir ~/tables/
|
||||||
cd ~/tables/
|
cd ~/tables/
|
||||||
|
@ -348,7 +348,6 @@ M: "Rafael J. Wysocki" <rafael@kernel.org>
|
|||||||
R: Len Brown <lenb@kernel.org>
|
R: Len Brown <lenb@kernel.org>
|
||||||
L: linux-acpi@vger.kernel.org
|
L: linux-acpi@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: https://01.org/linux-acpi
|
|
||||||
Q: https://patchwork.kernel.org/project/linux-acpi/list/
|
Q: https://patchwork.kernel.org/project/linux-acpi/list/
|
||||||
B: https://bugzilla.kernel.org
|
B: https://bugzilla.kernel.org
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
|
||||||
@ -427,7 +426,6 @@ M: Rafael J. Wysocki <rafael@kernel.org>
|
|||||||
R: Zhang Rui <rui.zhang@intel.com>
|
R: Zhang Rui <rui.zhang@intel.com>
|
||||||
L: linux-acpi@vger.kernel.org
|
L: linux-acpi@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: https://01.org/linux-acpi
|
|
||||||
B: https://bugzilla.kernel.org
|
B: https://bugzilla.kernel.org
|
||||||
F: drivers/acpi/*thermal*
|
F: drivers/acpi/*thermal*
|
||||||
|
|
||||||
@ -10378,7 +10376,6 @@ INTEL MENLOW THERMAL DRIVER
|
|||||||
M: Sujith Thomas <sujith.thomas@intel.com>
|
M: Sujith Thomas <sujith.thomas@intel.com>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: https://01.org/linux-acpi
|
|
||||||
F: drivers/thermal/intel/intel_menlow.c
|
F: drivers/thermal/intel/intel_menlow.c
|
||||||
|
|
||||||
INTEL P-Unit IPC DRIVER
|
INTEL P-Unit IPC DRIVER
|
||||||
|
@ -27,9 +27,6 @@ menuconfig ACPI
|
|||||||
Management (APM) specification. If both ACPI and APM support
|
Management (APM) specification. If both ACPI and APM support
|
||||||
are configured, ACPI is used.
|
are configured, ACPI is used.
|
||||||
|
|
||||||
The project home page for the Linux ACPI subsystem is here:
|
|
||||||
<https://01.org/linux-acpi>
|
|
||||||
|
|
||||||
Linux support for ACPI is based on Intel Corporation's ACPI
|
Linux support for ACPI is based on Intel Corporation's ACPI
|
||||||
Component Architecture (ACPI CA). For more information on the
|
Component Architecture (ACPI CA). For more information on the
|
||||||
ACPI CA, see:
|
ACPI CA, see:
|
||||||
@ -347,7 +344,6 @@ config ACPI_CUSTOM_DSDT_FILE
|
|||||||
depends on !STANDALONE
|
depends on !STANDALONE
|
||||||
help
|
help
|
||||||
This option supports a custom DSDT by linking it into the kernel.
|
This option supports a custom DSDT by linking it into the kernel.
|
||||||
See Documentation/admin-guide/acpi/dsdt-override.rst
|
|
||||||
|
|
||||||
Enter the full path name to the file which includes the AmlCode
|
Enter the full path name to the file which includes the AmlCode
|
||||||
or dsdt_aml_code declaration.
|
or dsdt_aml_code declaration.
|
||||||
|
@ -802,7 +802,7 @@ static bool acpi_of_modalias(struct acpi_device *adev,
|
|||||||
|
|
||||||
str = obj->string.pointer;
|
str = obj->string.pointer;
|
||||||
chr = strchr(str, ',');
|
chr = strchr(str, ',');
|
||||||
strlcpy(modalias, chr ? chr + 1 : str, len);
|
strscpy(modalias, chr ? chr + 1 : str, len);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -822,7 +822,7 @@ void acpi_set_modalias(struct acpi_device *adev, const char *default_id,
|
|||||||
char *modalias, size_t len)
|
char *modalias, size_t len)
|
||||||
{
|
{
|
||||||
if (!acpi_of_modalias(adev, modalias, len))
|
if (!acpi_of_modalias(adev, modalias, len))
|
||||||
strlcpy(modalias, default_id, len);
|
strscpy(modalias, default_id, len);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(acpi_set_modalias);
|
EXPORT_SYMBOL_GPL(acpi_set_modalias);
|
||||||
|
|
||||||
|
@ -11,9 +11,6 @@ menuconfig ACPI_DPTF
|
|||||||
a coordinated approach for different policies to effect the hardware
|
a coordinated approach for different policies to effect the hardware
|
||||||
state of a system.
|
state of a system.
|
||||||
|
|
||||||
For more information see:
|
|
||||||
<https://01.org/intel%C2%AE-dynamic-platform-and-thermal-framework-dptf-chromium-os/overview>
|
|
||||||
|
|
||||||
if ACPI_DPTF
|
if ACPI_DPTF
|
||||||
|
|
||||||
config DPTF_POWER
|
config DPTF_POWER
|
||||||
|
@ -787,7 +787,7 @@ static int acpi_processor_setup_cstates(struct acpi_processor *pr)
|
|||||||
|
|
||||||
state = &drv->states[count];
|
state = &drv->states[count];
|
||||||
snprintf(state->name, CPUIDLE_NAME_LEN, "C%d", i);
|
snprintf(state->name, CPUIDLE_NAME_LEN, "C%d", i);
|
||||||
strlcpy(state->desc, cx->desc, CPUIDLE_DESC_LEN);
|
strscpy(state->desc, cx->desc, CPUIDLE_DESC_LEN);
|
||||||
state->exit_latency = cx->latency;
|
state->exit_latency = cx->latency;
|
||||||
state->target_residency = cx->latency * latency_factor;
|
state->target_residency = cx->latency * latency_factor;
|
||||||
state->enter = acpi_idle_enter;
|
state->enter = acpi_idle_enter;
|
||||||
@ -956,7 +956,7 @@ static int acpi_processor_evaluate_lpi(acpi_handle handle,
|
|||||||
|
|
||||||
obj = pkg_elem + 9;
|
obj = pkg_elem + 9;
|
||||||
if (obj->type == ACPI_TYPE_STRING)
|
if (obj->type == ACPI_TYPE_STRING)
|
||||||
strlcpy(lpi_state->desc, obj->string.pointer,
|
strscpy(lpi_state->desc, obj->string.pointer,
|
||||||
ACPI_CX_DESC_LEN);
|
ACPI_CX_DESC_LEN);
|
||||||
|
|
||||||
lpi_state->index = state_idx;
|
lpi_state->index = state_idx;
|
||||||
@ -1022,7 +1022,7 @@ static bool combine_lpi_states(struct acpi_lpi_state *local,
|
|||||||
result->arch_flags = parent->arch_flags;
|
result->arch_flags = parent->arch_flags;
|
||||||
result->index = parent->index;
|
result->index = parent->index;
|
||||||
|
|
||||||
strlcpy(result->desc, local->desc, ACPI_CX_DESC_LEN);
|
strscpy(result->desc, local->desc, ACPI_CX_DESC_LEN);
|
||||||
strlcat(result->desc, "+", ACPI_CX_DESC_LEN);
|
strlcat(result->desc, "+", ACPI_CX_DESC_LEN);
|
||||||
strlcat(result->desc, parent->desc, ACPI_CX_DESC_LEN);
|
strlcat(result->desc, parent->desc, ACPI_CX_DESC_LEN);
|
||||||
return true;
|
return true;
|
||||||
@ -1196,7 +1196,7 @@ static int acpi_processor_setup_lpi_states(struct acpi_processor *pr)
|
|||||||
|
|
||||||
state = &drv->states[i];
|
state = &drv->states[i];
|
||||||
snprintf(state->name, CPUIDLE_NAME_LEN, "LPI-%d", i);
|
snprintf(state->name, CPUIDLE_NAME_LEN, "LPI-%d", i);
|
||||||
strlcpy(state->desc, lpi->desc, CPUIDLE_DESC_LEN);
|
strscpy(state->desc, lpi->desc, CPUIDLE_DESC_LEN);
|
||||||
state->exit_latency = lpi->wake_latency;
|
state->exit_latency = lpi->wake_latency;
|
||||||
state->target_residency = lpi->min_residency;
|
state->target_residency = lpi->min_residency;
|
||||||
if (lpi->arch_flags)
|
if (lpi->arch_flags)
|
||||||
|
@ -878,7 +878,7 @@ bool acpi_dev_present(const char *hid, const char *uid, s64 hrv)
|
|||||||
struct acpi_dev_match_info match = {};
|
struct acpi_dev_match_info match = {};
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
|
|
||||||
strlcpy(match.hid[0].id, hid, sizeof(match.hid[0].id));
|
strscpy(match.hid[0].id, hid, sizeof(match.hid[0].id));
|
||||||
match.uid = uid;
|
match.uid = uid;
|
||||||
match.hrv = hrv;
|
match.hrv = hrv;
|
||||||
|
|
||||||
@ -911,7 +911,7 @@ acpi_dev_get_next_match_dev(struct acpi_device *adev, const char *hid, const cha
|
|||||||
struct acpi_dev_match_info match = {};
|
struct acpi_dev_match_info match = {};
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
|
|
||||||
strlcpy(match.hid[0].id, hid, sizeof(match.hid[0].id));
|
strscpy(match.hid[0].id, hid, sizeof(match.hid[0].id));
|
||||||
match.uid = uid;
|
match.uid = uid;
|
||||||
match.hrv = hrv;
|
match.hrv = hrv;
|
||||||
|
|
||||||
@ -961,7 +961,7 @@ EXPORT_SYMBOL(acpi_video_backlight_string);
|
|||||||
|
|
||||||
static int __init acpi_backlight(char *str)
|
static int __init acpi_backlight(char *str)
|
||||||
{
|
{
|
||||||
strlcpy(acpi_video_backlight_string, str,
|
strscpy(acpi_video_backlight_string, str,
|
||||||
sizeof(acpi_video_backlight_string));
|
sizeof(acpi_video_backlight_string));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -190,7 +190,7 @@ int main(int argc, char *argv[])
|
|||||||
void *addr_map_capsule;
|
void *addr_map_capsule;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
char *log_buf;
|
char *log_buf;
|
||||||
int ret = 0;
|
int ret;
|
||||||
|
|
||||||
if (getuid() != 0) {
|
if (getuid() != 0) {
|
||||||
printf("Please run the tool as root - Exiting.\n");
|
printf("Please run the tool as root - Exiting.\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user