From nobody Fri May 9 23:05:13 2025 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1627647817; cv=none; d=zohomail.com; s=zohoarc; b=D6fN8hWugt2ytez0cT6OOw7rBVXZv0pQPCcYieMa2+iHRWtcwGChVyMsXNFf8n/7+KAqeiOuhOK6PdfyejgdWyfUvdp53TwdeIxN1lB4a986xZ6atuoCK1gwZmMEcvc32S/ZtMSn0h6eK3bGTBC9CD3MvS++Aol4yjCPvj8x6Ng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1627647817; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:MIME-Version:Message-ID:References:Subject:To; bh=6PjneA8grN56Muf8aXl6q4o7r3dRUeN+UE0bqLY9KzA=; b=dgka1JH/nlXZoFZSFtKLkffheSAnHIwqmwGQjGq49LafHBOjFiTBuTO87dEnHF+0dbiy+cITKBb+wJZ3AHe0Mx+mFjsepiy9XcQGGZ3FsI2/C2Iy4Ufz4cJmRxuDrSP6pLB78sD/bqD6U7D9yq9/lg0HJD8kqxegKdmjdeg72pQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1627647817523853.0613107353876; Fri, 30 Jul 2021 05:23:37 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238772AbhG3MXk (ORCPT ); Fri, 30 Jul 2021 08:23:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:51184 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230355AbhG3MXj (ORCPT ); Fri, 30 Jul 2021 08:23:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A6D9660F0F; Fri, 30 Jul 2021 12:23:34 +0000 (UTC) Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1m9RXU-0000Cc-N2; Fri, 30 Jul 2021 14:22:57 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627647814; bh=bPik6kInDNnV6gh3+hQKpM2WNZeBL0CbzIVEhgD+rMk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B4oBdkGd+2sCLaXRtb1oRBWbXKQLfmaav2fHnpuTaXExwWmG0rK4pDzoYR9jfnaJ7 vun0Z/fd//kPxFSDdbDSf20wkbyRtK9wjcOEs+vl6YMyFuiwCvWZh8JFb0gGPBowOK h/GZhLcStDKhKx9AUfg6mAzeU5GFx9C0FbYfz2HVguK/N5+ge4+4xmn3SAqtFWjr/X lt1Tw/5MB2uI9H05IgQy5bP1vvA1UACplZ6KRFx2Jsnwi7t+mXqt7sjog0ieqnpddb I9Q9PLIUqNrDNzbCiAEbJmwgPLXLkClaXcXuLIep2vrGIznn/IGoOq7wrnGrOkfUTN KsujCt1ZocPmQ== From: Johan Hovold To: Johan Hovold Cc: Charles Yeh , =?UTF-8?q?Yeh=2ECharles=20=5B=E8=91=89=E6=A6=AE=E9=91=AB=5D?= , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Chris , stable@vger.kernel.org Subject: [PATCH] USB: serial: pl2303: fix HX type detection Date: Fri, 30 Jul 2021 14:21:56 +0200 Message-Id: <20210730122156.718-1-johan@kernel.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1627647818945100001 Content-Type: text/plain; charset="utf-8" The device release number for HX-type devices is configurable in EEPROM/OTPROM and cannot be used reliably for type detection. Assume all (non-H) devices with bcdUSB 1.1 and unknown bcdDevice to be of HX type while adding a bcdDevice check for HXD and TB (1.1 and 2.0, respectively). Reported-by: Chris Fixes: 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection= ") Cc: stable@vger.kernel.org # 5.13 Signed-off-by: Johan Hovold Reviewed-by: Greg Kroah-Hartman --- drivers/usb/serial/pl2303.c | 41 ++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index 2f2f5047452b..17601e32083e 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -418,24 +418,33 @@ static int pl2303_detect_type(struct usb_serial *seri= al) bcdDevice =3D le16_to_cpu(desc->bcdDevice); bcdUSB =3D le16_to_cpu(desc->bcdUSB); =20 - switch (bcdDevice) { - case 0x100: - /* - * Assume it's an HXN-type if the device doesn't support the old read - * request value. - */ - if (bcdUSB =3D=3D 0x200 && !pl2303_supports_hx_status(serial)) - return TYPE_HXN; + switch (bcdUSB) { + case 0x110: + switch (bcdDevice) { + case 0x300: + return TYPE_HX; + case 0x400: + return TYPE_HXD; + default: + return TYPE_HX; + } break; - case 0x300: - if (bcdUSB =3D=3D 0x200) + case 0x200: + switch (bcdDevice) { + case 0x100: + /* + * Assume it's an HXN-type if the device doesn't + * support the old read request value. + */ + if (!pl2303_supports_hx_status(serial)) + return TYPE_HXN; + break; + case 0x300: return TYPE_TA; - - return TYPE_HX; - case 0x400: - return TYPE_HXD; - case 0x500: - return TYPE_TB; + case 0x500: + return TYPE_TB; + } + break; } =20 dev_err(&serial->interface->dev, --=20 2.31.1