This series patches refine pci-imx6 driver and do the following changes. - Encapsulate the clock enable into one standalone function - Add the error propagation from host_init - Balance the usage of the regulator and clocks when link never came up - Add the compliance tests mode support Main changes from v4 to v5: - Since i.MX8MM PCIe support had been merged. Based on Lorenzo's git repos, rebase and resend the patch-set. Main changes from v3 to v4: - Regarding Mark's comments, delete the regulator_is_enabled() check. - Squash #3 and #6 of v3 patch into #5 patch of v4 set. Main changes from v2 to v3: - Add "Reviewed-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>" tag into first two patches. - Add a Fixes tag into #3 patch. - Split the #4 of v2 to two patches, one is clock disable codes move, the other one is the acutal clock unbalance fix. - Add a new host_exit() callback into dw_pcie_host_ops, then it could be invoked to handle the unbalance issue in the error handling after host_init() function when link is down. - Add a new host_exit() callback for i.MX PCIe driver to handle this case in the error handling after host_init. Main changes from v1 to v2: Regarding Lucas' comments. - Move the placement of the new imx6_pcie_clk_enable() to avoid the forward declarition. - Seperate the second patch of v1 patch-set to three patches. - Use the module_param to replace the kernel command line. Regarding Bjorn's comments: - Use the cover-letter for a multi-patch series. - Correct the subject line, and refine the commit logs. For example, remove the timestamp of the logs. drivers/pci/controller/dwc/pci-imx6.c | 197 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------- drivers/pci/controller/dwc/pcie-designware-host.c | 5 ++- drivers/pci/controller/dwc/pcie-designware.h | 1 + 3 files changed, 128 insertions(+), 75 deletions(-) [PATCH v5 1/6] PCI: imx6: Encapsulate the clock enable into one [PATCH v5 2/6] PCI: imx6: Add the error propagation from host_init [PATCH v5 3/6] PCI: imx6: PCI: imx6: Move imx6_pcie_clk_disable() [PATCH v5 4/6] PCI: dwc: Add dw_pcie_host_ops.host_exit() callback [PATCH v5 5/6] PCI: imx6: Fix the regulator dump when link never came [PATCH v5 6/6] PCI: imx6: Add the compliance tests mode support