• Serge Semin's avatar
    ntb: idt: Set PCIe bus address to BARLIMITx · 37a3e969
    Serge Semin authored
    IDT NTB driver sets the upper limit of actual translation address
    being written to the corresponding memory window setup. It is achieved
    by BARLIMITx register initialization. Needless to say, that the register
    works within PCIe bus address space.
    
    In general CPU and PCIe address spaces are different. It means,
    that addresses used for Memory TLPs routine can be different from
    CPU addresses. While in most of cases they are the same, there are
    exceptions when the proper mapping must be performed to have the
    portable driver code. There used to be a virt_to_bus()/bus_to_virt()
    interface for this purpose. But it's deprecated now. It was also a
    mistake to use pci_resource_start() since the return address of the
    method is at the CPU address space. In order to achieve the desired
    purpose we need to use pci_bus_address() helper. This method shall
    return a PCIe bus base address of the corresponding BAR resource.
    Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
    Acked-by: default avatarAllen Hubbe <allenbh@gmail.com>
    Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
    37a3e969
ntb_hw_idt.c 84.7 KB