• Dan Williams's avatar
    [ARM] 4348/4: iop3xx: Give Linux control over PCI initialization · e90ddd81
    Dan Williams authored
    Currently the iop3xx platform support code assumes that RedBoot is the
    bootloader and has already initialized the ATU.  Linux should handle this
    initialization for three reasons:
    
    1/ The memory map that RedBoot sets up is not optimal (page_to_dma and
    virt_to_phys return different addresses).  The effect of this is that using
    the dma mapping API for the internal bus dma units generates pci bus
    addresses that are incorrect for the internal bus.
    
    2/ Not all iop platforms use RedBoot
    
    3/ If the ATU is already initialized it indicates that the iop is an add-in
    card in another host, it does not own the PCI bus, and should not be
    re-initialized.
    
    Changelog:
    * rather than change nr_controllers to zero, simply do not call
      pci_common_init
    
    Cc: Lennert Buytenhek <kernel@wantstofly.org>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    e90ddd81
iq31244.c 7.62 KB