[v4,2/2] USB: serial: blacklist USB-UIRT when driver is selected
Commit Message
The USB-UIRT device has its own driver, so blacklist the fdti driver
from using it if the driver has been enabled.
Signed-off-by: Sean Young <sean@mess.org>
---
drivers/usb/serial/ftdi_sio.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Comments
On Thu, Jun 10, 2021 at 11:16:25AM +0100, Sean Young wrote:
> The USB-UIRT device has its own driver, so blacklist the fdti driver
> from using it if the driver has been enabled.
>
> Signed-off-by: Sean Young <sean@mess.org>
> ---
> drivers/usb/serial/ftdi_sio.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
> index 369ef140df78..2e9a9076a38d 100644
> --- a/drivers/usb/serial/ftdi_sio.c
> +++ b/drivers/usb/serial/ftdi_sio.c
> @@ -106,7 +106,7 @@ static const struct ftdi_sio_quirk ftdi_NDI_device_quirk = {
> .probe = ftdi_NDI_device_setup,
> };
>
> -static const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
> +static __maybe_unused const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
Why make this change?
> .port_probe = ftdi_USB_UIRT_setup,
> };
>
> @@ -568,8 +568,10 @@ static const struct usb_device_id id_table_combined[] = {
> { USB_DEVICE(OCT_VID, OCT_DK201_PID) },
> { USB_DEVICE(FTDI_VID, FTDI_HE_TIRA1_PID),
> .driver_info = (kernel_ulong_t)&ftdi_HE_TIRA1_quirk },
> +#if !IS_ENABLED(CONFIG_IR_UIRT)
> { USB_DEVICE(FTDI_VID, FTDI_USB_UIRT_PID),
> .driver_info = (kernel_ulong_t)&ftdi_USB_UIRT_quirk },
> +#endif
> { USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_1) },
> { USB_DEVICE(FTDI_VID, PROTEGO_R2X0) },
> { USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_3) },
> @@ -2281,7 +2283,7 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port)
> /* Setup for the USB-UIRT device, which requires hardwired
> * baudrate (38400 gets mapped to 312500) */
> /* Called from usbserial:serial_probe */
> -static void ftdi_USB_UIRT_setup(struct ftdi_private *priv)
> +static __maybe_unused void ftdi_USB_UIRT_setup(struct ftdi_private *priv)
Again, why this change here?
thanks,
greg k-h
On Thu, Jun 10, 2021 at 12:23:53PM +0200, Greg Kroah-Hartman wrote:
> On Thu, Jun 10, 2021 at 11:16:25AM +0100, Sean Young wrote:
> > The USB-UIRT device has its own driver, so blacklist the fdti driver
> > from using it if the driver has been enabled.
> >
> > Signed-off-by: Sean Young <sean@mess.org>
> > ---
> > drivers/usb/serial/ftdi_sio.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
> > index 369ef140df78..2e9a9076a38d 100644
> > --- a/drivers/usb/serial/ftdi_sio.c
> > +++ b/drivers/usb/serial/ftdi_sio.c
> > @@ -106,7 +106,7 @@ static const struct ftdi_sio_quirk ftdi_NDI_device_quirk = {
> > .probe = ftdi_NDI_device_setup,
> > };
> >
> > -static const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
> > +static __maybe_unused const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
>
> Why make this change?
If CONFIG_IR_UIRT is enabled, then this struct is not used. This generates
a warning when compiling with W=1 (clang or gcc):
CC [M] drivers/usb/serial/ftdi_sio.o
drivers/usb/serial/ftdi_sio.c:109:36: warning: ‘ftdi_USB_UIRT_quirk’ defined but not used [-Wunused-const-variable=]
109 | static const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
| ^~~~~~~~~~~~~~~~~~~
>
> > .port_probe = ftdi_USB_UIRT_setup,
> > };
> >
> > @@ -568,8 +568,10 @@ static const struct usb_device_id id_table_combined[] = {
> > { USB_DEVICE(OCT_VID, OCT_DK201_PID) },
> > { USB_DEVICE(FTDI_VID, FTDI_HE_TIRA1_PID),
> > .driver_info = (kernel_ulong_t)&ftdi_HE_TIRA1_quirk },
> > +#if !IS_ENABLED(CONFIG_IR_UIRT)
> > { USB_DEVICE(FTDI_VID, FTDI_USB_UIRT_PID),
> > .driver_info = (kernel_ulong_t)&ftdi_USB_UIRT_quirk },
> > +#endif
> > { USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_1) },
> > { USB_DEVICE(FTDI_VID, PROTEGO_R2X0) },
> > { USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_3) },
> > @@ -2281,7 +2283,7 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port)
> > /* Setup for the USB-UIRT device, which requires hardwired
> > * baudrate (38400 gets mapped to 312500) */
> > /* Called from usbserial:serial_probe */
> > -static void ftdi_USB_UIRT_setup(struct ftdi_private *priv)
> > +static __maybe_unused void ftdi_USB_UIRT_setup(struct ftdi_private *priv)
>
> Again, why this change here?
Same again.
Thanks for reviewing.
Sean
@@ -106,7 +106,7 @@ static const struct ftdi_sio_quirk ftdi_NDI_device_quirk = {
.probe = ftdi_NDI_device_setup,
};
-static const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
+static __maybe_unused const struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
.port_probe = ftdi_USB_UIRT_setup,
};
@@ -568,8 +568,10 @@ static const struct usb_device_id id_table_combined[] = {
{ USB_DEVICE(OCT_VID, OCT_DK201_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_HE_TIRA1_PID),
.driver_info = (kernel_ulong_t)&ftdi_HE_TIRA1_quirk },
+#if !IS_ENABLED(CONFIG_IR_UIRT)
{ USB_DEVICE(FTDI_VID, FTDI_USB_UIRT_PID),
.driver_info = (kernel_ulong_t)&ftdi_USB_UIRT_quirk },
+#endif
{ USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_1) },
{ USB_DEVICE(FTDI_VID, PROTEGO_R2X0) },
{ USB_DEVICE(FTDI_VID, PROTEGO_SPECIAL_3) },
@@ -2281,7 +2283,7 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port)
/* Setup for the USB-UIRT device, which requires hardwired
* baudrate (38400 gets mapped to 312500) */
/* Called from usbserial:serial_probe */
-static void ftdi_USB_UIRT_setup(struct ftdi_private *priv)
+static __maybe_unused void ftdi_USB_UIRT_setup(struct ftdi_private *priv)
{
priv->flags |= ASYNC_SPD_CUST;
priv->custom_divisor = 77;