> -----Original Message----- > From: Frank Li <frank.li@xxxxxxx> > Sent: 2024年9月24日 2:59 > To: Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx>; Krzysztof Wilczyński > <kw@xxxxxxxxx>; Manivannan Sadhasivam > <manivannan.sadhasivam@xxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; > Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; Krzysztof Kozlowski > <krzk+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>; Abraham I > <kishon@xxxxxxxxxx>; Saravana Kannan <saravanak@xxxxxxxxxx>; Jingoo > Han <jingoohan1@xxxxxxxxx>; Gustavo Pimentel > <gustavo.pimentel@xxxxxxxxxxxx>; Jesper Nilsson > <jesper.nilsson@xxxxxxxx>; Hongxing Zhu <hongxing.zhu@xxxxxxx>; Lucas > Stach <l.stach@xxxxxxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>; > Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>; Pengutronix Kernel Team > <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <festevam@xxxxxxxxx> > Cc: linux-pci@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; > linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; imx@xxxxxxxxxxxxxxx; Krzysztof > Wilczyński <kwilczynski@xxxxxxxxxx>; Frank Li <frank.li@xxxxxxx> > Subject: [PATCH v2 3/4] PCI: imx6: Pass correct sub mode when calling > phy_set_mode_ext() > > Fix hardcoding to Root Complex (RC) mode by adding a drvdata mode check. > Pass PHY_MODE_PCIE_EP if the PCI controller operates in Endpoint (EP) > mode. > > Fixes: 8026f2d8e8a9 ("PCI: imx6: Call common PHY API to set mode, speed, > and submode") > Signed-off-by: Frank Li <Frank.Li@xxxxxxx> Reviewed-by: Richard Zhu <hongxing.zhu@xxxxxxx> Best Regards Richard Zhu > --- > drivers/pci/controller/dwc/pci-imx6.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c > b/drivers/pci/controller/dwc/pci-imx6.c > index 808d1f1054173..bdc2b372e6c13 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -961,7 +961,9 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp) > goto err_clk_disable; > } > > - ret = phy_set_mode_ext(imx_pcie->phy, PHY_MODE_PCIE, > PHY_MODE_PCIE_RC); > + ret = phy_set_mode_ext(imx_pcie->phy, PHY_MODE_PCIE, > + imx_pcie->drvdata->mode == > DW_PCIE_EP_TYPE ? > + PHY_MODE_PCIE_EP : PHY_MODE_PCIE_RC); > if (ret) { > dev_err(dev, "unable to set PCIe PHY mode\n"); > goto err_phy_exit; > > -- > 2.34.1