A single dw_pcie entity can't be a root complex and an endpoint at
the same time.
We can use this to reduce the size of dw_pcie by 80, from 280 to 200
bytes (on x32, guess more on x64), by putting the related embedded
structures (struct pcie_port and struct dw_pcie_ep) into a union.

Signed-off-by: Alexander Lobakin <aloba...@pm.me>
---
 drivers/pci/controller/dwc/pcie-designware.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/controller/dwc/pcie-designware.h 
b/drivers/pci/controller/dwc/pcie-designware.h
index 5d979953800d..924ebeaa3885 100644
--- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -265,8 +265,10 @@ struct dw_pcie {
        size_t                  atu_size;
        u32                     num_ib_windows;
        u32                     num_ob_windows;
-       struct pcie_port        pp;
-       struct dw_pcie_ep       ep;
+       union {
+               struct pcie_port        pp;
+               struct dw_pcie_ep       ep;
+       };
        const struct dw_pcie_ops *ops;
        unsigned int            version;
        int                     num_lanes;
-- 
2.30.0


Reply via email to