Changeset 49114


Ignore:
Timestamp:
2016-04-01T18:49:50+02:00 (22 months ago)
Author:
rmilecki
Message:

bcm53xx: use the final fix for iproc bcma regression

Signed-off-by: Rafał Miłecki <zajec5@…>

Location:
trunk/target/linux/bcm53xx
Files:
1 deleted
2 copied
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/bcm53xx/patches-4.1/041-PCI-iproc-Allow-multiple-devices-except-on-PAXC.patch

    r49113 r49114  
    1 From c43e4b52cbf2267047f67c9f65de18ee1ab8bfa2 Mon Sep 17 00:00:00 2001 
     1From 46560388c476c8471fde7712c10f9fad8d0d1875 Mon Sep 17 00:00:00 2001 
    22From: Ray Jui <rjui@broadcom.com> 
    33Date: Wed, 27 Jan 2016 16:52:24 -0600 
    4 Subject: [PATCH] PCI: iproc: Fix BCMA PCIe bus scanning regression 
     4Subject: [PATCH] PCI: iproc: Allow multiple devices except on PAXC 
    55 
    6 Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") causes 
    7 regression on EP device detection on BCMA based platforms. 
     6Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") only allowed 
     7device 0, which is a regression on BCMA-based platforms. 
    88 
    9 Fix the issue by allowing multiple devices to be configured on the same 
    10 bus, for all PAXB based child buses.  In addition, add a check to prevent 
    11 non-zero function from being used on bus 0 (root bus). 
     9All systems support only one device, a Root Port at 00:00.0, on the root 
     10bus.  PAXC-based systems support only the Root Port (00:00.0) and a single 
     11device (with multiple functions) below it, e.g., 01:00.0, 01:00.1, etc. 
     12Non-PAXC systems support arbitrary devices below the Root Port. 
    1213 
     14[bhelgaas: changelog, fold in removal of MAX_NUM_PAXC_PF check] 
    1315Fixes: 943ebae781f5 ("PCI: iproc: Add PAXC interface support") 
    1416Reported-by: Rafal Milecki <zajec5@gmail.com> 
     
    1618Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> 
    1719--- 
    18  drivers/pci/host/pcie-iproc.c | 28 +++++++++++----------------- 
    19  1 file changed, 11 insertions(+), 17 deletions(-) 
     20 drivers/pci/host/pcie-iproc.c | 29 +++++++++++------------------ 
     21 1 file changed, 11 insertions(+), 18 deletions(-) 
    2022 
    2123--- a/drivers/pci/host/pcie-iproc.c 
    2224+++ b/drivers/pci/host/pcie-iproc.c 
    23 @@ -170,20 +170,6 @@ static inline void iproc_pcie_ob_write(s 
     25@@ -64,7 +64,6 @@ 
     26 #define OARR_SIZE_CFG                BIT(OARR_SIZE_CFG_SHIFT) 
     27  
     28 #define MAX_NUM_OB_WINDOWS           2 
     29-#define MAX_NUM_PAXC_PF              4 
     30  
     31 #define IPROC_PCIE_REG_INVALID 0xffff 
     32  
     33@@ -170,20 +169,6 @@ static inline void iproc_pcie_ob_write(struct iproc_pcie *pcie, 
    2434        writel(val, pcie->base + offset + (window * 8)); 
    2535 } 
     
    4252  * Note access to the configuration registers are protected at the higher layer 
    4353  * by 'pci_lock' in drivers/pci/access.c 
    44 @@ -199,11 +185,11 @@ static void __iomem *iproc_pcie_map_cfg_ 
     54@@ -199,11 +184,11 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus, 
    4555        u32 val; 
    4656        u16 offset; 
     
    5767                                     where & CFG_IND_ADDR_MASK); 
    5868                offset = iproc_pcie_reg_offset(pcie, IPROC_PCIE_CFG_IND_DATA); 
    59 @@ -213,6 +199,14 @@ static void __iomem *iproc_pcie_map_cfg_ 
     69@@ -213,6 +198,14 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus, 
    6070                        return (pcie->base + offset); 
    6171        } 
     
    6373+       /* 
    6474+        * PAXC is connected to an internally emulated EP within the SoC.  It 
    65 +        * allows only one device and supports a limited number of functions. 
     75+        * allows only one device. 
    6676+        */ 
    6777+       if (pcie->type == IPROC_PCIE_PAXC) 
    68 +               if (slot > 0 || fn >= MAX_NUM_PAXC_PF) 
     78+               if (slot > 0) 
    6979+                       return NULL; 
    7080+ 
  • trunk/target/linux/bcm53xx/patches-4.3/154-PCI-iproc-Allow-multiple-devices-except-on-PAXC.patch

    r49113 r49114  
    1 From c43e4b52cbf2267047f67c9f65de18ee1ab8bfa2 Mon Sep 17 00:00:00 2001 
     1From 46560388c476c8471fde7712c10f9fad8d0d1875 Mon Sep 17 00:00:00 2001 
    22From: Ray Jui <rjui@broadcom.com> 
    33Date: Wed, 27 Jan 2016 16:52:24 -0600 
    4 Subject: [PATCH] PCI: iproc: Fix BCMA PCIe bus scanning regression 
     4Subject: [PATCH] PCI: iproc: Allow multiple devices except on PAXC 
    55 
    6 Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") causes 
    7 regression on EP device detection on BCMA based platforms. 
     6Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") only allowed 
     7device 0, which is a regression on BCMA-based platforms. 
    88 
    9 Fix the issue by allowing multiple devices to be configured on the same 
    10 bus, for all PAXB based child buses.  In addition, add a check to prevent 
    11 non-zero function from being used on bus 0 (root bus). 
     9All systems support only one device, a Root Port at 00:00.0, on the root 
     10bus.  PAXC-based systems support only the Root Port (00:00.0) and a single 
     11device (with multiple functions) below it, e.g., 01:00.0, 01:00.1, etc. 
     12Non-PAXC systems support arbitrary devices below the Root Port. 
    1213 
     14[bhelgaas: changelog, fold in removal of MAX_NUM_PAXC_PF check] 
    1315Fixes: 943ebae781f5 ("PCI: iproc: Add PAXC interface support") 
    1416Reported-by: Rafal Milecki <zajec5@gmail.com> 
     
    1618Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> 
    1719--- 
    18  drivers/pci/host/pcie-iproc.c | 28 +++++++++++----------------- 
    19  1 file changed, 11 insertions(+), 17 deletions(-) 
     20 drivers/pci/host/pcie-iproc.c | 29 +++++++++++------------------ 
     21 1 file changed, 11 insertions(+), 18 deletions(-) 
    2022 
    2123--- a/drivers/pci/host/pcie-iproc.c 
    2224+++ b/drivers/pci/host/pcie-iproc.c 
    23 @@ -170,20 +170,6 @@ static inline void iproc_pcie_ob_write(s 
     25@@ -64,7 +64,6 @@ 
     26 #define OARR_SIZE_CFG                BIT(OARR_SIZE_CFG_SHIFT) 
     27  
     28 #define MAX_NUM_OB_WINDOWS           2 
     29-#define MAX_NUM_PAXC_PF              4 
     30  
     31 #define IPROC_PCIE_REG_INVALID 0xffff 
     32  
     33@@ -170,20 +169,6 @@ static inline void iproc_pcie_ob_write(struct iproc_pcie *pcie, 
    2434        writel(val, pcie->base + offset + (window * 8)); 
    2535 } 
     
    4252  * Note access to the configuration registers are protected at the higher layer 
    4353  * by 'pci_lock' in drivers/pci/access.c 
    44 @@ -199,11 +185,11 @@ static void __iomem *iproc_pcie_map_cfg_ 
     54@@ -199,11 +184,11 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus, 
    4555        u32 val; 
    4656        u16 offset; 
     
    5767                                     where & CFG_IND_ADDR_MASK); 
    5868                offset = iproc_pcie_reg_offset(pcie, IPROC_PCIE_CFG_IND_DATA); 
    59 @@ -213,6 +199,14 @@ static void __iomem *iproc_pcie_map_cfg_ 
     69@@ -213,6 +198,14 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus, 
    6070                        return (pcie->base + offset); 
    6171        } 
     
    6373+       /* 
    6474+        * PAXC is connected to an internally emulated EP within the SoC.  It 
    65 +        * allows only one device and supports a limited number of functions. 
     75+        * allows only one device. 
    6676+        */ 
    6777+       if (pcie->type == IPROC_PCIE_PAXC) 
    68 +               if (slot > 0 || fn >= MAX_NUM_PAXC_PF) 
     78+               if (slot > 0) 
    6979+                       return NULL; 
    7080+ 
  • trunk/target/linux/bcm53xx/patches-4.4/088-PCI-iproc-Allow-multiple-devices-except-on-PAXC.patch

    r49113 r49114  
    1 From c43e4b52cbf2267047f67c9f65de18ee1ab8bfa2 Mon Sep 17 00:00:00 2001 
     1From 46560388c476c8471fde7712c10f9fad8d0d1875 Mon Sep 17 00:00:00 2001 
    22From: Ray Jui <rjui@broadcom.com> 
    33Date: Wed, 27 Jan 2016 16:52:24 -0600 
    4 Subject: [PATCH] PCI: iproc: Fix BCMA PCIe bus scanning regression 
     4Subject: [PATCH] PCI: iproc: Allow multiple devices except on PAXC 
    55 
    6 Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") causes 
    7 regression on EP device detection on BCMA based platforms. 
     6Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") only allowed 
     7device 0, which is a regression on BCMA-based platforms. 
    88 
    9 Fix the issue by allowing multiple devices to be configured on the same 
    10 bus, for all PAXB based child buses.  In addition, add a check to prevent 
    11 non-zero function from being used on bus 0 (root bus). 
     9All systems support only one device, a Root Port at 00:00.0, on the root 
     10bus.  PAXC-based systems support only the Root Port (00:00.0) and a single 
     11device (with multiple functions) below it, e.g., 01:00.0, 01:00.1, etc. 
     12Non-PAXC systems support arbitrary devices below the Root Port. 
    1213 
     14[bhelgaas: changelog, fold in removal of MAX_NUM_PAXC_PF check] 
    1315Fixes: 943ebae781f5 ("PCI: iproc: Add PAXC interface support") 
    1416Reported-by: Rafal Milecki <zajec5@gmail.com> 
     
    1618Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> 
    1719--- 
    18  drivers/pci/host/pcie-iproc.c | 28 +++++++++++----------------- 
    19  1 file changed, 11 insertions(+), 17 deletions(-) 
     20 drivers/pci/host/pcie-iproc.c | 29 +++++++++++------------------ 
     21 1 file changed, 11 insertions(+), 18 deletions(-) 
    2022 
    2123--- a/drivers/pci/host/pcie-iproc.c 
    2224+++ b/drivers/pci/host/pcie-iproc.c 
    23 @@ -170,20 +170,6 @@ static inline void iproc_pcie_ob_write(s 
     25@@ -64,7 +64,6 @@ 
     26 #define OARR_SIZE_CFG                BIT(OARR_SIZE_CFG_SHIFT) 
     27  
     28 #define MAX_NUM_OB_WINDOWS           2 
     29-#define MAX_NUM_PAXC_PF              4 
     30  
     31 #define IPROC_PCIE_REG_INVALID 0xffff 
     32  
     33@@ -170,20 +169,6 @@ static inline void iproc_pcie_ob_write(struct iproc_pcie *pcie, 
    2434        writel(val, pcie->base + offset + (window * 8)); 
    2535 } 
     
    4252  * Note access to the configuration registers are protected at the higher layer 
    4353  * by 'pci_lock' in drivers/pci/access.c 
    44 @@ -199,11 +185,11 @@ static void __iomem *iproc_pcie_map_cfg_ 
     54@@ -199,11 +184,11 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus, 
    4555        u32 val; 
    4656        u16 offset; 
     
    5767                                     where & CFG_IND_ADDR_MASK); 
    5868                offset = iproc_pcie_reg_offset(pcie, IPROC_PCIE_CFG_IND_DATA); 
    59 @@ -213,6 +199,14 @@ static void __iomem *iproc_pcie_map_cfg_ 
     69@@ -213,6 +198,14 @@ static void __iomem *iproc_pcie_map_cfg_bus(struct pci_bus *bus, 
    6070                        return (pcie->base + offset); 
    6171        } 
     
    6373+       /* 
    6474+        * PAXC is connected to an internally emulated EP within the SoC.  It 
    65 +        * allows only one device and supports a limited number of functions. 
     75+        * allows only one device. 
    6676+        */ 
    6777+       if (pcie->type == IPROC_PCIE_PAXC) 
    68 +               if (slot > 0 || fn >= MAX_NUM_PAXC_PF) 
     78+               if (slot > 0) 
    6979+                       return NULL; 
    7080+ 
Note: See TracChangeset for help on using the changeset viewer.