Module Name:    src
Committed By:   riastradh
Date:           Mon Mar  3 19:02:31 UTC 2025

Modified Files:
        src/sys/dev/acpi: acpi_mcfg.c
        src/sys/dev/pci: pci_resource.c pci_resource.h

Log Message:
pci_resource(9): Handle multiple ranges of the same type.

Rather than having the caller fill in an array indexed by range type
of a single start/end pair for each type, the caller will now do:

        struct pci_resource_info info;

        memset(&info, 0, sizeof(info));

        pci_resource_add_range(&info, PCI_RANGE_MEM, mstart1, mend1);
        pci_resource_add_range(&info, PCI_RANGE_MEM, mstart2, mend2);
        pci_resource_add_range(&info, PCI_RANGE_MEM, mstart3, mend3);
        pci_resource_add_range(&info, PCI_RANGE_PMEM, pstart1, pend1);
        pci_resource_add_range(&info, PCI_RANGE_IO, iostart1, ioend1);
        ...

While here, fix a format string -- 0x% or %# is enough to say that
the output is hexadecimal; we don't need to belabour the point by
printing a `0x0x' prefix!

XXX While this handles multiple io/mem/prefetchable-mem ranges, it
doesn't yet handle multiple bus ranges, which we have seen in
practice, e.g. on orion o6.  TBD.

ok jmcneill@

PR port-amd64/59118: Thinkpad T495s - iwm PCI BAR is zero


To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/dev/acpi/acpi_mcfg.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/pci/pci_resource.c
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/pci/pci_resource.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Reply via email to