• L
    ACPI: Add FWNODE_ACPI_STATIC fwnode type · 027b25b2
    Lorenzo Pieralisi 提交于
    On systems booting with a device tree, every struct device is associated
    with a struct device_node, that provides its DT firmware representation.
    The device node can be used in generic kernel contexts (eg IRQ
    translation, IOMMU streamid mapping), to retrieve the properties
    associated with the device and carry out kernel operations accordingly.
    Owing to the 1:1 relationship between the device and its device_node,
    the device_node can also be used as a look-up token for the device (eg
    looking up a device through its device_node), to retrieve the device in
    kernel paths where the device_node is available.
    
    On systems booting with ACPI, the same abstraction provided by
    the device_node is required to provide look-up functionality.
    
    The struct acpi_device, that represents firmware objects in the
    ACPI namespace already includes a struct fwnode_handle of
    type FWNODE_ACPI as their member; the same abstraction is missing
    though for devices that are instantiated out of static ACPI tables
    entries (eg ARM SMMU devices).
    
    Add a new fwnode_handle type to associate devices created out
    of static ACPI table entries to the respective firmware components
    and create a simple ACPI core layer interface to dynamically allocate
    and free the corresponding firmware nodes so that kernel subsystems
    can use it to instantiate the nodes and associate them with the
    respective devices.
    Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: NHanjun Guo <hanjun.guo@linaro.org>
    Reviewed-by: NTomasz Nowicki <tn@semihalf.com>
    Tested-by: NHanjun Guo <hanjun.guo@linaro.org>
    Tested-by: NTomasz Nowicki <tn@semihalf.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Signed-off-by: NWill Deacon <will.deacon@arm.com>
    027b25b2
fwnode.h 650 字节