Skip to content

Commit eb48270

Browse files
Jack Ping CHNGNipaLocal
authored andcommitted
net: pcs: xpcs: mask readl() return value to 16 bits
readl() returns 32-bit value but Clause 22/45 registers are 16-bit wide. Masking with 0xFFFF avoids using garbage upper bits. Signed-off-by: Jack Ping CHNG <[email protected]> Reviewed-by: Maxime Chevallier <[email protected]> Signed-off-by: NipaLocal <nipa@local>
1 parent fbeaf57 commit eb48270

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/net/pcs/pcs-xpcs-plat.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ static int xpcs_mmio_read_reg_indirect(struct dw_xpcs_plat *pxpcs,
6666
switch (pxpcs->reg_width) {
6767
case 4:
6868
writel(page, pxpcs->reg_base + (DW_VR_CSR_VIEWPORT << 2));
69-
ret = readl(pxpcs->reg_base + (ofs << 2));
69+
ret = readl(pxpcs->reg_base + (ofs << 2)) & 0xffff;
7070
break;
7171
default:
7272
writew(page, pxpcs->reg_base + (DW_VR_CSR_VIEWPORT << 1));
@@ -124,7 +124,7 @@ static int xpcs_mmio_read_reg_direct(struct dw_xpcs_plat *pxpcs,
124124

125125
switch (pxpcs->reg_width) {
126126
case 4:
127-
ret = readl(pxpcs->reg_base + (csr << 2));
127+
ret = readl(pxpcs->reg_base + (csr << 2)) & 0xffff;
128128
break;
129129
default:
130130
ret = readw(pxpcs->reg_base + (csr << 1));

0 commit comments

Comments
 (0)