From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8083934D4F1; Wed, 22 Oct 2025 15:26:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; cv=none; b=Jph5mScdFeeVjJoI6Cl/uTTb6I6SzL++W4DNjAVEmwnt2EHw08Fw17HMKCFvfZp7GdUPUR+gB+F4MM10LKg803mO1ZH4sfueXM4KWi94D76HUvloAX5JTEXMZ9h0pwPKspimoRp+AG5uA58NlL/bioxViHgxMXPegDCv4SxJwjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; c=relaxed/simple; bh=N9SEG1mjhY5ITcDXuFtE95SgJ+Pu0dWYnfe73PHyEdA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WGatbkxdlQ/FyqHdbVpHeDbfalCkPDwpRlrgDeHswUQK00yHGLn2hPDGfwmavoBjxctfw/IFH+y7V/XNyMv2xmjYQyqx/c5v4rJZYOQXyx3OFFDCUQZl1OhitQIfAmoMWhJNRAcerma//+a9AcVFeOBaCds8ge4lTh+lYoOPZyc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rxwkrXbU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rxwkrXbU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C6EDC113D0; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=N9SEG1mjhY5ITcDXuFtE95SgJ+Pu0dWYnfe73PHyEdA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rxwkrXbUrQMUU+8trCZE4X5seegiGALUBJJxZqrPVP4xrhUu1pQa7d/oDAQzTtA5v Rq/u/Odi58cjnE587dXPwsdVdLpP9J6e1ZgGLiDgT9dT34+J4bD9JJLK4v5ZijNwPH gljvcB7WjKw7r4AX9cOH5bVixD4f+wA6Xi/NGVrAC9MKSeo0OAf2EvAWlsPmVf2dbW ZpwfZcBhPZ57vnc+pvo7uTiy7Jpug6tzRt64NItrqs9qNskWk/dn4dLzK9WCdXOVru X1QaNytieRWpytzIpwJHVtBobgabJ3H1uQQx0J038hlA9/9kpFk9LjhCMrtS4PBn66 nA31zDlpQ9Kng== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajr-000000006JD-2jYt; Wed, 22 Oct 2025 17:26:59 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH 1/8] USB: serial: belkin_sa: fix TIOCMBIS and TIOCMBIC Date: Wed, 22 Oct 2025 17:26:33 +0200 Message-ID: <20251022152640.24212-2-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Asserting or deasserting a modem control line using TIOCMBIS or TIOCMBIC should not deassert any lines that are not in the mask. Fix this long-standing regression dating back to 2003 when the tiocmset() callback was introduced. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/belkin_sa.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c index 44f5b58beec9..aa6b4c4ad5ec 100644 --- a/drivers/usb/serial/belkin_sa.c +++ b/drivers/usb/serial/belkin_sa.c @@ -435,7 +435,7 @@ static int belkin_sa_tiocmset(struct tty_struct *tty, struct belkin_sa_private *priv =3D usb_get_serial_port_data(port); unsigned long control_state; unsigned long flags; - int retval; + int retval =3D 0; int rts =3D 0; int dtr =3D 0; =20 @@ -452,26 +452,32 @@ static int belkin_sa_tiocmset(struct tty_struct *tty, } if (clear & TIOCM_RTS) { control_state &=3D ~TIOCM_RTS; - rts =3D 0; + rts =3D 1; } if (clear & TIOCM_DTR) { control_state &=3D ~TIOCM_DTR; - dtr =3D 0; + dtr =3D 1; } =20 priv->control_state =3D control_state; spin_unlock_irqrestore(&priv->lock, flags); =20 - retval =3D BSA_USB_CMD(BELKIN_SA_SET_RTS_REQUEST, rts); - if (retval < 0) { - dev_err(&port->dev, "Set RTS error %d\n", retval); - goto exit; + if (rts) { + retval =3D BSA_USB_CMD(BELKIN_SA_SET_RTS_REQUEST, + !!(control_state & TIOCM_RTS)); + if (retval < 0) { + dev_err(&port->dev, "Set RTS error %d\n", retval); + goto exit; + } } =20 - retval =3D BSA_USB_CMD(BELKIN_SA_SET_DTR_REQUEST, dtr); - if (retval < 0) { - dev_err(&port->dev, "Set DTR error %d\n", retval); - goto exit; + if (dtr) { + retval =3D BSA_USB_CMD(BELKIN_SA_SET_DTR_REQUEST, + !!(control_state & TIOCM_DTR)); + if (retval < 0) { + dev_err(&port->dev, "Set DTR error %d\n", retval); + goto exit; + } } exit: return retval; --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7DA3934D4EE; Wed, 22 Oct 2025 15:26:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; cv=none; b=rfBUBGfg21rDnVZpTaBCUNaAQgPw3vpjjdSPIRaNgC0HNMU8BXKICZNg00FHVbaZu+sJV8LCl2b2UqVEy3TVpuRWkAm2WulNilhYhPdNCMTrHdj/1v+Raf9flB5MHwqIUxRefETywcMsM+V/ruT4+19CV8zn2Zdk+zjUYRsLIRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; c=relaxed/simple; bh=oA3wjbbjuI9VJKX4+gxqJBRq5ZTkS6yh9fDd34QwJ5I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pEFnmsqDgVcJ6GUgCv5MCzTJPc6mDmgIFNVb9MRHEJ/YpXPlJTVGRFEf4tDyL2AGh10aAsFlSipvXdSLl7NhftU5rdNgHmCmI23cIahJz6xgn6TstIF6VKz/nZY+P0n5KNvjWs1osiIsQgRHZqPrsDk9kMejvHuCnogjJ9W8F24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jvuE/DfD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jvuE/DfD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F09DFC4CEF5; Wed, 22 Oct 2025 15:26:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=oA3wjbbjuI9VJKX4+gxqJBRq5ZTkS6yh9fDd34QwJ5I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jvuE/DfD4nqRSWWOdUvufiFepbolnoAiaCMsbkScweEkZC5HcX2oV6K2YHX/PL26J U9p+4JXCOzbRVoRQVles3pOQi9WXEJyWSiW1JblrBV5kunVFH0VPv4KctOTCt2U4sQ W8YOp2hjRCpNoUlT/iLxwERFhtrXnwiPf990EL70iYHoWQ11g3JWgMaVapOciCWA34 0XIE1wSGGUPMBRu+eQq3Zpstet2L/kYdjTyTWbEhgd9Y8V8V8/3u6UbOIwTwMvCWoo sHZAs4oZE9oaDajWRcJIVzbxXT1uxfIa2LeBtoRKfgRubeSw4mQPByx93n/XSl/5pi Je3ZFgwPqOhZA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajr-000000006JG-33xk; Wed, 22 Oct 2025 17:26:59 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH 2/8] USB: serial: kobil_sct: fix TIOCMBIS and TIOCMBIC Date: Wed, 22 Oct 2025 17:26:34 +0200 Message-ID: <20251022152640.24212-3-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Asserting or deasserting a modem control line using TIOCMBIS or TIOCMBIC should not deassert any lines that are not in the mask. Fix this long-standing issue dating back to 2003 when the support for these ioctls was added with the introduction of the tiocmset() callback. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/kobil_sct.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index 464433be2034..96ea571c436a 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -418,7 +418,7 @@ static int kobil_tiocmset(struct tty_struct *tty, struct usb_serial_port *port =3D tty->driver_data; struct device *dev =3D &port->dev; struct kobil_private *priv; - int result; + int result =3D 0; int dtr =3D 0; int rts =3D 0; =20 @@ -435,12 +435,12 @@ static int kobil_tiocmset(struct tty_struct *tty, if (set & TIOCM_DTR) dtr =3D 1; if (clear & TIOCM_RTS) - rts =3D 0; + rts =3D 1; if (clear & TIOCM_DTR) - dtr =3D 0; + dtr =3D 1; =20 - if (priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID) { - if (dtr !=3D 0) + if (dtr && priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID) { + if (set & TIOCM_DTR) dev_dbg(dev, "%s - Setting DTR\n", __func__); else dev_dbg(dev, "%s - Clearing DTR\n", __func__); @@ -448,13 +448,13 @@ static int kobil_tiocmset(struct tty_struct *tty, usb_sndctrlpipe(port->serial->dev, 0), SUSBCRequest_SetStatusLinesOrQueues, USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - ((dtr !=3D 0) ? SUSBCR_SSL_SETDTR : SUSBCR_SSL_CLRDTR), + ((set & TIOCM_DTR) ? SUSBCR_SSL_SETDTR : SUSBCR_SSL_CLRDTR), 0, NULL, 0, KOBIL_TIMEOUT); - } else { - if (rts !=3D 0) + } else if (rts) { + if (set & TIOCM_RTS) dev_dbg(dev, "%s - Setting RTS\n", __func__); else dev_dbg(dev, "%s - Clearing RTS\n", __func__); @@ -462,7 +462,7 @@ static int kobil_tiocmset(struct tty_struct *tty, usb_sndctrlpipe(port->serial->dev, 0), SUSBCRequest_SetStatusLinesOrQueues, USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - ((rts !=3D 0) ? SUSBCR_SSL_SETRTS : SUSBCR_SSL_CLRRTS), + ((set & TIOCM_RTS) ? SUSBCR_SSL_SETRTS : SUSBCR_SSL_CLRRTS), 0, NULL, 0, --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 866A434D4F3; Wed, 22 Oct 2025 15:26:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; cv=none; b=nh5x1zTiMiXTvmw+V4Gf/im6ue+/K9J4RxJzTnivltzv4J8FK6hzlP3Lg9Cte42l0r9hGd8U+kmbwQzOdypyxgO53LzNdT6ECnhJywaKMj1W1LxuiuQN1RlV/dkMYDpEsPwAbPV/n7iEC7XsUXIEPpyS8RQq/LB9WIn2m+zvFqQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; c=relaxed/simple; bh=q7VD6JwdCTUvOEdwC95Y74/EVANR7Cjb3M1GyXBWDxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=McfkxlynAlvEbvN27Okyok8H0Z3JqBfEG7XabGR53DCztq4j7+FN++nJ9/LCZV11BB85flm5/I+IZnb6PUVqEEHflqSZwBzJHpmh6+Kqk5FmoQuqOj9KD9SrP5pgSRzNM8cRdLmNn83Ux7t3VwHGwCjfjJFc1Zw6Kwqe0lvN1YQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hwwlT5D+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hwwlT5D+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D3DAC116D0; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=q7VD6JwdCTUvOEdwC95Y74/EVANR7Cjb3M1GyXBWDxk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hwwlT5D+N0IblKrqOeFYshfS0g5KDjWIUUtSSYG/k5sn1YxlFvQPMTD/r24X6mxf5 fa5h7UP0NV3WlDvpLiY9Wn90RQs7MFSwF28FYHq6Q7JXmxE9LqYRtlj17txQeurxzH SO09Piu+3DUpxuOSsg976XkdNAq6peRUzjBa4zW6vYY9C5UrugbtB/gFS7S+5HckaA 5isq1vB6TgS8jaJFpSNCa/Olttz9tFjt5WuYLqRC84dqCMZ7c7ywQxLf9YlhtyQZ4r DWPbCMFXWehsW9wGXLX55Cfl72SFmCYhzuh7GfJqcpWkEuDh5JSdzd31Y5ZU15uGJq I6m57jxSNWJ6A== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajr-000000006JJ-3Sjt; Wed, 22 Oct 2025 17:26:59 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] USB: serial: belkin_sa: clean up tiocmset() Date: Wed, 22 Oct 2025 17:26:35 +0200 Message-ID: <20251022152640.24212-4-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clean up the tiocmset() implementation by dropping the dtr and rts flags to make the logic a little easier to follow. Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/belkin_sa.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c index aa6b4c4ad5ec..5c41c1c82c3f 100644 --- a/drivers/usb/serial/belkin_sa.c +++ b/drivers/usb/serial/belkin_sa.c @@ -436,33 +436,23 @@ static int belkin_sa_tiocmset(struct tty_struct *tty, unsigned long control_state; unsigned long flags; int retval =3D 0; - int rts =3D 0; - int dtr =3D 0; =20 spin_lock_irqsave(&priv->lock, flags); control_state =3D priv->control_state; =20 - if (set & TIOCM_RTS) { + if (set & TIOCM_RTS) control_state |=3D TIOCM_RTS; - rts =3D 1; - } - if (set & TIOCM_DTR) { + if (set & TIOCM_DTR) control_state |=3D TIOCM_DTR; - dtr =3D 1; - } - if (clear & TIOCM_RTS) { + if (clear & TIOCM_RTS) control_state &=3D ~TIOCM_RTS; - rts =3D 1; - } - if (clear & TIOCM_DTR) { + if (clear & TIOCM_DTR) control_state &=3D ~TIOCM_DTR; - dtr =3D 1; - } =20 priv->control_state =3D control_state; spin_unlock_irqrestore(&priv->lock, flags); =20 - if (rts) { + if ((set | clear) & TIOCM_RTS) { retval =3D BSA_USB_CMD(BELKIN_SA_SET_RTS_REQUEST, !!(control_state & TIOCM_RTS)); if (retval < 0) { @@ -471,7 +461,7 @@ static int belkin_sa_tiocmset(struct tty_struct *tty, } } =20 - if (dtr) { + if ((set | clear) & TIOCM_DTR) { retval =3D BSA_USB_CMD(BELKIN_SA_SET_DTR_REQUEST, !!(control_state & TIOCM_DTR)); if (retval < 0) { --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F1B334B434; Wed, 22 Oct 2025 15:26:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; cv=none; b=eMr+T375jWcSPngQrPvajqzjIagIZ0cHVzh/cISrrhtsu/eawqmeJkV9MF0RuF19BvPA8L7noSrrN5Eoh9AOX7HBmLyUNH2/ESTU4781G7pQ7szoDotwgc02nUFmkq1d/ioq2pqcXiak1PGEKz6gYezkwRB4QC6cySsCMKWnS+o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; c=relaxed/simple; bh=JowAr2pRjS1kkLEPho/c3TcgpU4Ln6t1Sp2K+I6eKNw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ia9w/hGEQ7gXb3XOmgYSa0FjsP8LPerMJ9NwfRirF7xSU8CdvNB6VxzNcQCYBWQxJ5aHD0hmHjkmAECQTUUPoaMhw6hswOokuyDn/393QakuFJ9ZH8/zzluRHa9uozR1H59R6V1XDpbzCaOoLV88CJS8CiDvkzLty4w3Ut73YQA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ag9rRglk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ag9rRglk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D411C4AF0B; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=JowAr2pRjS1kkLEPho/c3TcgpU4Ln6t1Sp2K+I6eKNw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ag9rRglkeOjap1N/KRj8B0cFtgQwOzIZKaju4z9NrKdslCL+3UaquiYlNqZ+tvP6h AlytpSfclvp4fVhMrTcX5w8c4K7Va+mXMAmSm2IOpoWA0LElHy2voUdi9ZIX2PIgsM CYx75BcDwZsR4G2rwuXBvplYl8dkKWEu06xpEd3ilcWzPr44cRNMxnpmJEt3Pxp12/ UeARsObA38LRNsLpdp3I/7vMKW5zmIpuynUjzsKVmYJoDEl3azY5XMCFJuZFgCQrZn ZnnbeAYSPQy2yjcNNpnJK9ydwyGBJ1OmosvxHqm3uvraaP9XFT7bymcuUjC2DrjmyW 27fk47dQQkZ/w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajr-000000006JM-3qE3; Wed, 22 Oct 2025 17:26:59 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/8] USB: serial: kobil_sct: clean up tiocmset() Date: Wed, 22 Oct 2025 17:26:36 +0200 Message-ID: <20251022152640.24212-5-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clean up the tiocmset() implementation by simplifying the flag check, dropping some dev_dbg(), logging errors using dev_err() and using a common control message call for both DTR and RTS to make the existing logic easier to follow. Note that the modem control lines are currently only manipulated in this function, which therefore does not require any locking. Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/kobil_sct.c | 61 +++++++++++++++------------------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index 96ea571c436a..b8169783f6f0 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -418,11 +418,10 @@ static int kobil_tiocmset(struct tty_struct *tty, struct usb_serial_port *port =3D tty->driver_data; struct device *dev =3D &port->dev; struct kobil_private *priv; - int result =3D 0; - int dtr =3D 0; - int rts =3D 0; + int dtr, rts; + int result; + u16 val =3D 0; =20 - /* FIXME: locking ? */ priv =3D usb_get_serial_port_data(port); if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID || priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { @@ -430,46 +429,38 @@ static int kobil_tiocmset(struct tty_struct *tty, return -EINVAL; } =20 - if (set & TIOCM_RTS) - rts =3D 1; - if (set & TIOCM_DTR) - dtr =3D 1; - if (clear & TIOCM_RTS) - rts =3D 1; - if (clear & TIOCM_DTR) - dtr =3D 1; + dtr =3D (set | clear) & TIOCM_DTR; + rts =3D (set | clear) & TIOCM_RTS; =20 if (dtr && priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID) { if (set & TIOCM_DTR) - dev_dbg(dev, "%s - Setting DTR\n", __func__); + val =3D SUSBCR_SSL_SETDTR; else - dev_dbg(dev, "%s - Clearing DTR\n", __func__); - result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_SetStatusLinesOrQueues, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - ((set & TIOCM_DTR) ? SUSBCR_SSL_SETDTR : SUSBCR_SSL_CLRDTR), - 0, - NULL, - 0, - KOBIL_TIMEOUT); + val =3D SUSBCR_SSL_CLRDTR; } else if (rts) { if (set & TIOCM_RTS) - dev_dbg(dev, "%s - Setting RTS\n", __func__); + val =3D SUSBCR_SSL_SETRTS; else - dev_dbg(dev, "%s - Clearing RTS\n", __func__); + val =3D SUSBCR_SSL_CLRRTS; + } + + if (val) { result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_SetStatusLinesOrQueues, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - ((set & TIOCM_RTS) ? SUSBCR_SSL_SETRTS : SUSBCR_SSL_CLRRTS), - 0, - NULL, - 0, - KOBIL_TIMEOUT); + usb_sndctrlpipe(port->serial->dev, 0), + SUSBCRequest_SetStatusLinesOrQueues, + USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, + val, + 0, + NULL, + 0, + KOBIL_TIMEOUT); + if (result < 0) { + dev_err(dev, "failed to set status lines: %d\n", result); + return result; + } } - dev_dbg(dev, "%s - Send set_status_line URB returns: %i\n", __func__, res= ult); - return (result < 0) ? result : 0; + + return 0; } =20 static void kobil_set_termios(struct tty_struct *tty, --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A12934D4F4; Wed, 22 Oct 2025 15:26:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; cv=none; b=jsohzrR2B5xoYPMbsWuCS+tayeuhPsyrLkJvo2cDsQtrfUobkBD+LmJWsUrKUaPdwy89OjWp/QxgGhGGJGXOk7CIz2FarU0l4+j+wu7xABSFs9mUYGrD+V8oZqq4Fh8QnUIQr9FSTimfyvJ1zrZMfOU3I2Bm5mx/Z02JFRPvl/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146814; c=relaxed/simple; bh=4QXspED8JrnEGsVaasD9a+i+F8oDDicgcZNuwSuqeIM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fr1GFB4UGvBUvHV541mBlUFozSqX1pSyC5l5EXMddx/FpzRkG9lDinkw8+ciQxpPrLx63K676EJIipKQvgiQqqDzrobmHZUETC2Fok0HCXemURtM0dNWtdV2S/DZ8nH6Z9KQ/5MO22nKrIKnSBiqU5w2C3FNauxNCs8b0lUROKU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Po78gJQb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Po78gJQb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EB5AC116B1; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=4QXspED8JrnEGsVaasD9a+i+F8oDDicgcZNuwSuqeIM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Po78gJQbmTgX01fuV2umKC9/FhPJSCs1Tx87dSH+MPLw8bkJo9VREBHfehj0Yqeem CGDmvRsomoskE1xaCrF7W/PXDnovkJsb44+EC+MHqAeMNlV/C/QT2YjR+dmMx/ZvFW pmZlTqwZB61vo5A/cqHu1IffbJF3gyWrnGharryLFtmtE6ssm1pm8eNRZpzFXlXW4N rGEeCsN7unDGEhPOQI9+Z3CWXz1SL0r8HVGcSW12g7jIXueW8rEwkVKDkCbt7iEWTf 3QZaF0R/MNeFPeG00DhdIgm+ur07Wz/jDDWf8fLOI5gLGGrHRPAkpOBmLgOzLKLNdg MF/a9sye5MQrg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajs-000000006JP-059G; Wed, 22 Oct 2025 17:27:00 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/8] USB: serial: kobil_sct: clean up device type checks Date: Wed, 22 Oct 2025 17:26:37 +0200 Message-ID: <20251022152640.24212-6-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clean up the driver device type checks by moving logical operators to the previous line and using consistent indentation of continuation lines. Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/kobil_sct.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index b8169783f6f0..e1015cab2770 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -239,8 +239,8 @@ static int kobil_open(struct tty_struct *tty, struct us= b_serial_port *port) dev_dbg(dev, "%s - Send reset_all_queues URB returns: %i\n", __func__, r= esult); } if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID || - priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID || - priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { + priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID || + priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { /* start reading (Adapter B 'cause PNP string) */ result =3D usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL); dev_dbg(dev, "%s - Send read URB returns: %i\n", __func__, result); @@ -318,9 +318,10 @@ static int kobil_write(struct tty_struct *tty, struct = usb_serial_port *port, if (((priv->device_type !=3D KOBIL_ADAPTER_B_PRODUCT_ID) && (priv->filled= > 2) && (priv->filled >=3D (priv->buf[1] + 3))) || ((priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID) && (priv->fil= led > 3) && (priv->filled >=3D (priv->buf[2] + 4)))) { /* stop reading (except TWIN and KAAN SIM) */ - if ((priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID) - || (priv->device_type =3D=3D KOBIL_ADAPTER_K_PRODUCT_ID)) + if (priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID || + priv->device_type =3D=3D KOBIL_ADAPTER_K_PRODUCT_ID) { usb_kill_urb(port->interrupt_in_urb); + } =20 todo =3D priv->filled - priv->cur_pos; =20 @@ -347,7 +348,7 @@ static int kobil_write(struct tty_struct *tty, struct u= sb_serial_port *port, =20 /* start reading (except TWIN and KAAN SIM) */ if (priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID || - priv->device_type =3D=3D KOBIL_ADAPTER_K_PRODUCT_ID) { + priv->device_type =3D=3D KOBIL_ADAPTER_K_PRODUCT_ID) { result =3D usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC); dev_dbg(&port->dev, "%s - Send read URB returns: %i\n", __func__, resul= t); @@ -373,8 +374,8 @@ static int kobil_tiocmget(struct tty_struct *tty) int transfer_buffer_length =3D 8; =20 priv =3D usb_get_serial_port_data(port); - if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID - || priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { + if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID || + priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { /* This device doesn't support ioctl calls */ return -EINVAL; } @@ -423,8 +424,8 @@ static int kobil_tiocmset(struct tty_struct *tty, u16 val =3D 0; =20 priv =3D usb_get_serial_port_data(port); - if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID - || priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { + if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID || + priv->device_type =3D=3D KOBIL_KAAN_SIM_PRODUCT_ID) { /* This device doesn't support ioctl calls */ return -EINVAL; } --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F0BF32AABC; Wed, 22 Oct 2025 15:26:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; cv=none; b=X0mE4E5UC+y0D3bhDHod/6VNZqoLq6UAOQdJ7xI3Y1ti8ctITxb1R4juJ/zQQTLmQ8djdLNb29cRDfuN3KBv+zHAuOUgA7fOgeD3t4Mbgk8mYpFg8tsQ1O32lekt8RjSaqRb2PYiaB4uXDLhevIWFNCcklFoQGqAHw0FflZCEQU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; c=relaxed/simple; bh=SRitKMujqENHu4ooLuqItGId6P9C+NeFm2BQUOUwf2M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qU6/3OWAqr4zRnohw3iRMC+Yztvjm+4s8RLjjCwL+3qqUgvkKDi14u7CGiQ7OAT/OHvuYwrG8xEzKRc0lIHn0liuQrultEb/X9qUqJLJov1D6MXQQVAazyyvjdIpbUg/RvlQRm86VPkXN2rct+gmVeJls4/j5ecl8T9qMt0PF58= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tD2JOx+5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tD2JOx+5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72932C19424; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=SRitKMujqENHu4ooLuqItGId6P9C+NeFm2BQUOUwf2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tD2JOx+5RMxlzJPDPZ3qqVCRT7cmFWVmKg7QO/bShpt82lp4P6I+S51MCeDfeiecD pC7ZJSsvAYKwSIw8wtDE8sPBoGcaTaSEwmi6UAtnH0UnesZkKshnvAz6RMbkxAKApp b/tS96sdKYinLz06W8udO9JpmI+GHt4FN+4Zq5gj9YCJUwDhMQJoELK6THAWZT6v30 5XA2fbjbY0EmN0klyd26E6jhZWiPuZKq0CtlrxYUpeSvZrw7w7NQLrRfRl2rkTJfHv +zjUEblaj+Kc1nNFjM01uOONckRS0qxW8OrI5oTAteT1srieaz39z99PLHlqasjZkz SnvCnwYJqaauQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajs-000000006JS-0Olm; Wed, 22 Oct 2025 17:27:00 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/8] USB: serial: kobil_sct: add control request helpers Date: Wed, 22 Oct 2025 17:26:38 +0200 Message-ID: <20251022152640.24212-7-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Refactor by adding two control request helpers to make the code more readable. Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/kobil_sct.c | 108 +++++++++------------------------ 1 file changed, 27 insertions(+), 81 deletions(-) diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index e1015cab2770..3c13410520ec 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -109,6 +109,21 @@ struct kobil_private { __u16 device_type; }; =20 +static int kobil_ctrl_send(struct usb_serial_port *port, u8 req, u16 val) +{ + return usb_control_msg(port->serial->dev, + usb_sndctrlpipe(port->serial->dev, 0), + req, USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, + val, 0, NULL, 0, KOBIL_TIMEOUT); +} + +static int kobil_ctrl_recv(struct usb_serial_port *port, u8 req, u16 val, = void *buf, u16 size) +{ + return usb_control_msg(port->serial->dev, + usb_rcvctrlpipe(port->serial->dev, 0), + req, USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_IN, + val, 0, buf, size, KOBIL_TIMEOUT); +} =20 static int kobil_port_probe(struct usb_serial_port *port) { @@ -176,16 +191,8 @@ static int kobil_open(struct tty_struct *tty, struct u= sb_serial_port *port) return -ENOMEM; =20 /* get hardware version */ - result =3D usb_control_msg(port->serial->dev, - usb_rcvctrlpipe(port->serial->dev, 0), - SUSBCRequest_GetMisc, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_IN, - SUSBCR_MSC_GetHWVersion, - 0, - transfer_buffer, - transfer_buffer_length, - KOBIL_TIMEOUT - ); + result =3D kobil_ctrl_recv(port, SUSBCRequest_GetMisc, SUSBCR_MSC_GetHWVe= rsion, + transfer_buffer, transfer_buffer_length); dev_dbg(dev, "%s - Send get_HW_version URB returns: %i\n", __func__, resu= lt); if (result >=3D 3) { dev_dbg(dev, "Hardware version: %i.%i.%i\n", transfer_buffer[0], @@ -193,16 +200,8 @@ static int kobil_open(struct tty_struct *tty, struct u= sb_serial_port *port) } =20 /* get firmware version */ - result =3D usb_control_msg(port->serial->dev, - usb_rcvctrlpipe(port->serial->dev, 0), - SUSBCRequest_GetMisc, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_IN, - SUSBCR_MSC_GetFWVersion, - 0, - transfer_buffer, - transfer_buffer_length, - KOBIL_TIMEOUT - ); + result =3D kobil_ctrl_recv(port, SUSBCRequest_GetMisc, SUSBCR_MSC_GetFWVe= rsion, + transfer_buffer, transfer_buffer_length); dev_dbg(dev, "%s - Send get_FW_version URB returns: %i\n", __func__, resu= lt); if (result >=3D 3) { dev_dbg(dev, "Firmware version: %i.%i.%i\n", transfer_buffer[0], @@ -212,30 +211,12 @@ static int kobil_open(struct tty_struct *tty, struct = usb_serial_port *port) if (priv->device_type =3D=3D KOBIL_ADAPTER_B_PRODUCT_ID || priv->device_type =3D=3D KOBIL_ADAPTER_K_PRODUCT_ID) { /* Setting Baudrate, Parity and Stopbits */ - result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_SetBaudRateParityAndStopBits, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - SUSBCR_SBR_9600 | SUSBCR_SPASB_EvenParity | - SUSBCR_SPASB_1StopBit, - 0, - NULL, - 0, - KOBIL_TIMEOUT - ); + result =3D kobil_ctrl_send(port, SUSBCRequest_SetBaudRateParityAndStopBi= ts, + SUSBCR_SBR_9600 | SUSBCR_SPASB_EvenParity | SUSBCR_SPASB_1StopBit); dev_dbg(dev, "%s - Send set_baudrate URB returns: %i\n", __func__, resul= t); =20 /* reset all queues */ - result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_Misc, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - SUSBCR_MSC_ResetAllQueues, - 0, - NULL, - 0, - KOBIL_TIMEOUT - ); + result =3D kobil_ctrl_send(port, SUSBCRequest_Misc, SUSBCR_MSC_ResetAllQ= ueues); dev_dbg(dev, "%s - Send reset_all_queues URB returns: %i\n", __func__, r= esult); } if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID || @@ -385,16 +366,8 @@ static int kobil_tiocmget(struct tty_struct *tty) if (!transfer_buffer) return -ENOMEM; =20 - result =3D usb_control_msg(port->serial->dev, - usb_rcvctrlpipe(port->serial->dev, 0), - SUSBCRequest_GetStatusLineState, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_IN, - 0, - 0, - transfer_buffer, - transfer_buffer_length, - KOBIL_TIMEOUT); - + result =3D kobil_ctrl_recv(port, SUSBCRequest_GetStatusLineState, 0, + transfer_buffer, transfer_buffer_length); dev_dbg(&port->dev, "Send get_status_line_state URB returns: %i\n", result); if (result < 1) { @@ -446,15 +419,7 @@ static int kobil_tiocmset(struct tty_struct *tty, } =20 if (val) { - result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_SetStatusLinesOrQueues, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - val, - 0, - NULL, - 0, - KOBIL_TIMEOUT); + result =3D kobil_ctrl_send(port, SUSBCRequest_SetStatusLinesOrQueues, va= l); if (result < 0) { dev_err(dev, "failed to set status lines: %d\n", result); return result; @@ -506,16 +471,7 @@ static void kobil_set_termios(struct tty_struct *tty, tty->termios.c_cflag &=3D ~CMSPAR; tty_encode_baud_rate(tty, speed, speed); =20 - result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_SetBaudRateParityAndStopBits, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - urb_val, - 0, - NULL, - 0, - KOBIL_TIMEOUT - ); + result =3D kobil_ctrl_send(port, SUSBCRequest_SetBaudRateParityAndStopBit= s, urb_val); if (result) { dev_err(&port->dev, "failed to update line settings: %d\n", result); @@ -536,17 +492,7 @@ static int kobil_ioctl(struct tty_struct *tty, =20 switch (cmd) { case TCFLSH: - result =3D usb_control_msg(port->serial->dev, - usb_sndctrlpipe(port->serial->dev, 0), - SUSBCRequest_Misc, - USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, - SUSBCR_MSC_ResetAllQueues, - 0, - NULL, - 0, - KOBIL_TIMEOUT - ); - + result =3D kobil_ctrl_send(port, SUSBCRequest_Misc, SUSBCR_MSC_ResetAllQ= ueues); dev_dbg(&port->dev, "%s - Send reset_all_queues (FLUSH) URB returns: %i\n", __func__, result); --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FE5C34D933; Wed, 22 Oct 2025 15:26:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; cv=none; b=NVjmAJDWkqBwUUjLT3izVteJJLCGw0ruhXKRd6d6026ptO0fm7xT/3Y1Sm6WLZ0WOIMntzp6f1snJB7qJp0vedTS7Jwj2HZPzayWIBMEFE8Rh9WYA39BzQYQdInjzIGRvwDyymMYCAuLR5YqC5CaygMRIL89B34oIZLhLrtHro0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; c=relaxed/simple; bh=Dx85VVs25HOQaToVZX33ToHNqh/5RZl7+mhYzPCaM7s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CEbodm1BTz8/89Tti7o9Y3HF6mvqoBLBLXlyshJkZZTXPWZrPA5g4PPT6jRiIbaPJh0nU5Vcxh74R+LMfgh8NNERgpJCY8oeA9D8PtOZ/rS4dqrFvDpwk/sSwJYTz4oLPQrkerkvY6hUFqqELfK/hSKbXMzjiGpWyD8KeuogziU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rgAzVxLw; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rgAzVxLw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A103C16AAE; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=Dx85VVs25HOQaToVZX33ToHNqh/5RZl7+mhYzPCaM7s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rgAzVxLw0wVb97glM2wQle1hRxHi347Tg3ocAD7dp/WhPgvO8EMf0EyYRFqg19oYh 3uyVMXWY/URD5iNY7/6SLu1Le5b5cPFzsuV5fV0cwFHe80xY5gcDwBrgu6iZMWs9Sb JsETR7cnCx45yZzpa7NA3maqQVNliz7GRFsqZaOGpRAhEDxW6FEEZ4ELrlxM3jgEyY SLhHVRpCtSW3pMvUAehWZUAnCcyh0Vlm4ll+fyD7AWmTjM/OjAfb4Kmq2p25qfw4Tz W35BipQnYVqRkzH4OUDIEbGTmUjm+sHi0BUDFr81uTaoFvuhtFPpOCljVE3PnbfvUb LUH9CXuzaZ9VQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajs-000000006JV-0inT; Wed, 22 Oct 2025 17:27:00 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/8] USB: serial: kobil_sct: clean up set_termios() Date: Wed, 22 Oct 2025 17:26:39 +0200 Message-ID: <20251022152640.24212-8-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clean up set_termios() by using a shorter identifier for the control request value, replacing a ternary operator and adding some missing braces to make it more readable. Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/kobil_sct.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index 3c13410520ec..cad3cfc63ce7 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -435,9 +435,9 @@ static void kobil_set_termios(struct tty_struct *tty, { struct kobil_private *priv; int result; - unsigned short urb_val =3D 0; int c_cflag =3D tty->termios.c_cflag; speed_t speed; + u16 val; =20 priv =3D usb_get_serial_port_data(port); if (priv->device_type =3D=3D KOBIL_USBTWIN_PRODUCT_ID || @@ -450,28 +450,34 @@ static void kobil_set_termios(struct tty_struct *tty, speed =3D tty_get_baud_rate(tty); switch (speed) { case 1200: - urb_val =3D SUSBCR_SBR_1200; + val =3D SUSBCR_SBR_1200; break; default: speed =3D 9600; fallthrough; case 9600: - urb_val =3D SUSBCR_SBR_9600; + val =3D SUSBCR_SBR_9600; break; } - urb_val |=3D (c_cflag & CSTOPB) ? SUSBCR_SPASB_2StopBits : - SUSBCR_SPASB_1StopBit; + + if (c_cflag & CSTOPB) + val |=3D SUSBCR_SPASB_2StopBits; + else + val |=3D SUSBCR_SPASB_1StopBit; + if (c_cflag & PARENB) { if (c_cflag & PARODD) - urb_val |=3D SUSBCR_SPASB_OddParity; + val |=3D SUSBCR_SPASB_OddParity; else - urb_val |=3D SUSBCR_SPASB_EvenParity; - } else - urb_val |=3D SUSBCR_SPASB_NoParity; + val |=3D SUSBCR_SPASB_EvenParity; + } else { + val |=3D SUSBCR_SPASB_NoParity; + } + tty->termios.c_cflag &=3D ~CMSPAR; tty_encode_baud_rate(tty, speed, speed); =20 - result =3D kobil_ctrl_send(port, SUSBCRequest_SetBaudRateParityAndStopBit= s, urb_val); + result =3D kobil_ctrl_send(port, SUSBCRequest_SetBaudRateParityAndStopBit= s, val); if (result) { dev_err(&port->dev, "failed to update line settings: %d\n", result); --=20 2.49.1 From nobody Sat Feb 7 07:24:18 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 539E134D919; Wed, 22 Oct 2025 15:26:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; cv=none; b=SXilrPS+oX3/9Cq7lWUgQLbMig7DbqwWgwSrorGXZkCKIxgxUoEXPZboMZ6F3I0bWn9gNUx/WF0gBGHnzfWhxTOqJsoLpIFeeUq/ONLULyv6j48WbihIqnTx7lIlcVcypCitTOJ5c+sbTE/r4ouh1AtcCsHF9S+2iWthuUBvz9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761146815; c=relaxed/simple; bh=8zyRazgWuL0UpyHz9Sxfuy71+oI1/qjeuJpS+vpV/IQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hjKGoqbjpKOAYilvGkJGa7iJx6cvM7Jomzx1XF7T1he7ZQRaRuLfQGMEaDEppRBKEzXkfwrhChPRzLi+hpnlQlSZBAUgHgS4WlPrKfy4htZ1cgrBz5Q03QI0mAHa6hZW5Bpip2CkP5RkQhE9SU14T1YDE+q2irj2QEwg4Xn16Dk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=o8nazwZA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="o8nazwZA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72974C4AF0D; Wed, 22 Oct 2025 15:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761146813; bh=8zyRazgWuL0UpyHz9Sxfuy71+oI1/qjeuJpS+vpV/IQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o8nazwZAHHu67LtAEvg5SWjwFdohm9ZZb203jap1s4hJyLeUIYGY9Y/uUbtmbKDFG HazIwajrcduAog9xCzmGFeG8MBBKTXH9SZzQOby5bHNSA8OrwvUusmM72ffUruFMRJ NSOMKu/kyoTojLmdosVyS74JGVfYDdbWKyOjIaoqHIpAmIj86+OIuIhLM2UR9g7u9J 8rPmKI9AWZQ+sbScpAzY30qQw9TqE1DWMDoszHTZ3mq3Bqq3/02PTti6B/VwApi+Oi Kg1Ncq39529ZakDyDOkwmLdBmt9r5f5r3GadOUEAizkhiz82cVmLgcyikxl4VxtSxJ LJk73Ue0SYSIA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vBajs-000000006JY-14bX; Wed, 22 Oct 2025 17:27:00 +0200 From: Johan Hovold To: Johan Hovold Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 8/8] USB: serial: kobil_sct: drop unnecessary initialisations Date: Wed, 22 Oct 2025 17:26:40 +0200 Message-ID: <20251022152640.24212-9-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251022152640.24212-1-johan@kernel.org> References: <20251022152640.24212-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Drop unnecessary initialisation of variables that are always assigned before being used. Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/kobil_sct.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index cad3cfc63ce7..3a1343d88386 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c @@ -178,10 +178,10 @@ static void kobil_init_termios(struct tty_struct *tty) static int kobil_open(struct tty_struct *tty, struct usb_serial_port *port) { struct device *dev =3D &port->dev; - int result =3D 0; struct kobil_private *priv; unsigned char *transfer_buffer; int transfer_buffer_length =3D 8; + int result; =20 priv =3D usb_get_serial_port_data(port); =20 @@ -272,10 +272,8 @@ static void kobil_write_int_callback(struct urb *urb) static int kobil_write(struct tty_struct *tty, struct usb_serial_port *por= t, const unsigned char *buf, int count) { - int length =3D 0; - int result =3D 0; - int todo =3D 0; struct kobil_private *priv; + int length, todo, result; =20 if (count =3D=3D 0) { dev_dbg(&port->dev, "%s - write request of 0 bytes\n", __func__); --=20 2.49.1