OSDN Git Service

PCI: imx6: Simplify pcie_phy_poll_ack()
authorAndrey Smirnov <andrew.smirnov@gmail.com>
Mon, 15 Apr 2019 00:46:29 +0000 (17:46 -0700)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Wed, 1 May 2019 10:35:47 +0000 (11:35 +0100)
Simplify pcie_phy_poll_ack() by incorporating shifting into constant
definition and convert the code to use 'bool'. No functional change
intended.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Chris Healy <cphealy@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: linux-kernel@vger.kernel.org
Cc: linux-pci@vger.kernel.org
drivers/pci/controller/dwc/pci-imx6.c

index 669e013..3fd0843 100644 (file)
@@ -112,7 +112,7 @@ struct imx6_pcie {
 #define PCIE_PHY_CTRL_RD               BIT(19)
 
 #define PCIE_PHY_STAT (PL_OFFSET + 0x110)
-#define PCIE_PHY_STAT_ACK_LOC 16
+#define PCIE_PHY_STAT_ACK              BIT(16)
 
 #define PCIE_LINK_WIDTH_SPEED_CONTROL  0x80C
 
@@ -151,16 +151,16 @@ struct imx6_pcie {
 #define PHY_RX_OVRD_IN_LO_RX_DATA_EN           BIT(5)
 #define PHY_RX_OVRD_IN_LO_RX_PLL_EN            BIT(3)
 
-static int pcie_phy_poll_ack(struct imx6_pcie *imx6_pcie, int exp_val)
+static int pcie_phy_poll_ack(struct imx6_pcie *imx6_pcie, bool exp_val)
 {
        struct dw_pcie *pci = imx6_pcie->pci;
-       u32 val;
+       bool val;
        u32 max_iterations = 10;
        u32 wait_counter = 0;
 
        do {
-               val = dw_pcie_readl_dbi(pci, PCIE_PHY_STAT);
-               val = (val >> PCIE_PHY_STAT_ACK_LOC) & 0x1;
+               val = dw_pcie_readl_dbi(pci, PCIE_PHY_STAT) &
+                       PCIE_PHY_STAT_ACK;
                wait_counter++;
 
                if (val == exp_val)
@@ -184,14 +184,14 @@ static int pcie_phy_wait_ack(struct imx6_pcie *imx6_pcie, int addr)
        val |= PCIE_PHY_CTRL_CAP_ADR;
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, val);
 
-       ret = pcie_phy_poll_ack(imx6_pcie, 1);
+       ret = pcie_phy_poll_ack(imx6_pcie, true);
        if (ret)
                return ret;
 
        val = PCIE_PHY_CTRL_DATA(addr);
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, val);
 
-       return pcie_phy_poll_ack(imx6_pcie, 0);
+       return pcie_phy_poll_ack(imx6_pcie, false);
 }
 
 /* Read from the 16-bit PCIe PHY control registers (not memory-mapped) */
@@ -209,7 +209,7 @@ static int pcie_phy_read(struct imx6_pcie *imx6_pcie, int addr, int *data)
        phy_ctl = PCIE_PHY_CTRL_RD;
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, phy_ctl);
 
-       ret = pcie_phy_poll_ack(imx6_pcie, 1);
+       ret = pcie_phy_poll_ack(imx6_pcie, true);
        if (ret)
                return ret;
 
@@ -219,7 +219,7 @@ static int pcie_phy_read(struct imx6_pcie *imx6_pcie, int addr, int *data)
        /* deassert Read signal */
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, 0x00);
 
-       return pcie_phy_poll_ack(imx6_pcie, 0);
+       return pcie_phy_poll_ack(imx6_pcie, false);
 }
 
 static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, int data)
@@ -241,7 +241,7 @@ static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, int data)
        var |= PCIE_PHY_CTRL_CAP_DAT;
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, var);
 
-       ret = pcie_phy_poll_ack(imx6_pcie, 1);
+       ret = pcie_phy_poll_ack(imx6_pcie, true);
        if (ret)
                return ret;
 
@@ -250,7 +250,7 @@ static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, int data)
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, var);
 
        /* wait for ack de-assertion */
-       ret = pcie_phy_poll_ack(imx6_pcie, 0);
+       ret = pcie_phy_poll_ack(imx6_pcie, false);
        if (ret)
                return ret;
 
@@ -259,7 +259,7 @@ static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, int data)
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, var);
 
        /* wait for ack */
-       ret = pcie_phy_poll_ack(imx6_pcie, 1);
+       ret = pcie_phy_poll_ack(imx6_pcie, true);
        if (ret)
                return ret;
 
@@ -268,7 +268,7 @@ static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, int data)
        dw_pcie_writel_dbi(pci, PCIE_PHY_CTRL, var);
 
        /* wait for ack de-assertion */
-       ret = pcie_phy_poll_ack(imx6_pcie, 0);
+       ret = pcie_phy_poll_ack(imx6_pcie, false);
        if (ret)
                return ret;