PCI: dwc: designware: Test PCIE_ATU_ENABLE bit specifically
authorJisheng Zhang <jszhang@marvell.com>
Tue, 18 Jul 2017 06:48:21 +0000 (14:48 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 2 Aug 2017 21:51:24 +0000 (16:51 -0500)
The ATU CTRL2 register is 32 bits, and bits other than the enable bit may
be set.  To check whether the ATU is enabled or not, we should test the
enable bit specifically.

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Joao Pinto <jpinto@synopsys.com>
Acked-by: Jingoo Han <jingoohan1@gmail.com>
drivers/pci/dwc/pcie-designware.c

index ebcdce2..50cef47 100644 (file)
@@ -178,7 +178,7 @@ void dw_pcie_prog_outbound_atu(struct dw_pcie *pci, int index, int type,
         */
        for (retries = 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++) {
                val = dw_pcie_readl_dbi(pci, PCIE_ATU_CR2);
-               if (val == PCIE_ATU_ENABLE)
+               if (val & PCIE_ATU_ENABLE)
                        return;
 
                usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);