diff options
author | Felix Held <felix-coreboot@felixheld.de> | 2018-07-27 16:41:32 +0200 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2018-07-29 15:06:41 +0000 |
commit | a662777b6f57271392d9b52b4f7c002240893aa1 (patch) | |
tree | 38542bd822bcd75945a8920926bf13a7f3dc295f /src/device/pnp_device.c | |
parent | f2ec648fcb6f17382293cbcc69e46c485ee3b786 (diff) | |
download | coreboot-a662777b6f57271392d9b52b4f7c002240893aa1.tar.xz |
pnp_device: don't treat missing PNP_MSC devicetree entry as error
Change-Id: I8da01cd462225b633bf2043ab33b35aeddc8d55a
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/27668
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'src/device/pnp_device.c')
-rw-r--r-- | src/device/pnp_device.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/device/pnp_device.c b/src/device/pnp_device.c index 09a27487b3..e56b00d774 100644 --- a/src/device/pnp_device.c +++ b/src/device/pnp_device.c @@ -118,9 +118,21 @@ void pnp_read_resources(struct device *dev) static void pnp_set_resource(struct device *dev, struct resource *resource) { if (!(resource->flags & IORESOURCE_ASSIGNED)) { - printk(BIOS_ERR, "ERROR: %s %02lx %s size: 0x%010llx " - "not assigned\n", dev_path(dev), resource->index, - resource_type(resource), resource->size); + /* The PNP_MSC super IO registers have the IRQ flag set. If no + value is assigned in the devicetree, the corresponding + PNP_MSC register doesn't get written, which should be printed + as warning and not as error. */ + if (resource->flags & IORESOURCE_IRQ && + (resource->index != PNP_IDX_IRQ0) && + (resource->index != PNP_IDX_IRQ1)) + printk(BIOS_WARNING, "WARNING: %s %02lx %s size: " + "0x%010llx not assigned\n", dev_path(dev), + resource->index, resource_type(resource), + resource->size); + else + printk(BIOS_ERR, "ERROR: %s %02lx %s size: 0x%010llx " + "not assigned\n", dev_path(dev), resource->index, + resource_type(resource), resource->size); return; } |