• Bjorn Helgaas's avatar
    powerpc/pci: Implement pci_resource_to_user() with pcibios_resource_to_bus() · 38301358
    Bjorn Helgaas authored
    "User" addresses are shown in /sys/devices/pci.../.../resource and
    /proc/bus/pci/devices and used as mmap offsets for /proc/bus/pci/BB/DD.F
    files.  For I/O port resources on powerpc, these are PCI bus addresses,
    i.e., raw BAR values.
    
    Previously pci_resource_to_user() computed the user address by subtracting
    "hose->io_base_virt - _IO_BASE" from the resource start:
    
      pci_resource_to_user()
        if (IO)
          offset = (unsigned long)hose->io_base_virt - _IO_BASE;
        *start = rsrc->start - offset;
    
    We've already told the PCI core about that "hose->io_base_virt - _IO_BASE"
    offset:
    
      pcibios_setup_phb_resources()
        res = &hose->io_resource;
        offset = pcibios_io_space_offset();
        /* i.e., "offset = hose->io_base_virt - _IO_BASE" */
        pci_add_resource_offset(resources, res, offset);
    
    so pcibios_resource_to_bus() knows how to do that translation.
    
    No functional change intended.
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
    38301358
pci-common.c 45.2 KB