device: Add inline method to identify PATH_ROOT
Add and use inline method to identify the root device. Change-Id: I394c8668245bcfea6414b8ca5f14ef8135897e59 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80169 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
parent
d8796e50f3
commit
f95dbcee71
3 changed files with 14 additions and 6 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue