Skip to content
  • Zhang Rui's avatar
    ACPI: use PNPID:instance_no as bus_id of ACPI device · e49bd2dd
    Zhang Rui authored
    
    
    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: default avatarLi Shaohua <shaohua.li@intel.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    e49bd2dd