diff --git a/drivers/net/ethernet/lantiq/cqm/falconmx/cqm_proc.c b/drivers/net/ethernet/lantiq/cqm/falconmx/cqm_proc.c index 40d5708a3b44ab5b8eef9e64564caaf8a72a28cc..323bc1a7da1584c28d2a4605cf013a0f5529ccf2 100644 --- a/drivers/net/ethernet/lantiq/cqm/falconmx/cqm_proc.c +++ b/drivers/net/ethernet/lantiq/cqm/falconmx/cqm_proc.c @@ -125,7 +125,7 @@ uint64_t REG64(void *addr) reg1 = cbm_r32(addr); reg2 = cbm_r32(addr + 4); - readreg = (((u64)reg1) >> 32) + (u64)reg2; + readreg = (((u64)reg1) << 32) + (u64)reg2; return readreg; } EXPORT_SYMBOL(REG64); @@ -310,11 +310,11 @@ static ssize_t cqm_dma_desc_write(struct file *file, const char __user *buf, PRINTK("Addr: %8p\n", addr); reg64 = REG64(addr); reg1 = (u32)(reg64 >> 32); - reg2 = (reg & 0xFFFFFFFF); + reg2 = (reg64 & 0xFFFFFFFF); reg64 = REG64(addr1); reg3 = (u32)(reg64 >> 32); - reg4 = (reg & 0xFFFFFFFF); + reg4 = (reg64 & 0xFFFFFFFF); PRINTK("Val: 0x%08x%08x\n", reg1, reg2); PRINTK("Name: DESC1_%d_IGP_%02d\n", @@ -323,7 +323,7 @@ static ssize_t cqm_dma_desc_write(struct file *file, const char __user *buf, addr1); reg64 = REG64(addr1); reg3 = (u32)(reg64 >> 32); - reg4 = (reg & 0xFFFFFFFF); + reg4 = (reg64 & 0xFFFFFFFF); PRINTK("Val: 0x%08x%08x\n", reg3, reg4); } @@ -347,11 +347,11 @@ static ssize_t cqm_dma_desc_write(struct file *file, const char __user *buf, PRINTK("Addr: %8p\n", addr); reg64 = REG64(addr); reg1 = (u32)(reg64 >> 32); - reg2 = (reg & 0xFFFFFFFF); + reg2 = (reg64 & 0xFFFFFFFF); reg64 = REG64(addr1); reg3 = (u32)(reg64 >> 32); - reg4 = (reg & 0xFFFFFFFF); + reg4 = (reg64 & 0xFFFFFFFF); PRINTK("Val: 0x%08x%08x\n", reg1, reg2); PRINTK("Name: DESC1_0_EGP\n"); PRINTK("Addr: %8p\n", addr1);