cns3xxx: backport pci fix for cns3xxx_write_config
[openwrt.git] / target / linux / cns3xxx / patches-4.4 / 033-CNS3xxx-Fix-PCI-cns3xxx_write_config.patch
1 --- a/arch/arm/mach-cns3xxx/pcie.c
2 +++ b/arch/arm/mach-cns3xxx/pcie.c
3 @@ -220,13 +220,13 @@ static void cns3xxx_write_config(struct
4         u32 mask = (0x1ull << (size * 8)) - 1;
5         int shift = (where % 4) * 8;
6  
7 -       v = readl_relaxed(base + (where & 0xffc));
8 +       v = readl_relaxed(base);
9  
10         v &= ~(mask << shift);
11         v |= (val & mask) << shift;
12  
13 -       writel_relaxed(v, base + (where & 0xffc));
14 -       readl_relaxed(base + (where & 0xffc));
15 +       writel_relaxed(v, base);
16 +       readl_relaxed(base);
17  }
18  
19  static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci)