mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
pci: pci_mvebu: set BAR0 after memory space is set
The non-DM version of this driver used to set BAR0 register after the calls to pci_set_region. I found out that for some strange reason the ath10k driver in kernel fails to work if this is done the other way around. I know that Linux's driver should not depend on how U-Boot does things, but for some strange reason it does and this seems to be the simplest solution. Fix it since it caused regressions on Omnia. Signed-off-by: Marek Behún <marek.behun@nic.cz> Cc: Stefan Roese <sr@denx.de> Cc: Dirk Eibach <dirk.eibach@gdsys.cc> Cc: Mario Six <mario.six@gdsys.cc> Cc: Chris Packham <chris.packham@alliedtelesis.co.nz> Cc: Phil Sutter <phil@nwl.cc> Cc: VlaoMao <vlaomao@gmail.com> Tested-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
6de5a717c7
commit
193a1e9f19
1 changed files with 4 additions and 4 deletions
|
@ -313,10 +313,6 @@ static int mvebu_pcie_probe(struct udevice *dev)
|
|||
reg |= BIT(10); /* disable interrupts */
|
||||
writel(reg, pcie->base + PCIE_CMD_OFF);
|
||||
|
||||
/* Set BAR0 to internal registers */
|
||||
writel(SOC_REGS_PHY_BASE, pcie->base + PCIE_BAR_LO_OFF(0));
|
||||
writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
|
||||
|
||||
/* PCI memory space */
|
||||
pci_set_region(hose->regions + 0, pcie->mem.start,
|
||||
pcie->mem.start, PCIE_MEM_SIZE, PCI_REGION_MEM);
|
||||
|
@ -326,6 +322,10 @@ static int mvebu_pcie_probe(struct udevice *dev)
|
|||
PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);
|
||||
hose->region_count = 2;
|
||||
|
||||
/* Set BAR0 to internal registers */
|
||||
writel(SOC_REGS_PHY_BASE, pcie->base + PCIE_BAR_LO_OFF(0));
|
||||
writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
|
||||
|
||||
bus++;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue