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 - Add one new host_exit callback, used to balance the usage of the regulator and clocks when link never came up - Add the compliance tests mode support 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 | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------- drivers/pci/controller/dwc/pcie-designware-host.c | 5 ++- drivers/pci/controller/dwc/pcie-designware.h | 1 + 3 files changed, 119 insertions(+), 63 deletions(-) [PATCH v3 1/7] PCI: imx6: Encapsulate the clock enable into one [PATCH v3 2/7] PCI: imx6: Add the error propagation from host_init [PATCH v3 3/7] PCI: imx6: Fix the regulator dump when link never came [PATCH v3 4/7] PCI: imx6: move the clock disable function to a proper [PATCH v3 5/7] PCI: dwc: add a new callback host exit function into [PATCH v3 6/7] PCI: imx6: Fix the reference handling unbalance when [PATCH v3 7/7] PCI: imx6: Add the compliance tests mode support