diff options
-rw-r--r-- | src/acpi/device.c | 9 | ||||
-rw-r--r-- | src/drivers/usb/pci_xhci/pci_xhci.c | 2 | ||||
-rw-r--r-- | src/include/device/device.h | 9 |
3 files changed, 14 insertions, 6 deletions
diff --git a/src/acpi/device.c b/src/acpi/device.c index 92000a3d8b..823cdbeb5a 100644 --- a/src/acpi/device.c +++ b/src/acpi/device.c @@ -87,7 +87,7 @@ const char *acpi_device_name(const struct device *dev) pdev = pdev->bus->dev; if (!pdev) break; - if (pdev->path.type == DEVICE_PATH_ROOT) + if (is_root_device(pdev)) break; if (pdev->ops && pdev->ops->acpi_name) name = pdev->ops->acpi_name(dev); @@ -147,16 +147,15 @@ static ssize_t acpi_device_path_fill(const struct device *dev, char *buf, return cur; /* Walk up the tree to the root device */ - if (dev->path.type != DEVICE_PATH_ROOT && dev->bus && dev->bus->dev) + if (!is_root_device(dev) && dev->bus && dev->bus->dev) next = acpi_device_path_fill(dev->bus->dev, buf, buf_len, cur); if (next < 0) return next; /* Fill in the path from the root device */ next += snprintf(buf + next, buf_len - next, "%s%s", - (dev->path.type == DEVICE_PATH_ROOT - || (strlen(name) == 0)) ? - "" : ".", name); + (is_root_device(dev) || (strlen(name) == 0)) ? + "" : ".", name); return next; } diff --git a/src/drivers/usb/pci_xhci/pci_xhci.c b/src/drivers/usb/pci_xhci/pci_xhci.c index 6d022d1455..398595d114 100644 --- a/src/drivers/usb/pci_xhci/pci_xhci.c +++ b/src/drivers/usb/pci_xhci/pci_xhci.c @@ -73,7 +73,7 @@ static bool xhci_port_exists(const struct device *dev, const struct usb_path *pa static const struct device *get_xhci_dev(const struct device *dev) { while (dev && dev->ops != &xhci_pci_ops) { - if (dev->path.type == DEVICE_PATH_ROOT) + if (is_root_device(dev)) return NULL; dev = dev->bus->dev; diff --git a/src/include/device/device.h b/src/include/device/device.h index cd0999ac94..863299c01d 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -458,6 +458,15 @@ static inline DEVTREE_CONST void *config_of(const struct device *dev) */ #define config_of_soc() __pci_0_00_0_config +static inline bool is_root_device(const struct device *dev) +{ + if (!dev || !dev->bus) + return false; + + return (dev->path.type == DEVICE_PATH_ROOT) || + (dev->bus->dev == dev); +} + void enable_static_device(struct device *dev); void enable_static_devices(struct device *bus); void scan_smbus(struct device *bus); |