Commit e091ba5c authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'acpi-5.20-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull more ACPI updates from Rafael Wysocki:
 "These fix up direct references to the fwnode field in struct device
  and extend ACPI device properties support.

  Specifics:

   - Replace direct references to the fwnode field in struct device with
     dev_fwnode() and device_match_fwnode() (Andy Shevchenko)

   - Make the ACPI code handling device properties support properties
     with buffer values (Sakari Ailus)"

* tag 'acpi-5.20-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: property: Fix error handling in acpi_init_properties()
  ACPI: VIOT: Do not dereference fwnode in struct device
  ACPI: property: Read buffer properties as integers
  ACPI: property: Add support for parsing buffer property UUID
  ACPI: property: Unify integer value reading functions
  ACPI: property: Switch node property referencing from ifs to a switch
  ACPI: property: Move property ref argument parsing into a new function
  ACPI: property: Use acpi_object_type consistently in property ref parsing
  ACPI: property: Tie data nodes to acpi handles
  ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
parents 8745889a da2679f2
This diff is collapsed.
...@@ -88,7 +88,7 @@ static int __init viot_get_pci_iommu_fwnode(struct viot_iommu *viommu, ...@@ -88,7 +88,7 @@ static int __init viot_get_pci_iommu_fwnode(struct viot_iommu *viommu,
return -ENODEV; return -ENODEV;
} }
fwnode = pdev->dev.fwnode; fwnode = dev_fwnode(&pdev->dev);
if (!fwnode) { if (!fwnode) {
/* /*
* PCI devices aren't necessarily described by ACPI. Create a * PCI devices aren't necessarily described by ACPI. Create a
...@@ -101,7 +101,7 @@ static int __init viot_get_pci_iommu_fwnode(struct viot_iommu *viommu, ...@@ -101,7 +101,7 @@ static int __init viot_get_pci_iommu_fwnode(struct viot_iommu *viommu,
} }
set_primary_fwnode(&pdev->dev, fwnode); set_primary_fwnode(&pdev->dev, fwnode);
} }
viommu->fwnode = pdev->dev.fwnode; viommu->fwnode = dev_fwnode(&pdev->dev);
pci_dev_put(pdev); pci_dev_put(pdev);
return 0; return 0;
} }
...@@ -314,7 +314,7 @@ static int viot_dev_iommu_init(struct device *dev, struct viot_iommu *viommu, ...@@ -314,7 +314,7 @@ static int viot_dev_iommu_init(struct device *dev, struct viot_iommu *viommu,
return -ENODEV; return -ENODEV;
/* We're not translating ourself */ /* We're not translating ourself */
if (viommu->fwnode == dev->fwnode) if (device_match_fwnode(dev, viommu->fwnode))
return -EINVAL; return -EINVAL;
ops = iommu_ops_from_fwnode(viommu->fwnode); ops = iommu_ops_from_fwnode(viommu->fwnode);
......
...@@ -344,8 +344,9 @@ struct acpi_device_physical_node { ...@@ -344,8 +344,9 @@ struct acpi_device_physical_node {
struct acpi_device_properties { struct acpi_device_properties {
const guid_t *guid; const guid_t *guid;
const union acpi_object *properties; union acpi_object *properties;
struct list_head list; struct list_head list;
void **bufs;
}; };
/* ACPI Device Specific Data (_DSD) */ /* ACPI Device Specific Data (_DSD) */
......
...@@ -1251,7 +1251,7 @@ static inline bool acpi_dev_has_props(const struct acpi_device *adev) ...@@ -1251,7 +1251,7 @@ static inline bool acpi_dev_has_props(const struct acpi_device *adev)
struct acpi_device_properties * struct acpi_device_properties *
acpi_data_add_props(struct acpi_device_data *data, const guid_t *guid, acpi_data_add_props(struct acpi_device_data *data, const guid_t *guid,
const union acpi_object *properties); union acpi_object *properties);
int acpi_node_prop_get(const struct fwnode_handle *fwnode, const char *propname, int acpi_node_prop_get(const struct fwnode_handle *fwnode, const char *propname,
void **valptr); void **valptr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment