e49bd2dd5a
Previously we used the device name in the DSDT, but would crash upon encountering a duplicate. Also, exposing the DSDT device name to the user in a patch isn't a good idea, because it is arbitrary. After some discussion, we finally decided to use "PNPID:instance_no" as the bus_id of ACPI devices. Two attributes for each device are added at the same time, the full pathname in ACPI namespace and hardware_id if it has. NOTE: acpi_bus_id_list is used to keep the information of PNPID and instance number of the given PNPID. Loop the acpi_bus_id_list to find the instance_no of the same PNPID when register a device. If failed, i.e. we don't have a node with this PNPID, allocate one and link it to this list. NOTE: Now I don't take the memory free work in charge. If necessary, I can add a reference count in struct acpi_device_bus_id, and check the reference and when unregister a device, i.e. memory is freed when the reference count of a given PNPID is 0. Signed-off-by: Li Shaohua <shaohua.li@intel.com> Signed-off-by: Len Brown <len.brown@intel.com> |
||
---|---|---|
.. | ||
dispatcher | ||
events | ||
executer | ||
hardware | ||
namespace | ||
parser | ||
resources | ||
sleep | ||
tables | ||
utilities | ||
ac.c | ||
acpi_memhotplug.c | ||
asus_acpi.c | ||
battery.c | ||
blacklist.c | ||
bus.c | ||
button.c | ||
cm_sbs.c | ||
container.c | ||
debug.c | ||
dock.c | ||
ec.c | ||
event.c | ||
fan.c | ||
glue.c | ||
hotkey.c | ||
i2c_ec.c | ||
i2c_ec.h | ||
ibm_acpi.c | ||
Kconfig | ||
Makefile | ||
motherboard.c | ||
numa.c | ||
osl.c | ||
pci_bind.c | ||
pci_irq.c | ||
pci_link.c | ||
pci_root.c | ||
power.c | ||
processor_core.c | ||
processor_idle.c | ||
processor_perflib.c | ||
processor_thermal.c | ||
processor_throttling.c | ||
sbs.c | ||
scan.c | ||
system.c | ||
tables.c | ||
thermal.c | ||
toshiba_acpi.c | ||
utils.c | ||
video.c |