Re: [PATCH v1 03/13] serial: 8250_exar: Kill CTI_PCI_DEVICE()

From: Andy Shevchenko
Date: Thu May 02 2024 - 11:29:19 EST


On Thu, May 02, 2024 at 11:13:14AM -0400, Parker Newman wrote:
> On Thu, 2 May 2024 17:43:57 +0300
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:

> > The CTI_PCI_DEVICE() duplicates EXAR_DEVICE(). Kill the former.

..

> > -// For Connect Tech cards with Connect Tech vendor/device PCI IDs (FPGA based)
> > -#define CTI_PCI_DEVICE(devid, bd) { \
> > - PCI_DEVICE_SUB( \
> > - PCI_VENDOR_ID_CONNECT_TECH, \
> > - PCI_DEVICE_ID_CONNECT_TECH_PCI_##devid, \


#define PCI_DEVICE_SUB(vend, dev, subvend, subdev) \
.vendor = (vend), .device = (dev), \
.subvendor = (subvend), .subdevice = (subdev)

#define PCI_DEVICE_DATA(vend, dev, data) \
.vendor = PCI_VENDOR_ID_##vend, .device = PCI_DEVICE_ID_##vend##_##dev, \
.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0, \
.driver_data = (kernel_ulong_t)(data)


> > - PCI_ANY_ID, \
> > - PCI_ANY_ID), 0, 0, \
> > - (kernel_ulong_t)&bd \
> > - }
> > -
> > #define EXAR_DEVICE(vend, devid, bd) { PCI_DEVICE_DATA(vend, devid, &bd) }

> This is not correct. The CTI_PCI_DEVICE() macro is for cards that have the
> Connect Tech PCI Vendor ID (not Sub-Vendor ID). EXAR_DEVICE() is for cards with
> Exar PCI Vendor ID.

Above I added current code of these macros, can you elaborate how it's incorrect?

--
With Best Regards,
Andy Shevchenko