From ec62d30ab9638255b6e3851b03af8c506cf3fc01 Mon Sep 17 00:00:00 2001 From: Yan He Date: Mon, 7 Dec 2015 18:20:35 -0800 Subject: [PATCH] msm: ep_pcie: set up execution environment before link up Set up the execution environment before PCIe link training to provide better adaptability to various hosts. Change-Id: I72721d3b88a7e5b1a0a1f408da2228391559468e Signed-off-by: Yan He --- drivers/platform/msm/ep_pcie/ep_pcie_com.h | 3 +++ drivers/platform/msm/ep_pcie/ep_pcie_core.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/platform/msm/ep_pcie/ep_pcie_com.h b/drivers/platform/msm/ep_pcie/ep_pcie_com.h index c886dd2777dd..69a486575edd 100644 --- a/drivers/platform/msm/ep_pcie/ep_pcie_com.h +++ b/drivers/platform/msm/ep_pcie/ep_pcie_com.h @@ -95,6 +95,9 @@ #define PCIE20_PLR_IATU_LTAR 0x918 #define PCIE20_PLR_IATU_UTAR 0x91c +#define PCIE20_MHICFG 0x110 +#define PCIE20_BHI_EXECENV 0x228 + #define PCIE20_AUX_CLK_FREQ_REG 0xB40 #define PERST_TIMEOUT_US_MIN 1000 diff --git a/drivers/platform/msm/ep_pcie/ep_pcie_core.c b/drivers/platform/msm/ep_pcie/ep_pcie_core.c index c8399388c823..d21461c9291e 100644 --- a/drivers/platform/msm/ep_pcie/ep_pcie_core.c +++ b/drivers/platform/msm/ep_pcie/ep_pcie_core.c @@ -557,6 +557,9 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev) /* Configure BARs */ ep_pcie_bar_init(dev); + ep_pcie_write_reg(dev->mmio, PCIE20_MHICFG, 0x02800880); + ep_pcie_write_reg(dev->mmio, PCIE20_BHI_EXECENV, 0x2); + /* Configure IRQ events */ if (dev->aggregated_irq) { ep_pcie_write_reg(dev->parf, PCIE20_PARF_INT_ALL_MASK, 0);