linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/2] Disable PTM for endpoint mode
@ 2022-09-26 11:10 Vidya Sagar
  2022-09-26 11:10 ` [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro Vidya Sagar
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Vidya Sagar @ 2022-09-26 11:10 UTC (permalink / raw)
  To: jingoohan1, gustavo.pimentel, lpieralisi, robh, kw, bhelgaas
  Cc: linux-pci, linux-kernel, kthota, mmaddireddy, vidyas, sagar.tv

This patch series contains patches to disable PTM for endpoint mode
as the PCIe compliance tool requires the PTM be disabled for the endpoint
mode.

V2:
* Addressed review comments from Jingoo Han

Vidya Sagar (2):
  PCI: Add PCI_PTM_CAP_RES macro
  PCI: designware-ep: Disable PTM capabilities for EP mode

 .../pci/controller/dwc/pcie-designware-ep.c    | 18 ++++++++++++++++++
 include/uapi/linux/pci_regs.h                  |  1 +
 2 files changed, 19 insertions(+)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro
  2022-09-26 11:10 [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar
@ 2022-09-26 11:10 ` Vidya Sagar
  2022-09-27 19:17   ` Bjorn Helgaas
  2022-09-26 11:10 ` [PATCH V2 2/2] PCI: designware-ep: Disable PTM capabilities for EP mode Vidya Sagar
  2022-10-10  6:05 ` [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar
  2 siblings, 1 reply; 5+ messages in thread
From: Vidya Sagar @ 2022-09-26 11:10 UTC (permalink / raw)
  To: jingoohan1, gustavo.pimentel, lpieralisi, robh, kw, bhelgaas
  Cc: linux-pci, linux-kernel, kthota, mmaddireddy, vidyas, sagar.tv

Add macro defining Responder capable bit in Precision Time Measurement
capability register.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Reviewed-by: Jingoo Han <jingoohan1@gmail.com>
---
V2:
* Added "Reviewed-by: Jingoo Han <jingoohan1@gmail.com>"

 include/uapi/linux/pci_regs.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
index 57b8e2ffb1dd..1c3591c8e09e 100644
--- a/include/uapi/linux/pci_regs.h
+++ b/include/uapi/linux/pci_regs.h
@@ -1058,6 +1058,7 @@
 /* Precision Time Measurement */
 #define PCI_PTM_CAP			0x04	    /* PTM Capability */
 #define  PCI_PTM_CAP_REQ		0x00000001  /* Requester capable */
+#define  PCI_PTM_CAP_RES		0x00000002  /* Responder capable */
 #define  PCI_PTM_CAP_ROOT		0x00000004  /* Root capable */
 #define  PCI_PTM_GRANULARITY_MASK	0x0000FF00  /* Clock granularity */
 #define PCI_PTM_CTRL			0x08	    /* PTM Control */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH V2 2/2] PCI: designware-ep: Disable PTM capabilities for EP mode
  2022-09-26 11:10 [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar
  2022-09-26 11:10 ` [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro Vidya Sagar
@ 2022-09-26 11:10 ` Vidya Sagar
  2022-10-10  6:05 ` [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar
  2 siblings, 0 replies; 5+ messages in thread
From: Vidya Sagar @ 2022-09-26 11:10 UTC (permalink / raw)
  To: jingoohan1, gustavo.pimentel, lpieralisi, robh, kw, bhelgaas
  Cc: linux-pci, linux-kernel, kthota, mmaddireddy, vidyas, sagar.tv

Dual mode DesignWare PCIe IP has PTM capability enabled (if supported) even
in the EP mode. The PCIe compliance for the EP mode expects PTM
capabilities (ROOT_CAPABLE, RES_CAPABLE, CLK_GRAN) be disabled.
Hence disable PTM for the EP mode.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Reviewed-by: Jingoo Han <jingoohan1@gmail.com>
---
V2:
* Addressed review comment from Jingoo Han
* Added "Reviewed-by: Jingoo Han <jingoohan1@gmail.com>"

 .../pci/controller/dwc/pcie-designware-ep.c    | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index 095fb0291ec9..b88b6597194a 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -638,6 +638,7 @@ static int dw_pcie_ep_init_complete(struct dw_pcie_ep *ep)
 	struct dw_pcie_ep_func *ep_func;
 	struct device *dev = pci->dev;
 	struct pci_epc *epc = ep->epc;
+	unsigned int ptm_cap_base;
 	unsigned int offset;
 	unsigned int nbars;
 	u8 hdr_type;
@@ -690,6 +691,7 @@ static int dw_pcie_ep_init_complete(struct dw_pcie_ep *ep)
 	}
 
 	offset = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_REBAR);
+	ptm_cap_base = dw_pcie_ep_find_ext_capability(pci, PCI_EXT_CAP_ID_PTM);
 
 	dw_pcie_dbi_ro_wr_en(pci);
 
@@ -702,6 +704,22 @@ static int dw_pcie_ep_init_complete(struct dw_pcie_ep *ep)
 			dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, 0x0);
 	}
 
+	/*
+	 * PTM responder capability can be disabled only after disabling
+	 * PTM root capability.
+	 */
+	if (ptm_cap_base) {
+		dw_pcie_dbi_ro_wr_en(pci);
+		reg = dw_pcie_readl_dbi(pci, ptm_cap_base + PCI_PTM_CAP);
+		reg &= ~PCI_PTM_CAP_ROOT;
+		dw_pcie_writel_dbi(pci, ptm_cap_base + PCI_PTM_CAP, reg);
+
+		reg = dw_pcie_readl_dbi(pci, ptm_cap_base + PCI_PTM_CAP);
+		reg &= ~(PCI_PTM_CAP_RES | PCI_PTM_GRANULARITY_MASK);
+		dw_pcie_writel_dbi(pci, ptm_cap_base + PCI_PTM_CAP, reg);
+		dw_pcie_dbi_ro_wr_dis(pci);
+	}
+
 	dw_pcie_setup(pci);
 	dw_pcie_dbi_ro_wr_dis(pci);
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro
  2022-09-26 11:10 ` [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro Vidya Sagar
@ 2022-09-27 19:17   ` Bjorn Helgaas
  0 siblings, 0 replies; 5+ messages in thread
From: Bjorn Helgaas @ 2022-09-27 19:17 UTC (permalink / raw)
  To: Vidya Sagar
  Cc: jingoohan1, gustavo.pimentel, lpieralisi, robh, kw, bhelgaas,
	linux-pci, linux-kernel, kthota, mmaddireddy, sagar.tv

On Mon, Sep 26, 2022 at 04:40:16PM +0530, Vidya Sagar wrote:
> Add macro defining Responder capable bit in Precision Time Measurement
> capability register.
> 
> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> Reviewed-by: Jingoo Han <jingoohan1@gmail.com>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

> ---
> V2:
> * Added "Reviewed-by: Jingoo Han <jingoohan1@gmail.com>"
> 
>  include/uapi/linux/pci_regs.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
> index 57b8e2ffb1dd..1c3591c8e09e 100644
> --- a/include/uapi/linux/pci_regs.h
> +++ b/include/uapi/linux/pci_regs.h
> @@ -1058,6 +1058,7 @@
>  /* Precision Time Measurement */
>  #define PCI_PTM_CAP			0x04	    /* PTM Capability */
>  #define  PCI_PTM_CAP_REQ		0x00000001  /* Requester capable */
> +#define  PCI_PTM_CAP_RES		0x00000002  /* Responder capable */
>  #define  PCI_PTM_CAP_ROOT		0x00000004  /* Root capable */
>  #define  PCI_PTM_GRANULARITY_MASK	0x0000FF00  /* Clock granularity */
>  #define PCI_PTM_CTRL			0x08	    /* PTM Control */
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH V2 0/2] Disable PTM for endpoint mode
  2022-09-26 11:10 [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar
  2022-09-26 11:10 ` [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro Vidya Sagar
  2022-09-26 11:10 ` [PATCH V2 2/2] PCI: designware-ep: Disable PTM capabilities for EP mode Vidya Sagar
@ 2022-10-10  6:05 ` Vidya Sagar
  2 siblings, 0 replies; 5+ messages in thread
From: Vidya Sagar @ 2022-10-10  6:05 UTC (permalink / raw)
  To: lpieralisi
  Cc: bhelgaas, jingoohan1, gustavo.pimentel, robh, kw, mmaddireddy,
	kthota, sagar.tv, linux-kernel, linux-pci

Hi Lorenzo,
Do you have any further comments on this series?

Thanks,
Vidya Sagar

On 9/26/2022 4:40 PM, Vidya Sagar wrote:
> This patch series contains patches to disable PTM for endpoint mode
> as the PCIe compliance tool requires the PTM be disabled for the endpoint
> mode.
> 
> V2:
> * Addressed review comments from Jingoo Han
> 
> Vidya Sagar (2):
>    PCI: Add PCI_PTM_CAP_RES macro
>    PCI: designware-ep: Disable PTM capabilities for EP mode
> 
>   .../pci/controller/dwc/pcie-designware-ep.c    | 18 ++++++++++++++++++
>   include/uapi/linux/pci_regs.h                  |  1 +
>   2 files changed, 19 insertions(+)
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-10  6:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-26 11:10 [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar
2022-09-26 11:10 ` [PATCH V2 1/2] PCI: Add PCI_PTM_CAP_RES macro Vidya Sagar
2022-09-27 19:17   ` Bjorn Helgaas
2022-09-26 11:10 ` [PATCH V2 2/2] PCI: designware-ep: Disable PTM capabilities for EP mode Vidya Sagar
2022-10-10  6:05 ` [PATCH V2 0/2] Disable PTM for endpoint mode Vidya Sagar

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).