public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Johan Hovold <johan@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Ryan Mann <rmann@ndigital.com>,
	Andreas Messer <andi@bastelmap.de>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 7/8] USB: serial: ftdi_sio: clean up NDI speed hack
Date: Mon, 10 Nov 2025 12:12:11 +0100	[thread overview]
Message-ID: <20251110111212.32702-8-johan@kernel.org> (raw)
In-Reply-To: <20251110111212.32702-1-johan@kernel.org>

NDI devices remap the 19200 line speed to 1.2 Mbps.

Use the quirk pointer from the match table to enable the quirk instead
of comparing PIDs on every speed change.

Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/usb/serial/ftdi_sio.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index f5786689697c..26f1260ff995 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1247,6 +1247,7 @@ static int update_mctrl(struct usb_serial_port *port, unsigned int set,
 static u32 get_ftdi_divisor(struct tty_struct *tty,
 						struct usb_serial_port *port)
 {
+	const struct ftdi_quirk *quirk = usb_get_serial_data(port->serial);
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
 	struct device *dev = &port->dev;
 	u32 div_value = 0;
@@ -1306,17 +1307,8 @@ static u32 get_ftdi_divisor(struct tty_struct *tty,
 	case FT232R:
 	case FTX:
 		if (baud <= 3000000) {
-			u16 product_id = le16_to_cpu(
-				port->serial->dev->descriptor.idProduct);
-			if (((product_id == FTDI_NDI_HUC_PID)		||
-			     (product_id == FTDI_NDI_SPECTRA_SCU_PID)	||
-			     (product_id == FTDI_NDI_FUTURE_2_PID)	||
-			     (product_id == FTDI_NDI_FUTURE_3_PID)	||
-			     (product_id == FTDI_NDI_AURORA_SCU_PID)	||
-			     (product_id == FTDI_NDI_EMGUIDE_GEMINI_PID)) &&
-			    (baud == 19200)) {
+			if (quirk == &ftdi_ndi_quirk && baud == 19200)
 				baud = 1200000;
-			}
 			div_value = ftdi_232bm_baud_to_divisor(baud);
 		} else {
 			dev_dbg(dev, "%s - Baud rate too high!\n", __func__);
-- 
2.51.0


  parent reply	other threads:[~2025-11-10 11:14 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-10 11:12 [PATCH 0/8] USB: serial: ftdi_sio: clean up quirk handling Johan Hovold
2025-11-10 11:12 ` [PATCH 1/8] USB: serial: ftdi_sio: match on interface number for jtag Johan Hovold
2025-11-10 11:12 ` [PATCH 2/8] USB: serial: ftdi_sio: silence jtag probe Johan Hovold
2025-11-10 11:12 ` [PATCH 3/8] USB: serial: ftdi_sio: rewrite 8u2232c quirk Johan Hovold
2025-11-10 11:12 ` [PATCH 4/8] USB: serial: ftdi_sio: clean up quirk comments Johan Hovold
2025-11-10 11:12 ` [PATCH 5/8] USB: serial: ftdi_sio: rename quirk symbols Johan Hovold
2025-11-10 11:12 ` [PATCH 6/8] USB: serial: ftdi_sio: enable NDI speed hack consistently Johan Hovold
2025-11-10 11:12 ` Johan Hovold [this message]
2025-11-10 11:12 ` [PATCH 8/8] USB: serial: ftdi_sio: drop NDI quirk module parameter Johan Hovold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251110111212.32702-8-johan@kernel.org \
    --to=johan@kernel.org \
    --cc=andi@bastelmap.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=rmann@ndigital.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox