* [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init
@ 2017-08-03 8:23 Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers Zhiqiang Hou
` (5 more replies)
0 siblings, 6 replies; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The first two patches are aim to fix the designware Class code fixup
doesn't work issue, because the Class Code register of DBI is read-only,
so must enable the write permission before updating this register.
The rest 4 patches are used to refactor the ls-pcie host init function.
Make ls1021a pcie reuse the ls-pcie common host init function.
Disable the bootloader configured outbound windows to avoid conflict
to outbound windows configured by dw_pcie_setup_rc().
And remove the duplicate Class Code fixup from ls-pcie driver.
Hou Zhiqiang (6):
PCI: designware: add accessors for write permission of DBI read-only
registers
PCI: designware: enable write permission before updating class code
PCI: layerscape: use accessors to enable/disable DBI RO registers'
write permission
PCI: layerscape: refactor the host_init function
PCI: layerscape: Disable the outbound windows configured by bootloader
PCI: layerscape: remove the duplicate Class field fix code
drivers/pci/dwc/pci-layerscape.c | 86 +++++++++++++++++++---------------
drivers/pci/dwc/pcie-designware-host.c | 4 ++
drivers/pci/dwc/pcie-designware.h | 25 ++++++++++
3 files changed, 76 insertions(+), 39 deletions(-)
--
2.1.0.27.g96db324
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
@ 2017-08-03 8:23 ` Zhiqiang Hou
2017-08-08 12:45 ` Joao Pinto
2017-08-03 8:23 ` [PATCHv2 2/6] PCI: designware: enable write permission before updating class code Zhiqiang Hou
` (4 subsequent siblings)
5 siblings, 1 reply; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The read-only DBI registers can be written over the DBI when set
the "Write to RO Registers Using DBI" (DBI_RO_WR_EN) field of the
MISC_CONTROL_1_OFF register.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2:
- None
drivers/pci/dwc/pcie-designware.h | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie-designware.h
index b4d2a89..bbdf35b 100644
--- a/drivers/pci/dwc/pcie-designware.h
+++ b/drivers/pci/dwc/pcie-designware.h
@@ -76,6 +76,9 @@
#define PCIE_ATU_FUNC(x) (((x) & 0x7) << 16)
#define PCIE_ATU_UPPER_TARGET 0x91C
+#define PCIE_MISC_CONTROL_1_OFF 0x8BC
+#define PCIE_DBI_RO_WR_EN (0x1 << 0)
+
/*
* iATU Unroll-specific register definitions
* From 4.80 core version the address translation will be made by unroll
@@ -279,6 +282,28 @@ static inline u32 dw_pcie_readl_dbi2(struct dw_pcie *pci, u32 reg)
return __dw_pcie_read_dbi(pci, pci->dbi_base2, reg, 0x4);
}
+static inline void dw_pcie_dbi_ro_wr_en(struct dw_pcie *pci)
+{
+ u32 reg;
+ u32 val;
+
+ reg = PCIE_MISC_CONTROL_1_OFF;
+ val = dw_pcie_readl_dbi(pci, reg);
+ val |= PCIE_DBI_RO_WR_EN;
+ dw_pcie_writel_dbi(pci, reg, val);
+}
+
+static inline void dw_pcie_dbi_ro_wr_dis(struct dw_pcie *pci)
+{
+ u32 reg;
+ u32 val;
+
+ reg = PCIE_MISC_CONTROL_1_OFF;
+ val = dw_pcie_readl_dbi(pci, reg);
+ val &= ~PCIE_DBI_RO_WR_EN;
+ dw_pcie_writel_dbi(pci, reg, val);
+}
+
#ifdef CONFIG_PCIE_DW_HOST
irqreturn_t dw_handle_msi_irq(struct pcie_port *pp);
void dw_pcie_msi_init(struct pcie_port *pp);
--
2.1.0.27.g96db324
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv2 2/6] PCI: designware: enable write permission before updating class code
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers Zhiqiang Hou
@ 2017-08-03 8:23 ` Zhiqiang Hou
2017-08-08 12:45 ` Joao Pinto
2017-08-03 8:23 ` [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission Zhiqiang Hou
` (3 subsequent siblings)
5 siblings, 1 reply; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The existing fix doesn't actually work because the Class register is
read-only, so it must enable the write permission before write the
correct value to this register.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2:
- None
drivers/pci/dwc/pcie-designware-host.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/dwc/pcie-designware-host.c b/drivers/pci/dwc/pcie-designware-host.c
index d29c020..6e10cda 100644
--- a/drivers/pci/dwc/pcie-designware-host.c
+++ b/drivers/pci/dwc/pcie-designware-host.c
@@ -634,8 +634,12 @@ void dw_pcie_setup_rc(struct pcie_port *pp)
dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0);
+ /* Enable write permission for the DBI read-only register */
+ dw_pcie_dbi_ro_wr_en(pci);
/* program correct class for RC */
dw_pcie_wr_own_conf(pp, PCI_CLASS_DEVICE, 2, PCI_CLASS_BRIDGE_PCI);
+ /* Better disable write permission right after the update */
+ dw_pcie_dbi_ro_wr_dis(pci);
dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val);
val |= PORT_LOGIC_SPEED_CHANGE;
--
2.1.0.27.g96db324
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 2/6] PCI: designware: enable write permission before updating class code Zhiqiang Hou
@ 2017-08-03 8:23 ` Zhiqiang Hou
2017-08-08 12:46 ` Joao Pinto
2017-08-03 8:23 ` [PATCHv2 4/6] PCI: layerscape: refactor the host_init function Zhiqiang Hou
` (2 subsequent siblings)
5 siblings, 1 reply; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Use the accessors instead accessing the DBI read-only write enable
register directly. And the STRFMR1 is not read-only register, so move it
out from the write-enable bracket.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2:
- New patch split from patch v1 3/3.
drivers/pci/dwc/pci-layerscape.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
index fd86128..09056a6 100644
--- a/drivers/pci/dwc/pci-layerscape.c
+++ b/drivers/pci/dwc/pci-layerscape.c
@@ -33,7 +33,6 @@
/* PEX Internal Configuration Registers */
#define PCIE_STRFMR1 0x71c /* Symbol Timer & Filter Mask Register1 */
-#define PCIE_DBI_RO_WR_EN 0x8bc /* DBI Read-Only Write Enable Register */
struct ls_pcie_drvdata {
u32 lut_offset;
@@ -155,11 +154,12 @@ static void ls_pcie_host_init(struct pcie_port *pp)
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct ls_pcie *pcie = to_ls_pcie(pci);
- iowrite32(1, pci->dbi_base + PCIE_DBI_RO_WR_EN);
+ dw_pcie_dbi_ro_wr_en(pci);
ls_pcie_fix_class(pcie);
ls_pcie_clear_multifunction(pcie);
+ dw_pcie_dbi_ro_wr_dis(pci);
+
ls_pcie_drop_msg_tlp(pcie);
- iowrite32(0, pci->dbi_base + PCIE_DBI_RO_WR_EN);
}
static int ls_pcie_msi_host_init(struct pcie_port *pp,
--
2.1.0.27.g96db324
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
` (2 preceding siblings ...)
2017-08-03 8:23 ` [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission Zhiqiang Hou
@ 2017-08-03 8:23 ` Zhiqiang Hou
2017-08-08 13:13 ` Joao Pinto
2017-08-14 21:38 ` Bjorn Helgaas
2017-08-03 8:23 ` [PATCHv2 5/6] PCI: layerscape: Disable the outbound windows configured by bootloader Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 6/6] PCI: layerscape: remove the duplicate Class field fix code Zhiqiang Hou
5 siblings, 2 replies; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Make the ls1021a's host_init reuse layerscape platform's common
host_init function.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2:
- Removed the disable outbound windows code and the remove duplicate class code
fixup code from this patch.
drivers/pci/dwc/pci-layerscape.c | 54 ++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
index 09056a6..3533a8c 100644
--- a/drivers/pci/dwc/pci-layerscape.c
+++ b/drivers/pci/dwc/pci-layerscape.c
@@ -107,33 +107,6 @@ static int ls1021_pcie_link_up(struct dw_pcie *pci)
return 1;
}
-static void ls1021_pcie_host_init(struct pcie_port *pp)
-{
- struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
- struct ls_pcie *pcie = to_ls_pcie(pci);
- struct device *dev = pci->dev;
- u32 index[2];
-
- pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
- "fsl,pcie-scfg");
- if (IS_ERR(pcie->scfg)) {
- dev_err(dev, "No syscfg phandle specified\n");
- pcie->scfg = NULL;
- return;
- }
-
- if (of_property_read_u32_array(dev->of_node,
- "fsl,pcie-scfg", index, 2)) {
- pcie->scfg = NULL;
- return;
- }
- pcie->index = index[1];
-
- dw_pcie_setup_rc(pp);
-
- ls_pcie_drop_msg_tlp(pcie);
-}
-
static int ls_pcie_link_up(struct dw_pcie *pci)
{
struct ls_pcie *pcie = to_ls_pcie(pci);
@@ -160,6 +133,33 @@ static void ls_pcie_host_init(struct pcie_port *pp)
dw_pcie_dbi_ro_wr_dis(pci);
ls_pcie_drop_msg_tlp(pcie);
+
+ dw_pcie_setup_rc(pp);
+}
+
+static void ls1021_pcie_host_init(struct pcie_port *pp)
+{
+ struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
+ struct ls_pcie *pcie = to_ls_pcie(pci);
+ struct device *dev = pci->dev;
+ u32 index[2];
+
+ pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
+ "fsl,pcie-scfg");
+ if (IS_ERR(pcie->scfg)) {
+ dev_err(dev, "No syscfg phandle specified\n");
+ pcie->scfg = NULL;
+ return;
+ }
+
+ if (of_property_read_u32_array(dev->of_node,
+ "fsl,pcie-scfg", index, 2)) {
+ pcie->scfg = NULL;
+ return;
+ }
+ pcie->index = index[1];
+
+ ls_pcie_host_init(pp);
}
static int ls_pcie_msi_host_init(struct pcie_port *pp,
--
2.1.0.27.g96db324
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv2 5/6] PCI: layerscape: Disable the outbound windows configured by bootloader
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
` (3 preceding siblings ...)
2017-08-03 8:23 ` [PATCHv2 4/6] PCI: layerscape: refactor the host_init function Zhiqiang Hou
@ 2017-08-03 8:23 ` Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 6/6] PCI: layerscape: remove the duplicate Class field fix code Zhiqiang Hou
5 siblings, 0 replies; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Disable the outbound windows configured by bootloader to avoid
one transaction hitting multiple outbound windows because the
function dw_pcie_setup_rc will re-configure the outbound windows
which maybe confict with the bootloader configured.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2:
- New patch split from patch v1 3/3.
drivers/pci/dwc/pci-layerscape.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
index 3533a8c..ad68894 100644
--- a/drivers/pci/dwc/pci-layerscape.c
+++ b/drivers/pci/dwc/pci-layerscape.c
@@ -34,6 +34,8 @@
/* PEX Internal Configuration Registers */
#define PCIE_STRFMR1 0x71c /* Symbol Timer & Filter Mask Register1 */
+#define PCIE_IATU_NUM 6
+
struct ls_pcie_drvdata {
u32 lut_offset;
u32 ltssm_shift;
@@ -90,6 +92,14 @@ static void ls_pcie_drop_msg_tlp(struct ls_pcie *pcie)
iowrite32(val, pci->dbi_base + PCIE_STRFMR1);
}
+static void ls_pcie_disable_outbound_atus(struct ls_pcie *pcie)
+{
+ int i;
+
+ for (i = 0; i < PCIE_IATU_NUM; i++)
+ dw_pcie_disable_atu(pcie->pci, DW_PCIE_REGION_OUTBOUND, i);
+}
+
static int ls1021_pcie_link_up(struct dw_pcie *pci)
{
u32 state;
@@ -127,6 +137,13 @@ static void ls_pcie_host_init(struct pcie_port *pp)
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct ls_pcie *pcie = to_ls_pcie(pci);
+ /*
+ * Disable the outbound windows configured by bootloader to avoid
+ * one transaction hitting multiple outbound windows and the function
+ * dw_pcie_setup_rc will re-configure the outbound windows.
+ */
+ ls_pcie_disable_outbound_atus(pcie);
+
dw_pcie_dbi_ro_wr_en(pci);
ls_pcie_fix_class(pcie);
ls_pcie_clear_multifunction(pcie);
--
2.1.0.27.g96db324
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv2 6/6] PCI: layerscape: remove the duplicate Class field fix code
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
` (4 preceding siblings ...)
2017-08-03 8:23 ` [PATCHv2 5/6] PCI: layerscape: Disable the outbound windows configured by bootloader Zhiqiang Hou
@ 2017-08-03 8:23 ` Zhiqiang Hou
5 siblings, 0 replies; 21+ messages in thread
From: Zhiqiang Hou @ 2017-08-03 8:23 UTC (permalink / raw)
To: linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang, Hou Zhiqiang
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
The Class Code will be fixed by function dw_pcie_setup_rc.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2:
- New patch split from patch v1 3/3.
drivers/pci/dwc/pci-layerscape.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
index ad68894..bf52825 100644
--- a/drivers/pci/dwc/pci-layerscape.c
+++ b/drivers/pci/dwc/pci-layerscape.c
@@ -73,14 +73,6 @@ static void ls_pcie_clear_multifunction(struct ls_pcie *pcie)
iowrite8(PCI_HEADER_TYPE_BRIDGE, pci->dbi_base + PCI_HEADER_TYPE);
}
-/* Fix class value */
-static void ls_pcie_fix_class(struct ls_pcie *pcie)
-{
- struct dw_pcie *pci = pcie->pci;
-
- iowrite16(PCI_CLASS_BRIDGE_PCI, pci->dbi_base + PCI_CLASS_DEVICE);
-}
-
/* Drop MSG TLP except for Vendor MSG */
static void ls_pcie_drop_msg_tlp(struct ls_pcie *pcie)
{
@@ -145,7 +137,6 @@ static void ls_pcie_host_init(struct pcie_port *pp)
ls_pcie_disable_outbound_atus(pcie);
dw_pcie_dbi_ro_wr_en(pci);
- ls_pcie_fix_class(pcie);
ls_pcie_clear_multifunction(pcie);
dw_pcie_dbi_ro_wr_dis(pci);
--
2.1.0.27.g96db324
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers
2017-08-03 8:23 ` [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers Zhiqiang Hou
@ 2017-08-08 12:45 ` Joao Pinto
2017-08-09 2:50 ` Z.q. Hou
0 siblings, 1 reply; 21+ messages in thread
From: Joao Pinto @ 2017-08-08 12:45 UTC (permalink / raw)
To: Zhiqiang Hou, linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang
Às 9:23 AM de 8/3/2017, Zhiqiang Hou escreveu:
> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>
> The read-only DBI registers can be written over the DBI when set
> the "Write to RO Registers Using DBI" (DBI_RO_WR_EN) field of the
> MISC_CONTROL_1_OFF register.
>
> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> ---
> V2:
> - None
>
> drivers/pci/dwc/pcie-designware.h | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie-designware.h
> index b4d2a89..bbdf35b 100644
> --- a/drivers/pci/dwc/pcie-designware.h
> +++ b/drivers/pci/dwc/pcie-designware.h
> @@ -76,6 +76,9 @@
> #define PCIE_ATU_FUNC(x) (((x) & 0x7) << 16)
> #define PCIE_ATU_UPPER_TARGET 0x91C
>
> +#define PCIE_MISC_CONTROL_1_OFF 0x8BC
> +#define PCIE_DBI_RO_WR_EN (0x1 << 0)
> +
> /*
> * iATU Unroll-specific register definitions
> * From 4.80 core version the address translation will be made by unroll
> @@ -279,6 +282,28 @@ static inline u32 dw_pcie_readl_dbi2(struct dw_pcie *pci, u32 reg)
> return __dw_pcie_read_dbi(pci, pci->dbi_base2, reg, 0x4);
> }
>
> +static inline void dw_pcie_dbi_ro_wr_en(struct dw_pcie *pci)
> +{
> + u32 reg;
> + u32 val;
> +
> + reg = PCIE_MISC_CONTROL_1_OFF;
> + val = dw_pcie_readl_dbi(pci, reg);
> + val |= PCIE_DBI_RO_WR_EN;
> + dw_pcie_writel_dbi(pci, reg, val);
> +}
> +
> +static inline void dw_pcie_dbi_ro_wr_dis(struct dw_pcie *pci)
> +{
> + u32 reg;
> + u32 val;
> +
> + reg = PCIE_MISC_CONTROL_1_OFF;
> + val = dw_pcie_readl_dbi(pci, reg);
> + val &= ~PCIE_DBI_RO_WR_EN;
> + dw_pcie_writel_dbi(pci, reg, val);
> +}
> +
> #ifdef CONFIG_PCIE_DW_HOST
> irqreturn_t dw_handle_msi_irq(struct pcie_port *pp);
> void dw_pcie_msi_init(struct pcie_port *pp);
>
Acked-By: Joao Pinto <jpinto@synopsys.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv2 2/6] PCI: designware: enable write permission before updating class code
2017-08-03 8:23 ` [PATCHv2 2/6] PCI: designware: enable write permission before updating class code Zhiqiang Hou
@ 2017-08-08 12:45 ` Joao Pinto
2017-08-09 2:51 ` Z.q. Hou
0 siblings, 1 reply; 21+ messages in thread
From: Joao Pinto @ 2017-08-08 12:45 UTC (permalink / raw)
To: Zhiqiang Hou, linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang
Às 9:23 AM de 8/3/2017, Zhiqiang Hou escreveu:
> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>
> The existing fix doesn't actually work because the Class register is
> read-only, so it must enable the write permission before write the
> correct value to this register.
>
> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> ---
> V2:
> - None
>
> drivers/pci/dwc/pcie-designware-host.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pci/dwc/pcie-designware-host.c b/drivers/pci/dwc/pcie-designware-host.c
> index d29c020..6e10cda 100644
> --- a/drivers/pci/dwc/pcie-designware-host.c
> +++ b/drivers/pci/dwc/pcie-designware-host.c
> @@ -634,8 +634,12 @@ void dw_pcie_setup_rc(struct pcie_port *pp)
>
> dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0);
>
> + /* Enable write permission for the DBI read-only register */
> + dw_pcie_dbi_ro_wr_en(pci);
> /* program correct class for RC */
> dw_pcie_wr_own_conf(pp, PCI_CLASS_DEVICE, 2, PCI_CLASS_BRIDGE_PCI);
> + /* Better disable write permission right after the update */
> + dw_pcie_dbi_ro_wr_dis(pci);
>
> dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val);
> val |= PORT_LOGIC_SPEED_CHANGE;
>
Acked-By: Joao Pinto <jpinto@synopsys.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission
2017-08-03 8:23 ` [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission Zhiqiang Hou
@ 2017-08-08 12:46 ` Joao Pinto
2017-08-09 2:52 ` Z.q. Hou
0 siblings, 1 reply; 21+ messages in thread
From: Joao Pinto @ 2017-08-08 12:46 UTC (permalink / raw)
To: Zhiqiang Hou, linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang
Às 9:23 AM de 8/3/2017, Zhiqiang Hou escreveu:
> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>
> Use the accessors instead accessing the DBI read-only write enable
> register directly. And the STRFMR1 is not read-only register, so move it
> out from the write-enable bracket.
>
> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> ---
> V2:
> - New patch split from patch v1 3/3.
>
> drivers/pci/dwc/pci-layerscape.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
> index fd86128..09056a6 100644
> --- a/drivers/pci/dwc/pci-layerscape.c
> +++ b/drivers/pci/dwc/pci-layerscape.c
> @@ -33,7 +33,6 @@
>
> /* PEX Internal Configuration Registers */
> #define PCIE_STRFMR1 0x71c /* Symbol Timer & Filter Mask Register1 */
> -#define PCIE_DBI_RO_WR_EN 0x8bc /* DBI Read-Only Write Enable Register */
>
> struct ls_pcie_drvdata {
> u32 lut_offset;
> @@ -155,11 +154,12 @@ static void ls_pcie_host_init(struct pcie_port *pp)
> struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> struct ls_pcie *pcie = to_ls_pcie(pci);
>
> - iowrite32(1, pci->dbi_base + PCIE_DBI_RO_WR_EN);
> + dw_pcie_dbi_ro_wr_en(pci);
> ls_pcie_fix_class(pcie);
> ls_pcie_clear_multifunction(pcie);
> + dw_pcie_dbi_ro_wr_dis(pci);
> +
> ls_pcie_drop_msg_tlp(pcie);
> - iowrite32(0, pci->dbi_base + PCIE_DBI_RO_WR_EN);
> }
>
> static int ls_pcie_msi_host_init(struct pcie_port *pp,
>
Acked-By: Joao Pinto <jpinto@synopsys.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-03 8:23 ` [PATCHv2 4/6] PCI: layerscape: refactor the host_init function Zhiqiang Hou
@ 2017-08-08 13:13 ` Joao Pinto
2017-08-09 2:53 ` Z.q. Hou
2017-08-14 21:38 ` Bjorn Helgaas
1 sibling, 1 reply; 21+ messages in thread
From: Joao Pinto @ 2017-08-08 13:13 UTC (permalink / raw)
To: Zhiqiang Hou, linux-pci, bhelgaas, jingoohan1, Joao.Pinto
Cc: minghuan.lian, mingkai.hu, roy.zang
Às 9:23 AM de 8/3/2017, Zhiqiang Hou escreveu:
> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>
> Make the ls1021a's host_init reuse layerscape platform's common
> host_init function.
>
> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> ---
> V2:
> - Removed the disable outbound windows code and the remove duplicate class code
> fixup code from this patch.
>
> drivers/pci/dwc/pci-layerscape.c | 54 ++++++++++++++++++++--------------------
> 1 file changed, 27 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
> index 09056a6..3533a8c 100644
> --- a/drivers/pci/dwc/pci-layerscape.c
> +++ b/drivers/pci/dwc/pci-layerscape.c
> @@ -107,33 +107,6 @@ static int ls1021_pcie_link_up(struct dw_pcie *pci)
> return 1;
> }
>
> -static void ls1021_pcie_host_init(struct pcie_port *pp)
> -{
> - struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> - struct ls_pcie *pcie = to_ls_pcie(pci);
> - struct device *dev = pci->dev;
> - u32 index[2];
> -
> - pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
> - "fsl,pcie-scfg");
> - if (IS_ERR(pcie->scfg)) {
> - dev_err(dev, "No syscfg phandle specified\n");
> - pcie->scfg = NULL;
> - return;
> - }
> -
> - if (of_property_read_u32_array(dev->of_node,
> - "fsl,pcie-scfg", index, 2)) {
> - pcie->scfg = NULL;
> - return;
> - }
> - pcie->index = index[1];
> -
> - dw_pcie_setup_rc(pp);
> -
> - ls_pcie_drop_msg_tlp(pcie);
> -}
> -
> static int ls_pcie_link_up(struct dw_pcie *pci)
> {
> struct ls_pcie *pcie = to_ls_pcie(pci);
> @@ -160,6 +133,33 @@ static void ls_pcie_host_init(struct pcie_port *pp)
> dw_pcie_dbi_ro_wr_dis(pci);
>
> ls_pcie_drop_msg_tlp(pcie);
> +
> + dw_pcie_setup_rc(pp);
> +}
> +
> +static void ls1021_pcie_host_init(struct pcie_port *pp)
> +{
> + struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> + struct ls_pcie *pcie = to_ls_pcie(pci);
> + struct device *dev = pci->dev;
> + u32 index[2];
> +
> + pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
> + "fsl,pcie-scfg");
> + if (IS_ERR(pcie->scfg)) {
> + dev_err(dev, "No syscfg phandle specified\n");
> + pcie->scfg = NULL;
> + return;
> + }
> +
> + if (of_property_read_u32_array(dev->of_node,
> + "fsl,pcie-scfg", index, 2)) {
> + pcie->scfg = NULL;
> + return;
> + }
> + pcie->index = index[1];
> +
> + ls_pcie_host_init(pp);
> }
>
> static int ls_pcie_msi_host_init(struct pcie_port *pp,
>
Reviewed-by: Joao Pinto <jpinto@synopsys.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers
2017-08-08 12:45 ` Joao Pinto
@ 2017-08-09 2:50 ` Z.q. Hou
0 siblings, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-09 2:50 UTC (permalink / raw)
To: Joao Pinto, linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com
Cc: M.h. Lian, Mingkai Hu, Roy Zang
SGkgSm9hbywNCg0KVGhhbmtzIGEgbG90IGZvciB5b3VyIGFjayENCg0KPiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKb2FvIFBpbnRvIFttYWlsdG86Sm9hby5QaW50b0BzeW5v
cHN5cy5jb21dDQo+IFNlbnQ6IDIwMTflubQ45pyIOOaXpSAyMDo0NQ0KPiBUbzogWi5xLiBIb3Ug
PHpoaXFpYW5nLmhvdUBueHAuY29tPjsgbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsNCj4gYmhl
bGdhYXNAZ29vZ2xlLmNvbTsgamluZ29vaGFuMUBnbWFpbC5jb207IEpvYW8uUGludG9Ac3lub3Bz
eXMuY29tDQo+IENjOiBNLmguIExpYW4gPG1pbmdodWFuLmxpYW5AbnhwLmNvbT47IE1pbmdrYWkg
SHUgPG1pbmdrYWkuaHVAbnhwLmNvbT47DQo+IFJveSBaYW5nIDxyb3kuemFuZ0BueHAuY29tPg0K
PiBTdWJqZWN0OiBSZTogW1BBVENIdjIgMS82XSBQQ0k6IGRlc2lnbndhcmU6IGFkZCBhY2Nlc3Nv
cnMgZm9yIHdyaXRlDQo+IHBlcm1pc3Npb24gb2YgREJJIHJlYWQtb25seSByZWdpc3RlcnMNCj4g
DQo+IMOAcyA5OjIzIEFNIGRlIDgvMy8yMDE3LCBaaGlxaWFuZyBIb3UgZXNjcmV2ZXU6DQo+ID4g
RnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCj4gPg0KPiA+IFRoZSBy
ZWFkLW9ubHkgREJJIHJlZ2lzdGVycyBjYW4gYmUgd3JpdHRlbiBvdmVyIHRoZSBEQkkgd2hlbiBz
ZXQgdGhlDQo+ID4gIldyaXRlIHRvIFJPIFJlZ2lzdGVycyBVc2luZyBEQkkiIChEQklfUk9fV1Jf
RU4pIGZpZWxkIG9mIHRoZQ0KPiA+IE1JU0NfQ09OVFJPTF8xX09GRiByZWdpc3Rlci4NCj4gPg0K
PiA+IFNpZ25lZC1vZmYtYnk6IEhvdSBaaGlxaWFuZyA8WmhpcWlhbmcuSG91QG54cC5jb20+DQo+
ID4gLS0tDQo+ID4gVjI6DQo+ID4gIC0gTm9uZQ0KPiA+DQo+ID4gIGRyaXZlcnMvcGNpL2R3Yy9w
Y2llLWRlc2lnbndhcmUuaCB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgMSBm
aWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2
ZXJzL3BjaS9kd2MvcGNpZS1kZXNpZ253YXJlLmgNCj4gPiBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ll
LWRlc2lnbndhcmUuaA0KPiA+IGluZGV4IGI0ZDJhODkuLmJiZGYzNWIgMTAwNjQ0DQo+ID4gLS0t
IGEvZHJpdmVycy9wY2kvZHdjL3BjaWUtZGVzaWdud2FyZS5oDQo+ID4gKysrIGIvZHJpdmVycy9w
Y2kvZHdjL3BjaWUtZGVzaWdud2FyZS5oDQo+ID4gQEAgLTc2LDYgKzc2LDkgQEANCj4gPiAgI2Rl
ZmluZSBQQ0lFX0FUVV9GVU5DKHgpCQkoKCh4KSAmIDB4NykgPDwgMTYpDQo+ID4gICNkZWZpbmUg
UENJRV9BVFVfVVBQRVJfVEFSR0VUCQkweDkxQw0KPiA+DQo+ID4gKyNkZWZpbmUgUENJRV9NSVND
X0NPTlRST0xfMV9PRkYJCTB4OEJDDQo+ID4gKyNkZWZpbmUgUENJRV9EQklfUk9fV1JfRU4JCSgw
eDEgPDwgMCkNCj4gPiArDQo+ID4gIC8qDQo+ID4gICAqIGlBVFUgVW5yb2xsLXNwZWNpZmljIHJl
Z2lzdGVyIGRlZmluaXRpb25zDQo+ID4gICAqIEZyb20gNC44MCBjb3JlIHZlcnNpb24gdGhlIGFk
ZHJlc3MgdHJhbnNsYXRpb24gd2lsbCBiZSBtYWRlIGJ5DQo+ID4gdW5yb2xsIEBAIC0yNzksNiAr
MjgyLDI4IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGR3X3BjaWVfcmVhZGxfZGJpMihzdHJ1Y3QNCj4g
ZHdfcGNpZSAqcGNpLCB1MzIgcmVnKQ0KPiA+ICAJcmV0dXJuIF9fZHdfcGNpZV9yZWFkX2RiaShw
Y2ksIHBjaS0+ZGJpX2Jhc2UyLCByZWcsIDB4NCk7ICB9DQo+ID4NCj4gPiArc3RhdGljIGlubGlu
ZSB2b2lkIGR3X3BjaWVfZGJpX3JvX3dyX2VuKHN0cnVjdCBkd19wY2llICpwY2kpIHsNCj4gPiAr
CXUzMiByZWc7DQo+ID4gKwl1MzIgdmFsOw0KPiA+ICsNCj4gPiArCXJlZyA9IFBDSUVfTUlTQ19D
T05UUk9MXzFfT0ZGOw0KPiA+ICsJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkocGNpLCByZWcpOw0K
PiA+ICsJdmFsIHw9IFBDSUVfREJJX1JPX1dSX0VOOw0KPiA+ICsJZHdfcGNpZV93cml0ZWxfZGJp
KHBjaSwgcmVnLCB2YWwpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQg
ZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHN0cnVjdCBkd19wY2llICpwY2kpIHsNCj4gPiArCXUzMiBy
ZWc7DQo+ID4gKwl1MzIgdmFsOw0KPiA+ICsNCj4gPiArCXJlZyA9IFBDSUVfTUlTQ19DT05UUk9M
XzFfT0ZGOw0KPiA+ICsJdmFsID0gZHdfcGNpZV9yZWFkbF9kYmkocGNpLCByZWcpOw0KPiA+ICsJ
dmFsICY9IH5QQ0lFX0RCSV9ST19XUl9FTjsNCj4gPiArCWR3X3BjaWVfd3JpdGVsX2RiaShwY2ks
IHJlZywgdmFsKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgI2lmZGVmIENPTkZJR19QQ0lFX0RXX0hP
U1QNCj4gPiAgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IHBjaWVfcG9ydCAq
cHApOyAgdm9pZA0KPiA+IGR3X3BjaWVfbXNpX2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApOw0K
PiA+DQo+IA0KPiBBY2tlZC1CeTogSm9hbyBQaW50byA8anBpbnRvQHN5bm9wc3lzLmNvbT5bXSAN
Cg0KLSBaaGlxaWFuZw0K
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 2/6] PCI: designware: enable write permission before updating class code
2017-08-08 12:45 ` Joao Pinto
@ 2017-08-09 2:51 ` Z.q. Hou
0 siblings, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-09 2:51 UTC (permalink / raw)
To: Joao Pinto, linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com
Cc: M.h. Lian, Mingkai Hu, Roy Zang
SGkgSm9hbywNCg0KVGhhbmtzIGEgbG90IGZvciB5b3VyIGFjayENCg0KPiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKb2FvIFBpbnRvIFttYWlsdG86Sm9hby5QaW50b0BzeW5v
cHN5cy5jb21dDQo+IFNlbnQ6IDIwMTflubQ45pyIOOaXpSAyMDo0Ng0KPiBUbzogWi5xLiBIb3Ug
PHpoaXFpYW5nLmhvdUBueHAuY29tPjsgbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsNCj4gYmhl
bGdhYXNAZ29vZ2xlLmNvbTsgamluZ29vaGFuMUBnbWFpbC5jb207IEpvYW8uUGludG9Ac3lub3Bz
eXMuY29tDQo+IENjOiBNLmguIExpYW4gPG1pbmdodWFuLmxpYW5AbnhwLmNvbT47IE1pbmdrYWkg
SHUgPG1pbmdrYWkuaHVAbnhwLmNvbT47DQo+IFJveSBaYW5nIDxyb3kuemFuZ0BueHAuY29tPg0K
PiBTdWJqZWN0OiBSZTogW1BBVENIdjIgMi82XSBQQ0k6IGRlc2lnbndhcmU6IGVuYWJsZSB3cml0
ZSBwZXJtaXNzaW9uIGJlZm9yZQ0KPiB1cGRhdGluZyBjbGFzcyBjb2RlDQo+IA0KPiDDgHMgOToy
MyBBTSBkZSA4LzMvMjAxNywgWmhpcWlhbmcgSG91IGVzY3JldmV1Og0KPiA+IEZyb206IEhvdSBa
aGlxaWFuZyA8WmhpcWlhbmcuSG91QG54cC5jb20+DQo+ID4NCj4gPiBUaGUgZXhpc3RpbmcgZml4
IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBiZWNhdXNlIHRoZSBDbGFzcyByZWdpc3RlciBpcw0KPiA+
IHJlYWQtb25seSwgc28gaXQgbXVzdCBlbmFibGUgdGhlIHdyaXRlIHBlcm1pc3Npb24gYmVmb3Jl
IHdyaXRlIHRoZQ0KPiA+IGNvcnJlY3QgdmFsdWUgdG8gdGhpcyByZWdpc3Rlci4NCj4gPg0KPiA+
IFNpZ25lZC1vZmYtYnk6IEhvdSBaaGlxaWFuZyA8WmhpcWlhbmcuSG91QG54cC5jb20+DQo+ID4g
LS0tDQo+ID4gVjI6DQo+ID4gIC0gTm9uZQ0KPiA+DQo+ID4gIGRyaXZlcnMvcGNpL2R3Yy9wY2ll
LWRlc2lnbndhcmUtaG9zdC5jIHwgNCArKysrDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2Vy
dGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9kd2MvcGNpZS1kZXNp
Z253YXJlLWhvc3QuYw0KPiA+IGIvZHJpdmVycy9wY2kvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0
LmMNCj4gPiBpbmRleCBkMjljMDIwLi42ZTEwY2RhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv
cGNpL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jDQo+ID4gKysrIGIvZHJpdmVycy9wY2kvZHdj
L3BjaWUtZGVzaWdud2FyZS1ob3N0LmMNCj4gPiBAQCAtNjM0LDggKzYzNCwxMiBAQCB2b2lkIGR3
X3BjaWVfc2V0dXBfcmMoc3RydWN0IHBjaWVfcG9ydCAqcHApDQo+ID4NCj4gPiAgCWR3X3BjaWVf
d3Jfb3duX2NvbmYocHAsIFBDSV9CQVNFX0FERFJFU1NfMCwgNCwgMCk7DQo+ID4NCj4gPiArCS8q
IEVuYWJsZSB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGUgREJJIHJlYWQtb25seSByZWdpc3RlciAq
Lw0KPiA+ICsJZHdfcGNpZV9kYmlfcm9fd3JfZW4ocGNpKTsNCj4gPiAgCS8qIHByb2dyYW0gY29y
cmVjdCBjbGFzcyBmb3IgUkMgKi8NCj4gPiAgCWR3X3BjaWVfd3Jfb3duX2NvbmYocHAsIFBDSV9D
TEFTU19ERVZJQ0UsIDIsDQo+IFBDSV9DTEFTU19CUklER0VfUENJKTsNCj4gPiArCS8qIEJldHRl
ciBkaXNhYmxlIHdyaXRlIHBlcm1pc3Npb24gcmlnaHQgYWZ0ZXIgdGhlIHVwZGF0ZSAqLw0KPiA+
ICsJZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBjaSk7DQo+ID4NCj4gPiAgCWR3X3BjaWVfcmRfb3du
X2NvbmYocHAsIFBDSUVfTElOS19XSURUSF9TUEVFRF9DT05UUk9MLCA0LA0KPiAmdmFsKTsNCj4g
PiAgCXZhbCB8PSBQT1JUX0xPR0lDX1NQRUVEX0NIQU5HRTsNCj4gPg0KPiANCj4gQWNrZWQtQnk6
IEpvYW8gUGludG8gPGpwaW50b0BzeW5vcHN5cy5jb20+DQoNCi0gWmhpcWlhbmcNCg==
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission
2017-08-08 12:46 ` Joao Pinto
@ 2017-08-09 2:52 ` Z.q. Hou
0 siblings, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-09 2:52 UTC (permalink / raw)
To: Joao Pinto, linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com
Cc: M.h. Lian, Mingkai Hu, Roy Zang
SGkgSm9hbywNCg0KVGhhbmtzIGEgbG90IGZvciB5b3VyIGFjayENCg0KPiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKb2FvIFBpbnRvIFttYWlsdG86Sm9hby5QaW50b0BzeW5v
cHN5cy5jb21dDQo+IFNlbnQ6IDIwMTflubQ45pyIOOaXpSAyMDo0Ng0KPiBUbzogWi5xLiBIb3Ug
PHpoaXFpYW5nLmhvdUBueHAuY29tPjsgbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsNCj4gYmhl
bGdhYXNAZ29vZ2xlLmNvbTsgamluZ29vaGFuMUBnbWFpbC5jb207IEpvYW8uUGludG9Ac3lub3Bz
eXMuY29tDQo+IENjOiBNLmguIExpYW4gPG1pbmdodWFuLmxpYW5AbnhwLmNvbT47IE1pbmdrYWkg
SHUgPG1pbmdrYWkuaHVAbnhwLmNvbT47DQo+IFJveSBaYW5nIDxyb3kuemFuZ0BueHAuY29tPg0K
PiBTdWJqZWN0OiBSZTogW1BBVENIdjIgMy82XSBQQ0k6IGxheWVyc2NhcGU6IHVzZSBhY2Nlc3Nv
cnMgdG8gZW5hYmxlL2Rpc2FibGUNCj4gREJJIFJPIHJlZ2lzdGVycycgd3JpdGUgcGVybWlzc2lv
bg0KPiANCj4gw4BzIDk6MjMgQU0gZGUgOC8zLzIwMTcsIFpoaXFpYW5nIEhvdSBlc2NyZXZldToN
Cj4gPiBGcm9tOiBIb3UgWmhpcWlhbmcgPFpoaXFpYW5nLkhvdUBueHAuY29tPg0KPiA+DQo+ID4g
VXNlIHRoZSBhY2Nlc3NvcnMgaW5zdGVhZCBhY2Nlc3NpbmcgdGhlIERCSSByZWFkLW9ubHkgd3Jp
dGUgZW5hYmxlDQo+ID4gcmVnaXN0ZXIgZGlyZWN0bHkuIEFuZCB0aGUgU1RSRk1SMSBpcyBub3Qg
cmVhZC1vbmx5IHJlZ2lzdGVyLCBzbyBtb3ZlDQo+ID4gaXQgb3V0IGZyb20gdGhlIHdyaXRlLWVu
YWJsZSBicmFja2V0Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogSG91IFpoaXFpYW5nIDxaaGlx
aWFuZy5Ib3VAbnhwLmNvbT4NCj4gPiAtLS0NCj4gPiBWMjoNCj4gPiAgLSBOZXcgcGF0Y2ggc3Bs
aXQgZnJvbSBwYXRjaCB2MSAzLzMuDQo+ID4NCj4gPiAgZHJpdmVycy9wY2kvZHdjL3BjaS1sYXll
cnNjYXBlLmMgfCA2ICsrKy0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp
LCAzIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2R3Yy9w
Y2ktbGF5ZXJzY2FwZS5jDQo+ID4gYi9kcml2ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYw0K
PiA+IGluZGV4IGZkODYxMjguLjA5MDU2YTYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kv
ZHdjL3BjaS1sYXllcnNjYXBlLmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9kd2MvcGNpLWxheWVy
c2NhcGUuYw0KPiA+IEBAIC0zMyw3ICszMyw2IEBADQo+ID4NCj4gPiAgLyogUEVYIEludGVybmFs
IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXJzICovDQo+ID4gICNkZWZpbmUgUENJRV9TVFJGTVIxCQkw
eDcxYyAvKiBTeW1ib2wgVGltZXIgJiBGaWx0ZXIgTWFzaw0KPiBSZWdpc3RlcjEgKi8NCj4gPiAt
I2RlZmluZSBQQ0lFX0RCSV9ST19XUl9FTgkweDhiYyAvKiBEQkkgUmVhZC1Pbmx5IFdyaXRlIEVu
YWJsZQ0KPiBSZWdpc3RlciAqLw0KPiA+DQo+ID4gIHN0cnVjdCBsc19wY2llX2RydmRhdGEgew0K
PiA+ICAJdTMyIGx1dF9vZmZzZXQ7DQo+ID4gQEAgLTE1NSwxMSArMTU0LDEyIEBAIHN0YXRpYyB2
b2lkIGxzX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQ0KPiA+ICAJc3RydWN0
IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ID4gIAlzdHJ1Y3QgbHNf
cGNpZSAqcGNpZSA9IHRvX2xzX3BjaWUocGNpKTsNCj4gPg0KPiA+IC0JaW93cml0ZTMyKDEsIHBj
aS0+ZGJpX2Jhc2UgKyBQQ0lFX0RCSV9ST19XUl9FTik7DQo+ID4gKwlkd19wY2llX2RiaV9yb193
cl9lbihwY2kpOw0KPiA+ICAJbHNfcGNpZV9maXhfY2xhc3MocGNpZSk7DQo+ID4gIAlsc19wY2ll
X2NsZWFyX211bHRpZnVuY3Rpb24ocGNpZSk7DQo+ID4gKwlkd19wY2llX2RiaV9yb193cl9kaXMo
cGNpKTsNCj4gPiArDQo+ID4gIAlsc19wY2llX2Ryb3BfbXNnX3RscChwY2llKTsNCj4gPiAtCWlv
d3JpdGUzMigwLCBwY2ktPmRiaV9iYXNlICsgUENJRV9EQklfUk9fV1JfRU4pOw0KPiA+ICB9DQo+
ID4NCj4gPiAgc3RhdGljIGludCBsc19wY2llX21zaV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9y
dCAqcHAsDQo+ID4NCj4gDQo+IEFja2VkLUJ5OiBKb2FvIFBpbnRvIDxqcGludG9Ac3lub3BzeXMu
Y29tPg0KDQotIFpoaXFpYW5nDQo=
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-08 13:13 ` Joao Pinto
@ 2017-08-09 2:53 ` Z.q. Hou
0 siblings, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-09 2:53 UTC (permalink / raw)
To: Joao Pinto, linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com
Cc: M.h. Lian, Mingkai Hu, Roy Zang
SGkgSm9hbywNCg0KVGhhbmtzIGEgbG90IGZvciB5b3VyIHJldmVpdyENCg0KPiAtLS0tLU9yaWdp
bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKb2FvIFBpbnRvIFttYWlsdG86Sm9hby5QaW50b0Bz
eW5vcHN5cy5jb21dDQo+IFNlbnQ6IDIwMTflubQ45pyIOOaXpSAyMToxNA0KPiBUbzogWi5xLiBI
b3UgPHpoaXFpYW5nLmhvdUBueHAuY29tPjsgbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsNCj4g
YmhlbGdhYXNAZ29vZ2xlLmNvbTsgamluZ29vaGFuMUBnbWFpbC5jb207IEpvYW8uUGludG9Ac3lu
b3BzeXMuY29tDQo+IENjOiBNLmguIExpYW4gPG1pbmdodWFuLmxpYW5AbnhwLmNvbT47IE1pbmdr
YWkgSHUgPG1pbmdrYWkuaHVAbnhwLmNvbT47DQo+IFJveSBaYW5nIDxyb3kuemFuZ0BueHAuY29t
Pg0KPiBTdWJqZWN0OiBSZTogW1BBVENIdjIgNC82XSBQQ0k6IGxheWVyc2NhcGU6IHJlZmFjdG9y
IHRoZSBob3N0X2luaXQgZnVuY3Rpb24NCj4gDQo+IMOAcyA5OjIzIEFNIGRlIDgvMy8yMDE3LCBa
aGlxaWFuZyBIb3UgZXNjcmV2ZXU6DQo+ID4gRnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5I
b3VAbnhwLmNvbT4NCj4gPg0KPiA+IE1ha2UgdGhlIGxzMTAyMWEncyBob3N0X2luaXQgcmV1c2Ug
bGF5ZXJzY2FwZSBwbGF0Zm9ybSdzIGNvbW1vbg0KPiA+IGhvc3RfaW5pdCBmdW5jdGlvbi4NCj4g
Pg0KPiA+IFNpZ25lZC1vZmYtYnk6IEhvdSBaaGlxaWFuZyA8WmhpcWlhbmcuSG91QG54cC5jb20+
DQo+ID4gLS0tDQo+ID4gVjI6DQo+ID4gIC0gUmVtb3ZlZCB0aGUgZGlzYWJsZSBvdXRib3VuZCB3
aW5kb3dzIGNvZGUgYW5kIHRoZSByZW1vdmUgZHVwbGljYXRlDQo+IGNsYXNzIGNvZGUNCj4gPiAg
ICBmaXh1cCBjb2RlIGZyb20gdGhpcyBwYXRjaC4NCj4gPg0KPiA+ICBkcml2ZXJzL3BjaS9kd2Mv
cGNpLWxheWVyc2NhcGUuYyB8IDU0DQo+ID4gKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVs
ZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvZHdjL3BjaS1sYXll
cnNjYXBlLmMNCj4gPiBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jDQo+ID4gaW5k
ZXggMDkwNTZhNi4uMzUzM2E4YyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9kd2MvcGNp
LWxheWVyc2NhcGUuYw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2FwZS5j
DQo+ID4gQEAgLTEwNywzMyArMTA3LDYgQEAgc3RhdGljIGludCBsczEwMjFfcGNpZV9saW5rX3Vw
KHN0cnVjdCBkd19wY2llICpwY2kpDQo+ID4gIAlyZXR1cm4gMTsNCj4gPiAgfQ0KPiA+DQo+ID4g
LXN0YXRpYyB2b2lkIGxzMTAyMV9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkg
LXsNCj4gPiAtCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOw0K
PiA+IC0Jc3RydWN0IGxzX3BjaWUgKnBjaWUgPSB0b19sc19wY2llKHBjaSk7DQo+ID4gLQlzdHJ1
Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAtCXUzMiBpbmRleFsyXTsNCj4gPiAtDQo+
ID4gLQlwY2llLT5zY2ZnID0gc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhhbmRsZShkZXYtPm9m
X25vZGUsDQo+ID4gLQkJCQkJCSAgICAgImZzbCxwY2llLXNjZmciKTsNCj4gPiAtCWlmIChJU19F
UlIocGNpZS0+c2NmZykpIHsNCj4gPiAtCQlkZXZfZXJyKGRldiwgIk5vIHN5c2NmZyBwaGFuZGxl
IHNwZWNpZmllZFxuIik7DQo+ID4gLQkJcGNpZS0+c2NmZyA9IE5VTEw7DQo+ID4gLQkJcmV0dXJu
Ow0KPiA+IC0JfQ0KPiA+IC0NCj4gPiAtCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShk
ZXYtPm9mX25vZGUsDQo+ID4gLQkJCQkgICAgICAgImZzbCxwY2llLXNjZmciLCBpbmRleCwgMikp
IHsNCj4gPiAtCQlwY2llLT5zY2ZnID0gTlVMTDsNCj4gPiAtCQlyZXR1cm47DQo+ID4gLQl9DQo+
ID4gLQlwY2llLT5pbmRleCA9IGluZGV4WzFdOw0KPiA+IC0NCj4gPiAtCWR3X3BjaWVfc2V0dXBf
cmMocHApOw0KPiA+IC0NCj4gPiAtCWxzX3BjaWVfZHJvcF9tc2dfdGxwKHBjaWUpOw0KPiA+IC19
DQo+ID4gLQ0KPiA+ICBzdGF0aWMgaW50IGxzX3BjaWVfbGlua191cChzdHJ1Y3QgZHdfcGNpZSAq
cGNpKSAgew0KPiA+ICAJc3RydWN0IGxzX3BjaWUgKnBjaWUgPSB0b19sc19wY2llKHBjaSk7IEBA
IC0xNjAsNiArMTMzLDMzIEBAIHN0YXRpYw0KPiA+IHZvaWQgbHNfcGNpZV9ob3N0X2luaXQoc3Ry
dWN0IHBjaWVfcG9ydCAqcHApDQo+ID4gIAlkd19wY2llX2RiaV9yb193cl9kaXMocGNpKTsNCj4g
Pg0KPiA+ICAJbHNfcGNpZV9kcm9wX21zZ190bHAocGNpZSk7DQo+ID4gKw0KPiA+ICsJZHdfcGNp
ZV9zZXR1cF9yYyhwcCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGxzMTAyMV9w
Y2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkgew0KPiA+ICsJc3RydWN0IGR3X3Bj
aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ID4gKwlzdHJ1Y3QgbHNfcGNpZSAq
cGNpZSA9IHRvX2xzX3BjaWUocGNpKTsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+
ZGV2Ow0KPiA+ICsJdTMyIGluZGV4WzJdOw0KPiA+ICsNCj4gPiArCXBjaWUtPnNjZmcgPSBzeXNj
b25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKGRldi0+b2Zfbm9kZSwNCj4gPiArCQkJCQkJICAg
ICAiZnNsLHBjaWUtc2NmZyIpOw0KPiA+ICsJaWYgKElTX0VSUihwY2llLT5zY2ZnKSkgew0KPiA+
ICsJCWRldl9lcnIoZGV2LCAiTm8gc3lzY2ZnIHBoYW5kbGUgc3BlY2lmaWVkXG4iKTsNCj4gPiAr
CQlwY2llLT5zY2ZnID0gTlVMTDsNCj4gPiArCQlyZXR1cm47DQo+ID4gKwl9DQo+ID4gKw0KPiA+
ICsJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGRldi0+b2Zfbm9kZSwNCj4gPiArCQkJ
CSAgICAgICAiZnNsLHBjaWUtc2NmZyIsIGluZGV4LCAyKSkgew0KPiA+ICsJCXBjaWUtPnNjZmcg
PSBOVUxMOw0KPiA+ICsJCXJldHVybjsNCj4gPiArCX0NCj4gPiArCXBjaWUtPmluZGV4ID0gaW5k
ZXhbMV07DQo+ID4gKw0KPiA+ICsJbHNfcGNpZV9ob3N0X2luaXQocHApOw0KPiA+ICB9DQo+ID4N
Cj4gPiAgc3RhdGljIGludCBsc19wY2llX21zaV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAq
cHAsDQo+ID4NCj4gDQo+IFJldmlld2VkLWJ5OiBKb2FvIFBpbnRvIDxqcGludG9Ac3lub3BzeXMu
Y29tPg0KDQotIFpoaXFpYW5nDQo=
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-03 8:23 ` [PATCHv2 4/6] PCI: layerscape: refactor the host_init function Zhiqiang Hou
2017-08-08 13:13 ` Joao Pinto
@ 2017-08-14 21:38 ` Bjorn Helgaas
2017-08-14 22:26 ` Bjorn Helgaas
2017-08-15 3:05 ` Z.q. Hou
1 sibling, 2 replies; 21+ messages in thread
From: Bjorn Helgaas @ 2017-08-14 21:38 UTC (permalink / raw)
To: Zhiqiang Hou
Cc: linux-pci, bhelgaas, jingoohan1, Joao.Pinto, minghuan.lian,
mingkai.hu, roy.zang
On Thu, Aug 03, 2017 at 04:23:38PM +0800, Zhiqiang Hou wrote:
> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>
> Make the ls1021a's host_init reuse layerscape platform's common
> host_init function.
>
> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> ---
> V2:
> - Removed the disable outbound windows code and the remove duplicate class code
> fixup code from this patch.
>
> drivers/pci/dwc/pci-layerscape.c | 54 ++++++++++++++++++++--------------------
> 1 file changed, 27 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
> index 09056a6..3533a8c 100644
> --- a/drivers/pci/dwc/pci-layerscape.c
> +++ b/drivers/pci/dwc/pci-layerscape.c
> @@ -107,33 +107,6 @@ static int ls1021_pcie_link_up(struct dw_pcie *pci)
> return 1;
> }
>
> -static void ls1021_pcie_host_init(struct pcie_port *pp)
> -{
> - struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> - struct ls_pcie *pcie = to_ls_pcie(pci);
> - struct device *dev = pci->dev;
> - u32 index[2];
> -
> - pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
> - "fsl,pcie-scfg");
> - if (IS_ERR(pcie->scfg)) {
> - dev_err(dev, "No syscfg phandle specified\n");
> - pcie->scfg = NULL;
> - return;
> - }
> -
> - if (of_property_read_u32_array(dev->of_node,
> - "fsl,pcie-scfg", index, 2)) {
> - pcie->scfg = NULL;
> - return;
> - }
> - pcie->index = index[1];
> -
> - dw_pcie_setup_rc(pp);
> -
> - ls_pcie_drop_msg_tlp(pcie);
> -}
> -
> static int ls_pcie_link_up(struct dw_pcie *pci)
> {
> struct ls_pcie *pcie = to_ls_pcie(pci);
> @@ -160,6 +133,33 @@ static void ls_pcie_host_init(struct pcie_port *pp)
> dw_pcie_dbi_ro_wr_dis(pci);
>
> ls_pcie_drop_msg_tlp(pcie);
> +
> + dw_pcie_setup_rc(pp);
> +}
> +
> +static void ls1021_pcie_host_init(struct pcie_port *pp)
> +{
> + struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> + struct ls_pcie *pcie = to_ls_pcie(pci);
> + struct device *dev = pci->dev;
> + u32 index[2];
> +
> + pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
> + "fsl,pcie-scfg");
> + if (IS_ERR(pcie->scfg)) {
> + dev_err(dev, "No syscfg phandle specified\n");
> + pcie->scfg = NULL;
> + return;
> + }
> +
> + if (of_property_read_u32_array(dev->of_node,
> + "fsl,pcie-scfg", index, 2)) {
> + pcie->scfg = NULL;
> + return;
> + }
> + pcie->index = index[1];
> +
> + ls_pcie_host_init(pp);
The changelog suggests that this is a simple refactoring that doesn't
fix anything.
But because ls1021_pcie_host_init() now calls ls_pcie_host_init(), it
now calls:
dw_pcie_dbi_ro_wr_en(pci);
ls_pcie_fix_class(pcie);
ls_pcie_clear_multifunction(pcie);
dw_pcie_dbi_ro_wr_dis(pci);
when it did not call them before.
It's fine with me if you want to do that, but it should be mentioned
in the changelog.
> }
>
> static int ls_pcie_msi_host_init(struct pcie_port *pp,
> --
> 2.1.0.27.g96db324
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-14 21:38 ` Bjorn Helgaas
@ 2017-08-14 22:26 ` Bjorn Helgaas
2017-08-15 3:21 ` Z.q. Hou
2017-08-15 9:34 ` Stanimir Varbanov
2017-08-15 3:05 ` Z.q. Hou
1 sibling, 2 replies; 21+ messages in thread
From: Bjorn Helgaas @ 2017-08-14 22:26 UTC (permalink / raw)
To: Zhiqiang Hou
Cc: linux-pci, bhelgaas, jingoohan1, Joao.Pinto, minghuan.lian,
mingkai.hu, roy.zang, Stanimir Varbanov, Niklas Cassel,
Jesper Nilsson
[+cc Stanimir, Niklas, Jesper]
On Mon, Aug 14, 2017 at 04:38:24PM -0500, Bjorn Helgaas wrote:
> On Thu, Aug 03, 2017 at 04:23:38PM +0800, Zhiqiang Hou wrote:
> > From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> >
> > Make the ls1021a's host_init reuse layerscape platform's common
> > host_init function.
> >
> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> > ---
> > V2:
> > - Removed the disable outbound windows code and the remove duplicate class code
> > fixup code from this patch.
> >
> > drivers/pci/dwc/pci-layerscape.c | 54 ++++++++++++++++++++--------------------
> > 1 file changed, 27 insertions(+), 27 deletions(-)
> >
> > diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
> > index 09056a6..3533a8c 100644
> > --- a/drivers/pci/dwc/pci-layerscape.c
> > +++ b/drivers/pci/dwc/pci-layerscape.c
> > @@ -107,33 +107,6 @@ static int ls1021_pcie_link_up(struct dw_pcie *pci)
> > return 1;
> > }
> >
> > -static void ls1021_pcie_host_init(struct pcie_port *pp)
> > -{
> > - struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> > - struct ls_pcie *pcie = to_ls_pcie(pci);
> > - struct device *dev = pci->dev;
> > - u32 index[2];
> > -
> > - pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
> > - "fsl,pcie-scfg");
> > - if (IS_ERR(pcie->scfg)) {
> > - dev_err(dev, "No syscfg phandle specified\n");
> > - pcie->scfg = NULL;
> > - return;
> > - }
> > -
> > - if (of_property_read_u32_array(dev->of_node,
> > - "fsl,pcie-scfg", index, 2)) {
> > - pcie->scfg = NULL;
> > - return;
> > - }
> > - pcie->index = index[1];
> > -
> > - dw_pcie_setup_rc(pp);
> > -
> > - ls_pcie_drop_msg_tlp(pcie);
> > -}
> > -
> > static int ls_pcie_link_up(struct dw_pcie *pci)
> > {
> > struct ls_pcie *pcie = to_ls_pcie(pci);
> > @@ -160,6 +133,33 @@ static void ls_pcie_host_init(struct pcie_port *pp)
> > dw_pcie_dbi_ro_wr_dis(pci);
> >
> > ls_pcie_drop_msg_tlp(pcie);
> > +
> > + dw_pcie_setup_rc(pp);
> > +}
> > +
> > +static void ls1021_pcie_host_init(struct pcie_port *pp)
> > +{
> > + struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
> > + struct ls_pcie *pcie = to_ls_pcie(pci);
> > + struct device *dev = pci->dev;
> > + u32 index[2];
> > +
> > + pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node,
> > + "fsl,pcie-scfg");
> > + if (IS_ERR(pcie->scfg)) {
> > + dev_err(dev, "No syscfg phandle specified\n");
> > + pcie->scfg = NULL;
> > + return;
> > + }
> > +
> > + if (of_property_read_u32_array(dev->of_node,
> > + "fsl,pcie-scfg", index, 2)) {
> > + pcie->scfg = NULL;
> > + return;
> > + }
> > + pcie->index = index[1];
> > +
> > + ls_pcie_host_init(pp);
>
> The changelog suggests that this is a simple refactoring that doesn't
> fix anything.
>
> But because ls1021_pcie_host_init() now calls ls_pcie_host_init(), it
> now calls:
>
> dw_pcie_dbi_ro_wr_en(pci);
> ls_pcie_fix_class(pcie);
> ls_pcie_clear_multifunction(pcie);
> dw_pcie_dbi_ro_wr_dis(pci);
>
> when it did not call them before.
>
> It's fine with me if you want to do that, but it should be mentioned
> in the changelog.
The order of this series is screwed up, which makes it hard to follow.
5192ec7b24dd ("PCI: layerscape: Add support for LS1043a and LS2080a")
added ls_pcie_host_init(), which didn't call dw_pcie_setup_rc(). I
think that was a bug, and you should fix that first.
Then:
- Rebase on pci/host-designware because it conflicts with patches
I've already applied
(https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/log/?h=pci/host-designware)
- Make ls_pcie_host_init() call dw_pcie_setup_rc() (fixes
5192ec7b24dd)
- Refactor ls1021_pcie_host_init() to make it call
ls_pcie_host_init() (this will now be no functional change)
- Disable outbound ATUs in ls_pcie_host_init() (bugfix for all
layerscape devices)
- Add DBI write permission accessors and use them in layerscape.
This will make it obvious that PCIE_MISC_CONTROL_1_OFF is moving
from layerscape to designware and that we're actually using these
new interfaces (this will be no functional change).
- Enable write permission in dw_pcie_setup_rc() and remove class
code update from ls_pcie_host_init() This will make it obvious
that fixing dw_pcie_setup_rc() makes ls_pcie_fix_class() obsolete.
Does this dw_pcie_setup_rc() fix mean we can also get rid of the
device class check in qcom_pcie_rd_own_conf()?
I suspect it also means we can drop the write enable in
artpec6_pcie_establish_link().
> > }
> >
> > static int ls_pcie_msi_host_init(struct pcie_port *pp,
> > --
> > 2.1.0.27.g96db324
> >
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-14 21:38 ` Bjorn Helgaas
2017-08-14 22:26 ` Bjorn Helgaas
@ 2017-08-15 3:05 ` Z.q. Hou
1 sibling, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-15 3:05 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com, Joao.Pinto@synopsys.com, M.h. Lian,
Mingkai Hu, Roy Zang
SGkgQmpvcm4sDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91ciBjb21tZW50cyENCg0KPiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCam9ybiBIZWxnYWFzIFttYWlsdG86aGVsZ2Fh
c0BrZXJuZWwub3JnXQ0KPiBTZW50OiAyMDE3xOo41MIxNcjVIDU6MzgNCj4gVG86IFoucS4gSG91
IDx6aGlxaWFuZy5ob3VAbnhwLmNvbT4NCj4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7
IGJoZWxnYWFzQGdvb2dsZS5jb207DQo+IGppbmdvb2hhbjFAZ21haWwuY29tOyBKb2FvLlBpbnRv
QHN5bm9wc3lzLmNvbTsgTS5oLiBMaWFuDQo+IDxtaW5naHVhbi5saWFuQG54cC5jb20+OyBNaW5n
a2FpIEh1IDxtaW5na2FpLmh1QG54cC5jb20+OyBSb3kgWmFuZw0KPiA8cm95LnphbmdAbnhwLmNv
bT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSHYyIDQvNl0gUENJOiBsYXllcnNjYXBlOiByZWZhY3Rv
ciB0aGUgaG9zdF9pbml0IGZ1bmN0aW9uDQo+IA0KPiBPbiBUaHUsIEF1ZyAwMywgMjAxNyBhdCAw
NDoyMzozOFBNICswODAwLCBaaGlxaWFuZyBIb3Ugd3JvdGU6DQo+ID4gRnJvbTogSG91IFpoaXFp
YW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCj4gPg0KPiA+IE1ha2UgdGhlIGxzMTAyMWEncyBo
b3N0X2luaXQgcmV1c2UgbGF5ZXJzY2FwZSBwbGF0Zm9ybSdzIGNvbW1vbg0KPiA+IGhvc3RfaW5p
dCBmdW5jdGlvbi4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEhvdSBaaGlxaWFuZyA8WmhpcWlh
bmcuSG91QG54cC5jb20+DQo+ID4gLS0tDQo+ID4gVjI6DQo+ID4gIC0gUmVtb3ZlZCB0aGUgZGlz
YWJsZSBvdXRib3VuZCB3aW5kb3dzIGNvZGUgYW5kIHRoZSByZW1vdmUgZHVwbGljYXRlDQo+IGNs
YXNzIGNvZGUNCj4gPiAgICBmaXh1cCBjb2RlIGZyb20gdGhpcyBwYXRjaC4NCj4gPg0KPiA+ICBk
cml2ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYyB8IDU0DQo+ID4gKysrKysrKysrKysrKysr
KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0
aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9w
Y2kvZHdjL3BjaS1sYXllcnNjYXBlLmMNCj4gPiBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJz
Y2FwZS5jDQo+ID4gaW5kZXggMDkwNTZhNi4uMzUzM2E4YyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2
ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2R3Yy9w
Y2ktbGF5ZXJzY2FwZS5jDQo+ID4gQEAgLTEwNywzMyArMTA3LDYgQEAgc3RhdGljIGludCBsczEw
MjFfcGNpZV9saW5rX3VwKHN0cnVjdCBkd19wY2llICpwY2kpDQo+ID4gIAlyZXR1cm4gMTsNCj4g
PiAgfQ0KPiA+DQo+ID4gLXN0YXRpYyB2b2lkIGxzMTAyMV9wY2llX2hvc3RfaW5pdChzdHJ1Y3Qg
cGNpZV9wb3J0ICpwcCkgLXsNCj4gPiAtCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2ll
X2Zyb21fcHAocHApOw0KPiA+IC0Jc3RydWN0IGxzX3BjaWUgKnBjaWUgPSB0b19sc19wY2llKHBj
aSk7DQo+ID4gLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiAtCXUzMiBpbmRl
eFsyXTsNCj4gPiAtDQo+ID4gLQlwY2llLT5zY2ZnID0gc3lzY29uX3JlZ21hcF9sb29rdXBfYnlf
cGhhbmRsZShkZXYtPm9mX25vZGUsDQo+ID4gLQkJCQkJCSAgICAgImZzbCxwY2llLXNjZmciKTsN
Cj4gPiAtCWlmIChJU19FUlIocGNpZS0+c2NmZykpIHsNCj4gPiAtCQlkZXZfZXJyKGRldiwgIk5v
IHN5c2NmZyBwaGFuZGxlIHNwZWNpZmllZFxuIik7DQo+ID4gLQkJcGNpZS0+c2NmZyA9IE5VTEw7
DQo+ID4gLQkJcmV0dXJuOw0KPiA+IC0JfQ0KPiA+IC0NCj4gPiAtCWlmIChvZl9wcm9wZXJ0eV9y
ZWFkX3UzMl9hcnJheShkZXYtPm9mX25vZGUsDQo+ID4gLQkJCQkgICAgICAgImZzbCxwY2llLXNj
ZmciLCBpbmRleCwgMikpIHsNCj4gPiAtCQlwY2llLT5zY2ZnID0gTlVMTDsNCj4gPiAtCQlyZXR1
cm47DQo+ID4gLQl9DQo+ID4gLQlwY2llLT5pbmRleCA9IGluZGV4WzFdOw0KPiA+IC0NCj4gPiAt
CWR3X3BjaWVfc2V0dXBfcmMocHApOw0KPiA+IC0NCj4gPiAtCWxzX3BjaWVfZHJvcF9tc2dfdGxw
KHBjaWUpOw0KPiA+IC19DQo+ID4gLQ0KPiA+ICBzdGF0aWMgaW50IGxzX3BjaWVfbGlua191cChz
dHJ1Y3QgZHdfcGNpZSAqcGNpKSAgew0KPiA+ICAJc3RydWN0IGxzX3BjaWUgKnBjaWUgPSB0b19s
c19wY2llKHBjaSk7IEBAIC0xNjAsNiArMTMzLDMzIEBAIHN0YXRpYw0KPiA+IHZvaWQgbHNfcGNp
ZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQo+ID4gIAlkd19wY2llX2RiaV9yb193
cl9kaXMocGNpKTsNCj4gPg0KPiA+ICAJbHNfcGNpZV9kcm9wX21zZ190bHAocGNpZSk7DQo+ID4g
Kw0KPiA+ICsJZHdfcGNpZV9zZXR1cF9yYyhwcCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRp
YyB2b2lkIGxzMTAyMV9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkgew0KPiA+
ICsJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7DQo+ID4gKwlz
dHJ1Y3QgbHNfcGNpZSAqcGNpZSA9IHRvX2xzX3BjaWUocGNpKTsNCj4gPiArCXN0cnVjdCBkZXZp
Y2UgKmRldiA9IHBjaS0+ZGV2Ow0KPiA+ICsJdTMyIGluZGV4WzJdOw0KPiA+ICsNCj4gPiArCXBj
aWUtPnNjZmcgPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKGRldi0+b2Zfbm9kZSwN
Cj4gPiArCQkJCQkJICAgICAiZnNsLHBjaWUtc2NmZyIpOw0KPiA+ICsJaWYgKElTX0VSUihwY2ll
LT5zY2ZnKSkgew0KPiA+ICsJCWRldl9lcnIoZGV2LCAiTm8gc3lzY2ZnIHBoYW5kbGUgc3BlY2lm
aWVkXG4iKTsNCj4gPiArCQlwY2llLT5zY2ZnID0gTlVMTDsNCj4gPiArCQlyZXR1cm47DQo+ID4g
Kwl9DQo+ID4gKw0KPiA+ICsJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGRldi0+b2Zf
bm9kZSwNCj4gPiArCQkJCSAgICAgICAiZnNsLHBjaWUtc2NmZyIsIGluZGV4LCAyKSkgew0KPiA+
ICsJCXBjaWUtPnNjZmcgPSBOVUxMOw0KPiA+ICsJCXJldHVybjsNCj4gPiArCX0NCj4gPiArCXBj
aWUtPmluZGV4ID0gaW5kZXhbMV07DQo+ID4gKw0KPiA+ICsJbHNfcGNpZV9ob3N0X2luaXQocHAp
Ow0KPiANCj4gVGhlIGNoYW5nZWxvZyBzdWdnZXN0cyB0aGF0IHRoaXMgaXMgYSBzaW1wbGUgcmVm
YWN0b3JpbmcgdGhhdCBkb2Vzbid0IGZpeA0KPiBhbnl0aGluZy4NCj4gDQo+IEJ1dCBiZWNhdXNl
IGxzMTAyMV9wY2llX2hvc3RfaW5pdCgpIG5vdyBjYWxscyBsc19wY2llX2hvc3RfaW5pdCgpLCBp
dCBub3cgY2FsbHM6DQo+IA0KPiAgIGR3X3BjaWVfZGJpX3JvX3dyX2VuKHBjaSk7DQo+ICAgbHNf
cGNpZV9maXhfY2xhc3MocGNpZSk7DQo+ICAgbHNfcGNpZV9jbGVhcl9tdWx0aWZ1bmN0aW9uKHBj
aWUpOw0KPiAgIGR3X3BjaWVfZGJpX3JvX3dyX2RpcyhwY2kpOw0KPiANCj4gd2hlbiBpdCBkaWQg
bm90IGNhbGwgdGhlbSBiZWZvcmUuDQo+IA0KPiBJdCdzIGZpbmUgd2l0aCBtZSBpZiB5b3Ugd2Fu
dCB0byBkbyB0aGF0LCBidXQgaXQgc2hvdWxkIGJlIG1lbnRpb25lZCBpbiB0aGUNCj4gY2hhbmdl
bG9nLg0KDQpJIHdpbGwgYWRkIHRoZXNlIHRvIGNoYW5nZWxvZy4NCkFjdHVhbGx5LCB0aGUgbHMx
MDIxYSB1c2UgdGhlIHNhbWUgUENJZSBJUCBjb3JlIHdpdGggb3RoZXIgTGF5ZXJzY2FwZSBwbGF0
Zm9ybXMsIGJ1dCB0aGUgbWV0aG9kIHRvIGdldCBMVFNTTSBpcyBpbXBsZW1lbnRlZCBkaWZmZXJl
bnRseS4gVGhpcyBpcyB0aGUgcmVhc29uLCBJIHRoaW5rLCB0byBzZXBhcmF0ZSBsczEwMjFhIGhv
c3QgaW5pdCBmdW5jdGlvbiwgdGhlIHJlc2V0IHBhcnRzIG9mIGhvc3QgaW5pdCBmdW5jdGlvbiBz
aG91bGQgYmUgdGhlIHNhbWUuDQoNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyBpbnQgbHNfcGNp
ZV9tc2lfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwLA0KPiA+IC0tDQo+ID4gMi4xLjAu
MjcuZzk2ZGIzMjQNCj4gPg0KDQpUaGFua3MsDQpaaGlxaWFuZw0K
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-14 22:26 ` Bjorn Helgaas
@ 2017-08-15 3:21 ` Z.q. Hou
2017-08-15 9:34 ` Stanimir Varbanov
1 sibling, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-15 3:21 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com, Joao.Pinto@synopsys.com, M.h. Lian,
Mingkai Hu, Roy Zang, Stanimir Varbanov, Niklas Cassel,
Jesper Nilsson
SGkgQmpvcm4sDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91ciBjb21tZW50cyENCg0KPiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCam9ybiBIZWxnYWFzIFttYWlsdG86aGVsZ2Fh
c0BrZXJuZWwub3JnXQ0KPiBTZW50OiAyMDE3xOo41MIxNcjVIDY6MjYNCj4gVG86IFoucS4gSG91
IDx6aGlxaWFuZy5ob3VAbnhwLmNvbT4NCj4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7
IGJoZWxnYWFzQGdvb2dsZS5jb207DQo+IGppbmdvb2hhbjFAZ21haWwuY29tOyBKb2FvLlBpbnRv
QHN5bm9wc3lzLmNvbTsgTS5oLiBMaWFuDQo+IDxtaW5naHVhbi5saWFuQG54cC5jb20+OyBNaW5n
a2FpIEh1IDxtaW5na2FpLmh1QG54cC5jb20+OyBSb3kgWmFuZw0KPiA8cm95LnphbmdAbnhwLmNv
bT47IFN0YW5pbWlyIFZhcmJhbm92IDxzdmFyYmFub3ZAbW0tc29sLmNvbT47IE5pa2xhcw0KPiBD
YXNzZWwgPG5pa2xhcy5jYXNzZWxAYXhpcy5jb20+OyBKZXNwZXIgTmlsc3NvbiA8amVzcGVyLm5p
bHNzb25AYXhpcy5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0h2MiA0LzZdIFBDSTogbGF5ZXJz
Y2FwZTogcmVmYWN0b3IgdGhlIGhvc3RfaW5pdCBmdW5jdGlvbg0KPiANCj4gWytjYyBTdGFuaW1p
ciwgTmlrbGFzLCBKZXNwZXJdDQo+IA0KPiBPbiBNb24sIEF1ZyAxNCwgMjAxNyBhdCAwNDozODoy
NFBNIC0wNTAwLCBCam9ybiBIZWxnYWFzIHdyb3RlOg0KPiA+IE9uIFRodSwgQXVnIDAzLCAyMDE3
IGF0IDA0OjIzOjM4UE0gKzA4MDAsIFpoaXFpYW5nIEhvdSB3cm90ZToNCj4gPiA+IEZyb206IEhv
dSBaaGlxaWFuZyA8WmhpcWlhbmcuSG91QG54cC5jb20+DQo+ID4gPg0KPiA+ID4gTWFrZSB0aGUg
bHMxMDIxYSdzIGhvc3RfaW5pdCByZXVzZSBsYXllcnNjYXBlIHBsYXRmb3JtJ3MgY29tbW9uDQo+
ID4gPiBob3N0X2luaXQgZnVuY3Rpb24uDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogSG91
IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gVjI6DQo+
ID4gPiAgLSBSZW1vdmVkIHRoZSBkaXNhYmxlIG91dGJvdW5kIHdpbmRvd3MgY29kZSBhbmQgdGhl
IHJlbW92ZSBkdXBsaWNhdGUNCj4gY2xhc3MgY29kZQ0KPiA+ID4gICAgZml4dXAgY29kZSBmcm9t
IHRoaXMgcGF0Y2guDQo+ID4gPg0KPiA+ID4gIGRyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2Fw
ZS5jIHwgNTQNCj4gPiA+ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0N
Cj4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0p
DQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2Fw
ZS5jDQo+ID4gPiBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jDQo+ID4gPiBpbmRl
eCAwOTA1NmE2Li4zNTMzYThjIDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9wY2kvZHdjL3Bj
aS1sYXllcnNjYXBlLmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2Fw
ZS5jDQo+ID4gPiBAQCAtMTA3LDMzICsxMDcsNiBAQCBzdGF0aWMgaW50IGxzMTAyMV9wY2llX2xp
bmtfdXAoc3RydWN0IGR3X3BjaWUNCj4gKnBjaSkNCj4gPiA+ICAJcmV0dXJuIDE7DQo+ID4gPiAg
fQ0KPiA+ID4NCj4gPiA+IC1zdGF0aWMgdm9pZCBsczEwMjFfcGNpZV9ob3N0X2luaXQoc3RydWN0
IHBjaWVfcG9ydCAqcHApIC17DQo+ID4gPiAtCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19w
Y2llX2Zyb21fcHAocHApOw0KPiA+ID4gLQlzdHJ1Y3QgbHNfcGNpZSAqcGNpZSA9IHRvX2xzX3Bj
aWUocGNpKTsNCj4gPiA+IC0Jc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7DQo+ID4gPiAt
CXUzMiBpbmRleFsyXTsNCj4gPiA+IC0NCj4gPiA+IC0JcGNpZS0+c2NmZyA9IHN5c2Nvbl9yZWdt
YXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2LT5vZl9ub2RlLA0KPiA+ID4gLQkJCQkJCSAgICAgImZz
bCxwY2llLXNjZmciKTsNCj4gPiA+IC0JaWYgKElTX0VSUihwY2llLT5zY2ZnKSkgew0KPiA+ID4g
LQkJZGV2X2VycihkZXYsICJObyBzeXNjZmcgcGhhbmRsZSBzcGVjaWZpZWRcbiIpOw0KPiA+ID4g
LQkJcGNpZS0+c2NmZyA9IE5VTEw7DQo+ID4gPiAtCQlyZXR1cm47DQo+ID4gPiAtCX0NCj4gPiA+
IC0NCj4gPiA+IC0JaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGRldi0+b2Zfbm9kZSwN
Cj4gPiA+IC0JCQkJICAgICAgICJmc2wscGNpZS1zY2ZnIiwgaW5kZXgsIDIpKSB7DQo+ID4gPiAt
CQlwY2llLT5zY2ZnID0gTlVMTDsNCj4gPiA+IC0JCXJldHVybjsNCj4gPiA+IC0JfQ0KPiA+ID4g
LQlwY2llLT5pbmRleCA9IGluZGV4WzFdOw0KPiA+ID4gLQ0KPiA+ID4gLQlkd19wY2llX3NldHVw
X3JjKHBwKTsNCj4gPiA+IC0NCj4gPiA+IC0JbHNfcGNpZV9kcm9wX21zZ190bHAocGNpZSk7DQo+
ID4gPiAtfQ0KPiA+ID4gLQ0KPiA+ID4gIHN0YXRpYyBpbnQgbHNfcGNpZV9saW5rX3VwKHN0cnVj
dCBkd19wY2llICpwY2kpICB7DQo+ID4gPiAgCXN0cnVjdCBsc19wY2llICpwY2llID0gdG9fbHNf
cGNpZShwY2kpOyBAQCAtMTYwLDYgKzEzMywzMyBAQA0KPiA+ID4gc3RhdGljIHZvaWQgbHNfcGNp
ZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQo+ID4gPiAgCWR3X3BjaWVfZGJpX3Jv
X3dyX2RpcyhwY2kpOw0KPiA+ID4NCj4gPiA+ICAJbHNfcGNpZV9kcm9wX21zZ190bHAocGNpZSk7
DQo+ID4gPiArDQo+ID4gPiArCWR3X3BjaWVfc2V0dXBfcmMocHApOw0KPiA+ID4gK30NCj4gPiA+
ICsNCj4gPiA+ICtzdGF0aWMgdm9pZCBsczEwMjFfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVf
cG9ydCAqcHApIHsNCj4gPiA+ICsJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJv
bV9wcChwcCk7DQo+ID4gPiArCXN0cnVjdCBsc19wY2llICpwY2llID0gdG9fbHNfcGNpZShwY2kp
Ow0KPiA+ID4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsNCj4gPiA+ICsJdTMyIGlu
ZGV4WzJdOw0KPiA+ID4gKw0KPiA+ID4gKwlwY2llLT5zY2ZnID0gc3lzY29uX3JlZ21hcF9sb29r
dXBfYnlfcGhhbmRsZShkZXYtPm9mX25vZGUsDQo+ID4gPiArCQkJCQkJICAgICAiZnNsLHBjaWUt
c2NmZyIpOw0KPiA+ID4gKwlpZiAoSVNfRVJSKHBjaWUtPnNjZmcpKSB7DQo+ID4gPiArCQlkZXZf
ZXJyKGRldiwgIk5vIHN5c2NmZyBwaGFuZGxlIHNwZWNpZmllZFxuIik7DQo+ID4gPiArCQlwY2ll
LT5zY2ZnID0gTlVMTDsNCj4gPiA+ICsJCXJldHVybjsNCj4gPiA+ICsJfQ0KPiA+ID4gKw0KPiA+
ID4gKwlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZGV2LT5vZl9ub2RlLA0KPiA+ID4g
KwkJCQkgICAgICAgImZzbCxwY2llLXNjZmciLCBpbmRleCwgMikpIHsNCj4gPiA+ICsJCXBjaWUt
PnNjZmcgPSBOVUxMOw0KPiA+ID4gKwkJcmV0dXJuOw0KPiA+ID4gKwl9DQo+ID4gPiArCXBjaWUt
PmluZGV4ID0gaW5kZXhbMV07DQo+ID4gPiArDQo+ID4gPiArCWxzX3BjaWVfaG9zdF9pbml0KHBw
KTsNCj4gPg0KPiA+IFRoZSBjaGFuZ2Vsb2cgc3VnZ2VzdHMgdGhhdCB0aGlzIGlzIGEgc2ltcGxl
IHJlZmFjdG9yaW5nIHRoYXQgZG9lc24ndA0KPiA+IGZpeCBhbnl0aGluZy4NCj4gPg0KPiA+IEJ1
dCBiZWNhdXNlIGxzMTAyMV9wY2llX2hvc3RfaW5pdCgpIG5vdyBjYWxscyBsc19wY2llX2hvc3Rf
aW5pdCgpLCBpdA0KPiA+IG5vdyBjYWxsczoNCj4gPg0KPiA+ICAgZHdfcGNpZV9kYmlfcm9fd3Jf
ZW4ocGNpKTsNCj4gPiAgIGxzX3BjaWVfZml4X2NsYXNzKHBjaWUpOw0KPiA+ICAgbHNfcGNpZV9j
bGVhcl9tdWx0aWZ1bmN0aW9uKHBjaWUpOw0KPiA+ICAgZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBj
aSk7DQo+ID4NCj4gPiB3aGVuIGl0IGRpZCBub3QgY2FsbCB0aGVtIGJlZm9yZS4NCj4gPg0KPiA+
IEl0J3MgZmluZSB3aXRoIG1lIGlmIHlvdSB3YW50IHRvIGRvIHRoYXQsIGJ1dCBpdCBzaG91bGQg
YmUgbWVudGlvbmVkDQo+ID4gaW4gdGhlIGNoYW5nZWxvZy4NCj4gDQo+IFRoZSBvcmRlciBvZiB0
aGlzIHNlcmllcyBpcyBzY3Jld2VkIHVwLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGZvbGxvdy4N
Cj4gDQo+IDUxOTJlYzdiMjRkZCAoIlBDSTogbGF5ZXJzY2FwZTogQWRkIHN1cHBvcnQgZm9yIExT
MTA0M2EgYW5kIExTMjA4MGEiKQ0KPiBhZGRlZCBsc19wY2llX2hvc3RfaW5pdCgpLCB3aGljaCBk
aWRuJ3QgY2FsbCBkd19wY2llX3NldHVwX3JjKCkuICBJIHRoaW5rIHRoYXQNCj4gd2FzIGEgYnVn
LCBhbmQgeW91IHNob3VsZCBmaXggdGhhdCBmaXJzdC4NCg0KWWVzLCBpdCBpcyBhIGJ1ZywgdGhl
IHJlYXNvbiB0aGF0IHRoZSBsc19wY2llX2hvc3RfaW5pdCgpIGRvZXNuJ3QgY2FsbCBkd19wY2ll
X3NldHVwX3JjKCkgaXMgaXQgdXNlcyB0aGUgc2V0dXBzIGJ5IHUtYm9vdCwgc28gSSBzdWJtaXR0
ZWQgdGhlc2UgcGF0Y2hlcyB0byByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGFuZCBtYWtlIGl0IHJv
YnVzdC4NCg0KPiBUaGVuOg0KPiANCj4gICAtIFJlYmFzZSBvbiBwY2kvaG9zdC1kZXNpZ253YXJl
IGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcGF0Y2hlcw0KPiAgICAgSSd2ZSBhbHJlYWR5IGFw
cGxpZWQNCj4gDQo+IChodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVs
L2dpdC9oZWxnYWFzL3BjaS5naXQvbG9nLz9oPXBjaS9obw0KPiBzdC1kZXNpZ253YXJlKQ0KPiAN
Cj4gICAtIE1ha2UgbHNfcGNpZV9ob3N0X2luaXQoKSBjYWxsIGR3X3BjaWVfc2V0dXBfcmMoKSAo
Zml4ZXMNCj4gICAgIDUxOTJlYzdiMjRkZCkNCj4gDQo+ICAgLSBSZWZhY3RvciBsczEwMjFfcGNp
ZV9ob3N0X2luaXQoKSB0byBtYWtlIGl0IGNhbGwNCj4gICAgIGxzX3BjaWVfaG9zdF9pbml0KCkg
KHRoaXMgd2lsbCBub3cgYmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2UpDQo+IA0KPiAgIC0gRGlzYWJs
ZSBvdXRib3VuZCBBVFVzIGluIGxzX3BjaWVfaG9zdF9pbml0KCkgKGJ1Z2ZpeCBmb3IgYWxsDQo+
ICAgICBsYXllcnNjYXBlIGRldmljZXMpDQo+IA0KPiAgIC0gQWRkIERCSSB3cml0ZSBwZXJtaXNz
aW9uIGFjY2Vzc29ycyBhbmQgdXNlIHRoZW0gaW4gbGF5ZXJzY2FwZS4NCj4gICAgIFRoaXMgd2ls
bCBtYWtlIGl0IG9idmlvdXMgdGhhdCBQQ0lFX01JU0NfQ09OVFJPTF8xX09GRiBpcyBtb3ZpbmcN
Cj4gICAgIGZyb20gbGF5ZXJzY2FwZSB0byBkZXNpZ253YXJlIGFuZCB0aGF0IHdlJ3JlIGFjdHVh
bGx5IHVzaW5nIHRoZXNlDQo+ICAgICBuZXcgaW50ZXJmYWNlcyAodGhpcyB3aWxsIGJlIG5vIGZ1
bmN0aW9uYWwgY2hhbmdlKS4NCj4gDQo+ICAgLSBFbmFibGUgd3JpdGUgcGVybWlzc2lvbiBpbiBk
d19wY2llX3NldHVwX3JjKCkgYW5kIHJlbW92ZSBjbGFzcw0KPiAgICAgY29kZSB1cGRhdGUgZnJv
bSBsc19wY2llX2hvc3RfaW5pdCgpICBUaGlzIHdpbGwgbWFrZSBpdCBvYnZpb3VzDQo+ICAgICB0
aGF0IGZpeGluZyBkd19wY2llX3NldHVwX3JjKCkgbWFrZXMgbHNfcGNpZV9maXhfY2xhc3MoKSBv
YnNvbGV0ZS4NCj4gDQo+IERvZXMgdGhpcyBkd19wY2llX3NldHVwX3JjKCkgZml4IG1lYW4gd2Ug
Y2FuIGFsc28gZ2V0IHJpZCBvZiB0aGUgZGV2aWNlIGNsYXNzDQo+IGNoZWNrIGluIHFjb21fcGNp
ZV9yZF9vd25fY29uZigpPw0KDQpZZXMsIEkgdGhpbmsgc28uDQoNCj4gSSBzdXNwZWN0IGl0IGFs
c28gbWVhbnMgd2UgY2FuIGRyb3AgdGhlIHdyaXRlIGVuYWJsZSBpbg0KPiBhcnRwZWM2X3BjaWVf
ZXN0YWJsaXNoX2xpbmsoKS4NCg0KWWVzLCB5b3UncmUgcmlnaHQsIHRoYW5rcyBmb3IgeW91ciBz
dWdnZXN0aW9uIGFuZCBJIHdpbGwgcmVmb3JtIHRoZXNlIHBhdGNoZXMgd2l0aCB0aGlzIG9yZGVy
Lg0KDQo+IA0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgc3RhdGljIGludCBsc19wY2llX21zaV9o
b3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHAsDQo+ID4gPiAtLQ0KPiA+ID4gMi4xLjAuMjcu
Zzk2ZGIzMjQNCj4gPiA+IA0KDQpUaGFua3MsDQpaaGlxaWFuZw0K
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-14 22:26 ` Bjorn Helgaas
2017-08-15 3:21 ` Z.q. Hou
@ 2017-08-15 9:34 ` Stanimir Varbanov
2017-08-16 5:19 ` Z.q. Hou
1 sibling, 1 reply; 21+ messages in thread
From: Stanimir Varbanov @ 2017-08-15 9:34 UTC (permalink / raw)
To: Bjorn Helgaas, Zhiqiang Hou
Cc: linux-pci, bhelgaas, jingoohan1, Joao.Pinto, minghuan.lian,
mingkai.hu, roy.zang, Niklas Cassel, Jesper Nilsson
Hi Bjorn,
On 08/15/2017 01:26 AM, Bjorn Helgaas wrote:
> [+cc Stanimir, Niklas, Jesper]
>
> On Mon, Aug 14, 2017 at 04:38:24PM -0500, Bjorn Helgaas wrote:
>> On Thu, Aug 03, 2017 at 04:23:38PM +0800, Zhiqiang Hou wrote:
>>> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>>>
>>> Make the ls1021a's host_init reuse layerscape platform's common
>>> host_init function.
>>>
>>> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>>> ---
>>> V2:
>>> - Removed the disable outbound windows code and the remove duplicate class code
>>> fixup code from this patch.
>>>
>>> drivers/pci/dwc/pci-layerscape.c | 54 ++++++++++++++++++++--------------------
>>> 1 file changed, 27 insertions(+), 27 deletions(-)
>>>
>>> diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c
>>> index 09056a6..3533a8c 100644
>>> --- a/drivers/pci/dwc/pci-layerscape.c
>>> +++ b/drivers/pci/dwc/pci-layerscape.c
>>> @@ -107,33 +107,6 @@ static int ls1021_pcie_link_up(struct dw_pcie *pci)
>>> return 1;
>>> }
>>>
<cut>
>
> - Enable write permission in dw_pcie_setup_rc() and remove class
> code update from ls_pcie_host_init() This will make it obvious
> that fixing dw_pcie_setup_rc() makes ls_pcie_fix_class() obsolete.
>
> Does this dw_pcie_setup_rc() fix mean we can also get rid of the
> device class check in qcom_pcie_rd_own_conf()?
Thanks for the CC, I'll manage to test those patches and after that I'll
confirm does this fixes device_class register value for qcom driver.
regards,
Stan
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCHv2 4/6] PCI: layerscape: refactor the host_init function
2017-08-15 9:34 ` Stanimir Varbanov
@ 2017-08-16 5:19 ` Z.q. Hou
0 siblings, 0 replies; 21+ messages in thread
From: Z.q. Hou @ 2017-08-16 5:19 UTC (permalink / raw)
To: Stanimir Varbanov, Bjorn Helgaas
Cc: linux-pci@vger.kernel.org, bhelgaas@google.com,
jingoohan1@gmail.com, Joao.Pinto@synopsys.com, M.h. Lian,
Mingkai Hu, Roy Zang, Niklas Cassel, Jesper Nilsson
SGkgU3RhbmltaXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU3Rh
bmltaXIgVmFyYmFub3YgW21haWx0bzpzdmFyYmFub3ZAbW0tc29sLmNvbV0NCj4gU2VudDogMjAx
N+W5tDjmnIgxNeaXpSAxNzozNA0KPiBUbzogQmpvcm4gSGVsZ2FhcyA8aGVsZ2Fhc0BrZXJuZWwu
b3JnPjsgWi5xLiBIb3UgPHpoaXFpYW5nLmhvdUBueHAuY29tPg0KPiBDYzogbGludXgtcGNpQHZn
ZXIua2VybmVsLm9yZzsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsNCj4gamluZ29vaGFuMUBnbWFpbC5j
b207IEpvYW8uUGludG9Ac3lub3BzeXMuY29tOyBNLmguIExpYW4NCj4gPG1pbmdodWFuLmxpYW5A
bnhwLmNvbT47IE1pbmdrYWkgSHUgPG1pbmdrYWkuaHVAbnhwLmNvbT47IFJveSBaYW5nDQo+IDxy
b3kuemFuZ0BueHAuY29tPjsgTmlrbGFzIENhc3NlbCA8bmlrbGFzLmNhc3NlbEBheGlzLmNvbT47
IEplc3BlciBOaWxzc29uDQo+IDxqZXNwZXIubmlsc3NvbkBheGlzLmNvbT4NCj4gU3ViamVjdDog
UmU6IFtQQVRDSHYyIDQvNl0gUENJOiBsYXllcnNjYXBlOiByZWZhY3RvciB0aGUgaG9zdF9pbml0
IGZ1bmN0aW9uDQo+IA0KPiBIaSBCam9ybiwNCj4gDQo+IE9uIDA4LzE1LzIwMTcgMDE6MjYgQU0s
IEJqb3JuIEhlbGdhYXMgd3JvdGU6DQo+ID4gWytjYyBTdGFuaW1pciwgTmlrbGFzLCBKZXNwZXJd
DQo+ID4NCj4gPiBPbiBNb24sIEF1ZyAxNCwgMjAxNyBhdCAwNDozODoyNFBNIC0wNTAwLCBCam9y
biBIZWxnYWFzIHdyb3RlOg0KPiA+PiBPbiBUaHUsIEF1ZyAwMywgMjAxNyBhdCAwNDoyMzozOFBN
ICswODAwLCBaaGlxaWFuZyBIb3Ugd3JvdGU6DQo+ID4+PiBGcm9tOiBIb3UgWmhpcWlhbmcgPFpo
aXFpYW5nLkhvdUBueHAuY29tPg0KPiA+Pj4NCj4gPj4+IE1ha2UgdGhlIGxzMTAyMWEncyBob3N0
X2luaXQgcmV1c2UgbGF5ZXJzY2FwZSBwbGF0Zm9ybSdzIGNvbW1vbg0KPiA+Pj4gaG9zdF9pbml0
IGZ1bmN0aW9uLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEhvdSBaaGlxaWFuZyA8Wmhp
cWlhbmcuSG91QG54cC5jb20+DQo+ID4+PiAtLS0NCj4gPj4+IFYyOg0KPiA+Pj4gIC0gUmVtb3Zl
ZCB0aGUgZGlzYWJsZSBvdXRib3VuZCB3aW5kb3dzIGNvZGUgYW5kIHRoZSByZW1vdmUNCj4gZHVw
bGljYXRlIGNsYXNzIGNvZGUNCj4gPj4+ICAgIGZpeHVwIGNvZGUgZnJvbSB0aGlzIHBhdGNoLg0K
PiA+Pj4NCj4gPj4+ICBkcml2ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYyB8IDU0DQo+ID4+
PiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+PiAgMSBmaWxl
IGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+
IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYw0KPiA+Pj4gYi9k
cml2ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYw0KPiA+Pj4gaW5kZXggMDkwNTZhNi4uMzUz
M2E4YyAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvcGNpL2R3Yy9wY2ktbGF5ZXJzY2FwZS5j
DQo+ID4+PiArKysgYi9kcml2ZXJzL3BjaS9kd2MvcGNpLWxheWVyc2NhcGUuYw0KPiA+Pj4gQEAg
LTEwNywzMyArMTA3LDYgQEAgc3RhdGljIGludCBsczEwMjFfcGNpZV9saW5rX3VwKHN0cnVjdCBk
d19wY2llDQo+ICpwY2kpDQo+ID4+PiAgCXJldHVybiAxOw0KPiA+Pj4gIH0NCj4gPj4+DQo+IA0K
PiA8Y3V0Pg0KPiANCj4gPg0KPiA+ICAgLSBFbmFibGUgd3JpdGUgcGVybWlzc2lvbiBpbiBkd19w
Y2llX3NldHVwX3JjKCkgYW5kIHJlbW92ZSBjbGFzcw0KPiA+ICAgICBjb2RlIHVwZGF0ZSBmcm9t
IGxzX3BjaWVfaG9zdF9pbml0KCkgIFRoaXMgd2lsbCBtYWtlIGl0IG9idmlvdXMNCj4gPiAgICAg
dGhhdCBmaXhpbmcgZHdfcGNpZV9zZXR1cF9yYygpIG1ha2VzIGxzX3BjaWVfZml4X2NsYXNzKCkg
b2Jzb2xldGUuDQo+ID4NCj4gPiBEb2VzIHRoaXMgZHdfcGNpZV9zZXR1cF9yYygpIGZpeCBtZWFu
IHdlIGNhbiBhbHNvIGdldCByaWQgb2YgdGhlDQo+ID4gZGV2aWNlIGNsYXNzIGNoZWNrIGluIHFj
b21fcGNpZV9yZF9vd25fY29uZigpPw0KPiANCj4gVGhhbmtzIGZvciB0aGUgQ0MsIEknbGwgbWFu
YWdlIHRvIHRlc3QgdGhvc2UgcGF0Y2hlcyBhbmQgYWZ0ZXIgdGhhdCBJJ2xsIGNvbmZpcm0NCj4g
ZG9lcyB0aGlzIGZpeGVzIGRldmljZV9jbGFzcyByZWdpc3RlciB2YWx1ZSBmb3IgcWNvbSBkcml2
ZXIuDQoNCkkgaGF2ZSBzZW50IG91dCBwYXRjaCBzZXQgdjMsIHdoaWNoIGluY2x1ZGUgcmVtb3Zp
bmcgcWNvbSBkcml2ZXIncyBvYnNvbGV0ZSBmaXh1cCwgcGxlYXNlIGhlbHAgdG8gdGVzdC4NCg0K
VGhhbmtzLA0KWmhpcWlhbmcNCg==
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2017-08-16 5:19 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-03 8:23 [PATCHv2 0/6] PCI: fix the designware Class code fixup doesn't work issue and refactor ls-pcie host init Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 1/6] PCI: designware: add accessors for write permission of DBI read-only registers Zhiqiang Hou
2017-08-08 12:45 ` Joao Pinto
2017-08-09 2:50 ` Z.q. Hou
2017-08-03 8:23 ` [PATCHv2 2/6] PCI: designware: enable write permission before updating class code Zhiqiang Hou
2017-08-08 12:45 ` Joao Pinto
2017-08-09 2:51 ` Z.q. Hou
2017-08-03 8:23 ` [PATCHv2 3/6] PCI: layerscape: use accessors to enable/disable DBI RO registers' write permission Zhiqiang Hou
2017-08-08 12:46 ` Joao Pinto
2017-08-09 2:52 ` Z.q. Hou
2017-08-03 8:23 ` [PATCHv2 4/6] PCI: layerscape: refactor the host_init function Zhiqiang Hou
2017-08-08 13:13 ` Joao Pinto
2017-08-09 2:53 ` Z.q. Hou
2017-08-14 21:38 ` Bjorn Helgaas
2017-08-14 22:26 ` Bjorn Helgaas
2017-08-15 3:21 ` Z.q. Hou
2017-08-15 9:34 ` Stanimir Varbanov
2017-08-16 5:19 ` Z.q. Hou
2017-08-15 3:05 ` Z.q. Hou
2017-08-03 8:23 ` [PATCHv2 5/6] PCI: layerscape: Disable the outbound windows configured by bootloader Zhiqiang Hou
2017-08-03 8:23 ` [PATCHv2 6/6] PCI: layerscape: remove the duplicate Class field fix code Zhiqiang Hou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).