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;
|
pdev = pdev->bus->dev;
|
||||||
if (!pdev)
|
if (!pdev)
|
||||||
break;
|
break;
|
||||||
if (pdev->path.type == DEVICE_PATH_ROOT)
|
if (is_root_device(pdev))
|
||||||
break;
|
break;
|
||||||
if (pdev->ops && pdev->ops->acpi_name)
|
if (pdev->ops && pdev->ops->acpi_name)
|
||||||
name = pdev->ops->acpi_name(dev);
|
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;
|
return cur;
|
||||||
|
|
||||||
/* Walk up the tree to the root device */
|
/* 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);
|
next = acpi_device_path_fill(dev->bus->dev, buf, buf_len, cur);
|
||||||
if (next < 0)
|
if (next < 0)
|
||||||
return next;
|
return next;
|
||||||
|
|
||||||
/* Fill in the path from the root device */
|
/* Fill in the path from the root device */
|
||||||
next += snprintf(buf + next, buf_len - next, "%s%s",
|
next += snprintf(buf + next, buf_len - next, "%s%s",
|
||||||
(dev->path.type == DEVICE_PATH_ROOT
|
(is_root_device(dev) || (strlen(name) == 0)) ?
|
||||||
|| (strlen(name) == 0)) ?
|
"" : ".", name);
|
||||||
"" : ".", name);
|
|
||||||
|
|
||||||
return next;
|
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)
|
static const struct device *get_xhci_dev(const struct device *dev)
|
||||||
{
|
{
|
||||||
while (dev && dev->ops != &xhci_pci_ops) {
|
while (dev && dev->ops != &xhci_pci_ops) {
|
||||||
if (dev->path.type == DEVICE_PATH_ROOT)
|
if (is_root_device(dev))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
dev = dev->bus->dev;
|
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
|
#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_device(struct device *dev);
|
||||||
void enable_static_devices(struct device *bus);
|
void enable_static_devices(struct device *bus);
|
||||||
void scan_smbus(struct device *bus);
|
void scan_smbus(struct device *bus);
|
||||||
|
|
Loading…
Reference in a new issue