PCI: rockchip: Correct the use of FTS mask
authorBrian Norris <briannorris@chromium.org>
Wed, 7 Dec 2016 21:06:00 +0000 (15:06 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 7 Dec 2016 21:06:00 +0000 (15:06 -0600)
We're trying to mask out bits[23:8] while retaining [32:24, 7:0], but we're
doing the inverse.  That doesn't have too much effect, since we're setting
all the [23:8] bits to 1, and the other bits are only relevant for modes
we're currently not using.  But we should get this right.

Fixes: ca1989084054 ("PCI: rockchip: Fix wrong transmitted FTS count")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Shawn Lin <shawn.lin@rock-chips.com>
drivers/pci/host/pcie-rockchip.c

index 17df584..5ff2f69 100644 (file)
@@ -573,7 +573,7 @@ static int rockchip_pcie_init_port(struct rockchip_pcie *rockchip)
 
        /* Fix the transmitted FTS count desired to exit from L0s. */
        status = rockchip_pcie_read(rockchip, PCIE_CORE_CTRL_PLC1);
-       status = (status & PCIE_CORE_CTRL_PLC1_FTS_MASK) |
+       status = (status & ~PCIE_CORE_CTRL_PLC1_FTS_MASK) |
                 (PCIE_CORE_CTRL_PLC1_FTS_CNT << PCIE_CORE_CTRL_PLC1_FTS_SHIFT);
        rockchip_pcie_write(rockchip, status, PCIE_CORE_CTRL_PLC1);