Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp886894pxb; Wed, 3 Mar 2021 19:46:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJxov+UkxHskMRSBcztjET6KX8qo7HObSiTEriy+MXYvDSmQY22iyZa2BvMWuidPFRDWJGtn X-Received: by 2002:a17:906:2b9a:: with SMTP id m26mr1993659ejg.526.1614829588699; Wed, 03 Mar 2021 19:46:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614829588; cv=none; d=google.com; s=arc-20160816; b=xXF+cPqlW4v+NP6ZFFkU/UNCSPTyrEJ1OSQqys8HNt61M1PfH+SFMX/FbNsXR1L1gB GqqFrXRaGxHAiaJUAtGYZDUlZqgnHs5Bf29C0Q0tGupm+AhzgXwAlRiTcLfhegnr97AT DQiVuvb6yArcy0wiD9KwPTTG2dnJ18w2P/lfGgFORHv6UjPLXjQJ0CazSunOS+C2CNmz VsLQcseUFGMEladGPtoWS4BkdoXKkGnXy9/o5C/AJHTRKpO39C7rpJUUn9p8XorDv8lm AAxIa+fs1nQr2d41CVx1QUGEUjAwfHVy5+WXSS2epYyvSuzBLhy9mgqklNqmrhkBJUCo b+sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=91KRBJWTzA5FsatHeMv6qNqF/XOZ1AOIRDsigQKU6wk=; b=VDc47tnqWZZHyXroXxOMy1/GbFjepup6nR4ivHLUbe1J7awuT4pY3fW1DnZX3ZxUql QWun/FitOeZkfiu//RLgF0ivMYlDjkK5w/WHC7Tka0m70eQr4aUOsbuRkt1iSR/KqAtB QKFGFkUBuuRsKK2KAcSCx07tCvCNDme121DexEmLKECpRiD9MZHaIqwE0FTmT9BRtHuD DQlQV/eTkAiH6VkHSgcf8zZQ9CQLDK/zKUJReII0gaEBH8ftzCZe7jrEDAJA6lYxLlgN jIPOLEGl9tp4wIbohmnM5j7fYkBHp+ebXpnUEjCN7/0Jc4Vr7lE903TUlWZzLTs0v/Q6 JBTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=L6GIPJuq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dg23si3392932edb.519.2021.03.03.19.46.06; Wed, 03 Mar 2021 19:46:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=L6GIPJuq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241187AbhCBBpf (ORCPT + 99 others); Mon, 1 Mar 2021 20:45:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:46160 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241421AbhCATVo (ORCPT ); Mon, 1 Mar 2021 14:21:44 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7FA5065243; Mon, 1 Mar 2021 17:27:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614619637; bh=sL1zLTgzyVQcrdT1sm43KNumDWpFDbBz6iB+WqQirwY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L6GIPJuqjn0EGmVHbEXr9slXtkYcgmiNwMWUaolWUP+l4pGD5EjHT5gH2vNYBwIS7 FwSFpKSsJ3Cl6qHHas/jKFEGBVyTOeKr4BgA8JeiTbnlaUOmYhFvD+J+eJafCOtHNt b5s0gfl8myXS9Lp+DKPSbpkuXFOLf0DFxDwYtm7g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Charles Yeh , Johan Hovold Subject: [PATCH 5.10 496/663] USB: serial: pl2303: fix line-speed handling on newer chips Date: Mon, 1 Mar 2021 17:12:24 +0100 Message-Id: <20210301161206.387314281@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161141.760350206@linuxfoundation.org> References: <20210301161141.760350206@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Johan Hovold commit 979d9cbe75b922ab1695b8ad5576115774f72e62 upstream. The latest chip family (HXN) apparently does not support setting the line speed using divisors and instead needs to use the direct encoding scheme for all rates. This specifically enables 50, 110, 134, 200 bps and other rates not supported by the original chip type. Fixes: ebd09f1cd417 ("USB: serial: pl2303: add support for PL2303HXN") Cc: stable@vger.kernel.org # 5.5 Cc: Charles Yeh Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/pl2303.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -183,6 +183,7 @@ struct pl2303_type_data { speed_t max_baud_rate; unsigned long quirks; unsigned int no_autoxonxoff:1; + unsigned int no_divisors:1; }; struct pl2303_serial_private { @@ -209,6 +210,7 @@ static const struct pl2303_type_data pl2 }, [TYPE_HXN] = { .max_baud_rate = 12000000, + .no_divisors = true, }, }; @@ -571,8 +573,12 @@ static void pl2303_encode_baud_rate(stru baud = min_t(speed_t, baud, spriv->type->max_baud_rate); /* * Use direct method for supported baud rates, otherwise use divisors. + * Newer chip types do not support divisor encoding. */ - baud_sup = pl2303_get_supported_baud_rate(baud); + if (spriv->type->no_divisors) + baud_sup = baud; + else + baud_sup = pl2303_get_supported_baud_rate(baud); if (baud == baud_sup) baud = pl2303_encode_baud_rate_direct(buf, baud);