• Rob Herring's avatar
    PCI: dwc: Detect number of iATU windows · 281f1f99
    Rob Herring authored
    Currently the number of inbound and outbound iATU windows are determined
    from DT properties. Unfortunately, there's 'num-viewport' for RC mode
    and 'num-ib-windows' and 'num-ob-windows' for EP mode, yet the number of
    windows is not mode dependent. Also, 'num-viewport' is not clear whether
    that's inbound, outbound or both. We can probably assume it's outbound
    windows as that's all RC mode uses.
    
    However, using DT properties isn't really needed as the number of
    regions can be detected at runtime by poking the iATU registers. The
    basic algorithm is just writing a target address and reading back what
    we wrote. In the unrolled ATU case, we have to take care not to go
    past the mapped region.
    
    With this, we can drop num_viewport in favor of num_ob_windows instead.
    
    Link: https://lore.kernel.org/r/20201105211159.1814485-17-robh@kernel.orgTested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Jingoo Han <jingoohan1@gmail.com>
    Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Thierry Reding <thierry.reding@gmail.com>
    Cc: Jonathan Hunter <jonathanh@nvidia.com>
    Cc: linux-tegra@vger.kernel.org
    281f1f99
pcie-designware.c 17.9 KB