• Bjorn Helgaas's avatar
    microblaze/PCI: Implement pci_resource_to_user() with pcibios_resource_to_bus() · 0ad8f06d
    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 microblaze, 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;
        pci_add_resource_offset(resources, res, hose->io_base_virt - _IO_BASE);
    
    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>
    0ad8f06d
pci-common.c 40.2 KB