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@xxxxxxxxxxxxxxxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> - 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 > > -- மணிவண்ணன் சதாசிவம்