add fix from #1516
authorFelix Fietkau <nbd@openwrt.org>
Sun, 25 Mar 2007 16:25:15 +0000 (16:25 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 25 Mar 2007 16:25:15 +0000 (16:25 +0000)
SVN-Revision: 6697

target/linux/brcm47xx-2.6/files/drivers/ssb/driver_pci/pcicore.c

index e025834..d9aa22b 100644 (file)
@@ -162,7 +162,6 @@ static int ssb_extpci_read_config(struct ssb_pcicore *pc,
                goto unmap;
        }
        
-       val = readl(mmio);
        val >>= (8 * (off & 3));
 
        switch (len) {
@@ -210,12 +209,10 @@ static int ssb_extpci_write_config(struct ssb_pcicore *pc,
 
        switch (len) {
        case 1:
-               val = readl(mmio);
                val &= ~(0xFF << (8 * (off & 3)));
                val |= *((const u8 *)buf) << (8 * (off & 3));
                break;
        case 2:
-               val = readl(mmio);
                val &= ~(0xFFFF << (8 * (off & 3)));
                val |= *((const u16 *)buf) << (8 * (off & 3));
                break;
@@ -223,7 +220,7 @@ static int ssb_extpci_write_config(struct ssb_pcicore *pc,
                val = *((const u32 *)buf);
                break;
        }
-       writel(*((const u32 *)buf), mmio);
+       writel(val, mmio);
 
        err = 0;
 unmap: