Re: [PATCH] PCI: Add #defines for Completion Timeout Disable feature

2018-01-10 Thread Bjorn Helgaas
On Fri, Dec 15, 2017 at 04:57:11PM -0600, Bjorn Helgaas wrote:
> From: Bjorn Helgaas 
> 
> Add #defines for the Completion Timeout Disable feature and use them.  No
> functional change intended.
> 
> Signed-off-by: Bjorn Helgaas 

Applied with Michael's ack to pci/misc for v4.16.

> ---
>  arch/powerpc/platforms/powernv/eeh-powernv.c |6 +++---
>  include/uapi/linux/pci_regs.h|2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c 
> b/arch/powerpc/platforms/powernv/eeh-powernv.c
> index 4650fb294e7a..2f7cd0ef3cdc 100644
> --- a/arch/powerpc/platforms/powernv/eeh-powernv.c
> +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c
> @@ -1654,14 +1654,14 @@ static int pnv_eeh_restore_vf_config(struct pci_dn 
> *pdn)
>   eeh_ops->write_config(pdn, edev->pcie_cap + PCI_EXP_DEVCTL,
> 2, devctl);
>  
> - /* Disable Completion Timeout */
> + /* Disable Completion Timeout if possible */
>   eeh_ops->read_config(pdn, edev->pcie_cap + PCI_EXP_DEVCAP2,
>4, );
> - if (cap2 & 0x10) {
> + if (cap2 & PCI_EXP_DEVCAP2_COMP_TMOUT_DIS) {
>   eeh_ops->read_config(pdn,
>edev->pcie_cap + PCI_EXP_DEVCTL2,
>4, );
> - cap2 |= 0x10;
> + cap2 |= PCI_EXP_DEVCTL2_COMP_TMOUT_DIS;
>   eeh_ops->write_config(pdn,
> edev->pcie_cap + PCI_EXP_DEVCTL2,
> 4, cap2);
> diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
> index 70c2b2ade048..9dc67643fc18 100644
> --- a/include/uapi/linux/pci_regs.h
> +++ b/include/uapi/linux/pci_regs.h
> @@ -622,6 +622,7 @@
>   * safely.
>   */
>  #define PCI_EXP_DEVCAP2  36  /* Device Capabilities 2 */
> +#define  PCI_EXP_DEVCAP2_COMP_TMOUT_DIS  0x0010 /* Completion 
> Timeout Disable supported */
>  #define  PCI_EXP_DEVCAP2_ARI 0x0020 /* Alternative Routing-ID */
>  #define  PCI_EXP_DEVCAP2_ATOMIC_ROUTE0x0040 /* Atomic Op routing 
> */
>  #define PCI_EXP_DEVCAP2_ATOMIC_COMP640x0100 /* Atomic 64-bit 
> compare */
> @@ -631,6 +632,7 @@
>  #define  PCI_EXP_DEVCAP2_OBFF_WAKE   0x0008 /* Re-use WAKE# for OBFF */
>  #define PCI_EXP_DEVCTL2  40  /* Device Control 2 */
>  #define  PCI_EXP_DEVCTL2_COMP_TIMEOUT0x000f  /* Completion Timeout 
> Value */
> +#define  PCI_EXP_DEVCTL2_COMP_TMOUT_DIS  0x0010  /* Completion Timeout 
> Disable */
>  #define  PCI_EXP_DEVCTL2_ARI 0x0020  /* Alternative Routing-ID */
>  #define PCI_EXP_DEVCTL2_ATOMIC_REQ   0x0040  /* Set Atomic requests */
>  #define PCI_EXP_DEVCTL2_ATOMIC_EGRESS_BLOCK 0x0080 /* Block atomic egress */
> 


Re: [PATCH] PCI: Add #defines for Completion Timeout Disable feature

2017-12-19 Thread Michael Ellerman
Bjorn Helgaas  writes:

> From: Bjorn Helgaas 
>
> Add #defines for the Completion Timeout Disable feature and use them.  No
> functional change intended.
>
> Signed-off-by: Bjorn Helgaas 
> ---
>  arch/powerpc/platforms/powernv/eeh-powernv.c |6 +++---
>  include/uapi/linux/pci_regs.h|2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)

LGTM.

Acked-by: Michael Ellerman 

cheers


[PATCH] PCI: Add #defines for Completion Timeout Disable feature

2017-12-15 Thread Bjorn Helgaas
From: Bjorn Helgaas 

Add #defines for the Completion Timeout Disable feature and use them.  No
functional change intended.

Signed-off-by: Bjorn Helgaas 
---
 arch/powerpc/platforms/powernv/eeh-powernv.c |6 +++---
 include/uapi/linux/pci_regs.h|2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c 
b/arch/powerpc/platforms/powernv/eeh-powernv.c
index 4650fb294e7a..2f7cd0ef3cdc 100644
--- a/arch/powerpc/platforms/powernv/eeh-powernv.c
+++ b/arch/powerpc/platforms/powernv/eeh-powernv.c
@@ -1654,14 +1654,14 @@ static int pnv_eeh_restore_vf_config(struct pci_dn *pdn)
eeh_ops->write_config(pdn, edev->pcie_cap + PCI_EXP_DEVCTL,
  2, devctl);
 
-   /* Disable Completion Timeout */
+   /* Disable Completion Timeout if possible */
eeh_ops->read_config(pdn, edev->pcie_cap + PCI_EXP_DEVCAP2,
 4, );
-   if (cap2 & 0x10) {
+   if (cap2 & PCI_EXP_DEVCAP2_COMP_TMOUT_DIS) {
eeh_ops->read_config(pdn,
 edev->pcie_cap + PCI_EXP_DEVCTL2,
 4, );
-   cap2 |= 0x10;
+   cap2 |= PCI_EXP_DEVCTL2_COMP_TMOUT_DIS;
eeh_ops->write_config(pdn,
  edev->pcie_cap + PCI_EXP_DEVCTL2,
  4, cap2);
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
index 70c2b2ade048..9dc67643fc18 100644
--- a/include/uapi/linux/pci_regs.h
+++ b/include/uapi/linux/pci_regs.h
@@ -622,6 +622,7 @@
  * safely.
  */
 #define PCI_EXP_DEVCAP236  /* Device Capabilities 2 */
+#define  PCI_EXP_DEVCAP2_COMP_TMOUT_DIS0x0010 /* Completion 
Timeout Disable supported */
 #define  PCI_EXP_DEVCAP2_ARI   0x0020 /* Alternative Routing-ID */
 #define  PCI_EXP_DEVCAP2_ATOMIC_ROUTE  0x0040 /* Atomic Op routing */
 #define PCI_EXP_DEVCAP2_ATOMIC_COMP64  0x0100 /* Atomic 64-bit compare */
@@ -631,6 +632,7 @@
 #define  PCI_EXP_DEVCAP2_OBFF_WAKE 0x0008 /* Re-use WAKE# for OBFF */
 #define PCI_EXP_DEVCTL240  /* Device Control 2 */
 #define  PCI_EXP_DEVCTL2_COMP_TIMEOUT  0x000f  /* Completion Timeout Value */
+#define  PCI_EXP_DEVCTL2_COMP_TMOUT_DIS0x0010  /* Completion Timeout 
Disable */
 #define  PCI_EXP_DEVCTL2_ARI   0x0020  /* Alternative Routing-ID */
 #define PCI_EXP_DEVCTL2_ATOMIC_REQ 0x0040  /* Set Atomic requests */
 #define PCI_EXP_DEVCTL2_ATOMIC_EGRESS_BLOCK 0x0080 /* Block atomic egress */