In order to avoid having potentially ever growing list of variants that don't support methods implemented in imx6_pcie_reset_phy() and imx6_setup_phy_mpll(), change logical checks in the to check for SoC's that _do_ support what they implement. While at it, share the code via a small helper function. Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> Cc: Fabio Estevam <fabio.estevam@xxxxxxx> Cc: Chris Healy <cphealy@xxxxxxxxx> Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> Cc: Leonard Crestez <leonard.crestez@xxxxxxx> Cc: "A.s. Dong" <aisheng.dong@xxxxxxx> Cc: Richard Zhu <hongxing.zhu@xxxxxxx> Cc: linux-imx@xxxxxxx Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Cc: linux-pci@xxxxxxxxxxxxxxx Suggested-by: Bjorn Helgaas <helgaas@xxxxxxxxxx> Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- drivers/pci/controller/dwc/pci-imx6.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 4b7f638b8aff..59658577e81d 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -256,12 +256,18 @@ static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, int data) return 0; } +static bool imx6_pcie_has_imx6_phy(struct imx6_pcie *imx6_pcie) +{ + return imx6_pcie->variant == IMX6Q || + imx6_pcie->variant == IMX6SX || + imx6_pcie->variant == IMX6QP; +} + static void imx6_pcie_reset_phy(struct imx6_pcie *imx6_pcie) { u32 tmp; - if (imx6_pcie->variant == IMX7D || - imx6_pcie->variant == IMX8MQ) + if (!imx6_pcie_has_imx6_phy(imx6_pcie)) return; pcie_phy_read(imx6_pcie, PHY_RX_OVRD_IN_LO, &tmp); @@ -637,8 +643,7 @@ static int imx6_setup_phy_mpll(struct imx6_pcie *imx6_pcie) int mult, div; u32 val; - if (imx6_pcie->variant == IMX7D || - imx6_pcie->variant == IMX8MQ) + if (!imx6_pcie_has_imx6_phy(imx6_pcie)) return 0; switch (phy_rate) { -- 2.19.1