• Rafael J. Wysocki's avatar
    device property: Make it possible to use secondary firmware nodes · 97badf87
    Rafael J. Wysocki authored
    Add a secondary pointer to struct fwnode_handle so as to make it
    possible for a device to have two firmware nodes associated with
    it at the same time, for example, an ACPI node and a node with
    a set of properties provided by platform initialization code.
    
    In the future that will allow device property lookup to fall back
    from the primary firmware node to the secondary one if the given
    property is not present there to make it easier to provide defaults
    for device properties used by device drivers.
    
    Introduce two helper routines, set_primary_fwnode() and
    set_secondary_fwnode() allowing callers to add a primary/secondary
    firmware node to the given device in such a way that
    
     (1) If there's only one firmware node for that device, it will be
         pointed to by the device's firmware node pointer.
     (2) If both the primary and secondary firmware nodes are present,
         the primary one will be pointed to by the device's firmware
         node pointer, while the secondary one will be pointed to by the
         primary node's secondary pointer.
     (3) If one of these nodes is removed (by calling one of the new
         nelpers with NULL as the second argument), the other one will
         be preserved.
    
    Make ACPI use set_primary_fwnode() for attaching its firmware nodes
    to devices.
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    97badf87
core.c 55.6 KB