Message ID | 20230411033928.30397-2-Sergey.Semin@baikalelectronics.ru (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | PCI: dwc: Relatively simple fixes and cleanups | expand |
On Tue, Apr 11, 2023 at 06:39:19AM +0300, Serge Semin wrote: > Due to an unfortunate mistake the macro function actually checks the > IP-core version instead of the IP-core version type which isn't what > originally implied. Fix it by introducing a new helper > __dw_pcie_ver_type_cmp() with the same semantic as the __dw_pcie_ver_cmp() > counterpart except it refers to the dw_pcie.type field in order to perform > the passed comparison operation. > > Fixes: 0b0a780d52ad ("PCI: dwc: Add macros to compare Synopsys IP core versions") > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> - Mani > --- > drivers/pci/controller/dwc/pcie-designware.h | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h > index 79713ce075cc..adad0ea61799 100644 > --- a/drivers/pci/controller/dwc/pcie-designware.h > +++ b/drivers/pci/controller/dwc/pcie-designware.h > @@ -37,17 +37,20 @@ > #define __dw_pcie_ver_cmp(_pci, _ver, _op) \ > ((_pci)->version _op DW_PCIE_VER_ ## _ver) > > +#define __dw_pcie_ver_type_cmp(_pci, _type, _op) \ > + ((_pci)->type _op DW_PCIE_VER_TYPE_ ## _type) > + > #define dw_pcie_ver_is(_pci, _ver) __dw_pcie_ver_cmp(_pci, _ver, ==) > > #define dw_pcie_ver_is_ge(_pci, _ver) __dw_pcie_ver_cmp(_pci, _ver, >=) > > #define dw_pcie_ver_type_is(_pci, _ver, _type) \ > (__dw_pcie_ver_cmp(_pci, _ver, ==) && \ > - __dw_pcie_ver_cmp(_pci, TYPE_ ## _type, ==)) > + __dw_pcie_ver_type_cmp(_pci, _type, ==)) > > #define dw_pcie_ver_type_is_ge(_pci, _ver, _type) \ > (__dw_pcie_ver_cmp(_pci, _ver, ==) && \ > - __dw_pcie_ver_cmp(_pci, TYPE_ ## _type, >=)) > + __dw_pcie_ver_type_cmp(_pci, _type, >=)) > > /* DWC PCIe controller capabilities */ > #define DW_PCIE_CAP_REQ_RES 0 > -- > 2.40.0 > >
diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 79713ce075cc..adad0ea61799 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -37,17 +37,20 @@ #define __dw_pcie_ver_cmp(_pci, _ver, _op) \ ((_pci)->version _op DW_PCIE_VER_ ## _ver) +#define __dw_pcie_ver_type_cmp(_pci, _type, _op) \ + ((_pci)->type _op DW_PCIE_VER_TYPE_ ## _type) + #define dw_pcie_ver_is(_pci, _ver) __dw_pcie_ver_cmp(_pci, _ver, ==) #define dw_pcie_ver_is_ge(_pci, _ver) __dw_pcie_ver_cmp(_pci, _ver, >=) #define dw_pcie_ver_type_is(_pci, _ver, _type) \ (__dw_pcie_ver_cmp(_pci, _ver, ==) && \ - __dw_pcie_ver_cmp(_pci, TYPE_ ## _type, ==)) + __dw_pcie_ver_type_cmp(_pci, _type, ==)) #define dw_pcie_ver_type_is_ge(_pci, _ver, _type) \ (__dw_pcie_ver_cmp(_pci, _ver, ==) && \ - __dw_pcie_ver_cmp(_pci, TYPE_ ## _type, >=)) + __dw_pcie_ver_type_cmp(_pci, _type, >=)) /* DWC PCIe controller capabilities */ #define DW_PCIE_CAP_REQ_RES 0
Due to an unfortunate mistake the macro function actually checks the IP-core version instead of the IP-core version type which isn't what originally implied. Fix it by introducing a new helper __dw_pcie_ver_type_cmp() with the same semantic as the __dw_pcie_ver_cmp() counterpart except it refers to the dw_pcie.type field in order to perform the passed comparison operation. Fixes: 0b0a780d52ad ("PCI: dwc: Add macros to compare Synopsys IP core versions") Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> --- drivers/pci/controller/dwc/pcie-designware.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)