From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [5/9] USB: serial: cypress_m8: clean up initial-termios handling From: Johan Hovold Message-Id: <20190421122154.26465-6-johan@kernel.org> Date: Sun, 21 Apr 2019 14:21:50 +0200 To: linux-usb@vger.kernel.org Cc: Greg Kroah-Hartman , Johan Hovold List-ID: Tm93IHRoYXQgaW5pdF90ZXJtaW9zKCkgaXMgb25seSBjYWxsZWQgb24gZmlyc3QgdXNlLCB3ZSBj YW4gY2xlYW4gdXAgdGhlCmN5cHJlc3NfbTggaW5pdGlhbC10ZXJtaW9zIGhhbmRsaW5nLgoKTm90 ZSB0aGF0IG9ubHkgdGhlIGVhcnRobWF0ZSBjaGlwIHR5cGUgdXNlZCBzZXR0aW5ncyBkaWZmZXJl bnQgZnJvbSB0aGUKZGVmYXVsdHMgcHJvdmlkZWQgYnkgVVNCIHNlcmlhbCBjb3JlLCBhbmQgdGhh dCB0aGUgY2hpcCB0eXBlIGlzIGluZGVlZAprbm93biB3aGVuIGluaXRfdGVybWlvcyBpcyBjYWxs ZWQgYXQgdHR5LWluc3RhbGwgdGltZS4KClNpZ25lZC1vZmYtYnk6IEpvaGFuIEhvdm9sZCA8am9o YW5Aa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL3VzYi9zZXJpYWwvY3lwcmVzc19tOC5jIHwgMzYg KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJp YWwvY3lwcmVzc19tOC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTguYwppbmRleCBm OWJiYmRkMWExNDguLjcyZDNhZTFlYmM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFs L2N5cHJlc3NfbTguYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3lwcmVzc19tOC5jCkBAIC05 OCw3ICs5OCw2IEBAIHN0cnVjdCBjeXByZXNzX3ByaXZhdGUgewogCWludCB3cml0ZV91cmJfaW50 ZXJ2YWw7ICAgICAgICAgICAgLyogaW50ZXJ2YWwgdG8gdXNlIGZvciB3cml0ZSB1cmIgKi8KIAlp bnQgcmVhZF91cmJfaW50ZXJ2YWw7ICAgICAgICAgICAgIC8qIGludGVydmFsIHRvIHVzZSBmb3Ig cmVhZCB1cmIgKi8KIAlpbnQgY29tbV9pc19vazsgICAgICAgICAgICAgICAgICAgIC8qIHRydWUg aWYgY29tbXVuaWNhdGlvbiBpcyAoc3RpbGwpIG9rICovCi0JaW50IHRlcm1pb3NfaW5pdGlhbGl6 ZWQ7CiAJX191OCBsaW5lX2NvbnRyb2w7CSAgIAkgICAvKiBob2xkcyBkdHIgLyBydHMgdmFsdWUg Ki8KIAlfX3U4IGN1cnJlbnRfc3RhdHVzOwkgICAJICAgLyogcmVjZWl2ZWQgZnJvbSBsYXN0IHJl YWQgLSBpbmZvIG9uIGRzcixjdHMsY2QscmksZXRjICovCiAJX191OCBjdXJyZW50X2NvbmZpZzsJ ICAgCSAgIC8qIHN0b3JlcyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGJ5dGUgKi8KQEAgLTEy Miw2ICsxMjEsNyBAQCBzdGF0aWMgaW50ICBjeXByZXNzX3dyaXRlKHN0cnVjdCB0dHlfc3RydWN0 ICp0dHksIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCiAJCQljb25zdCB1bnNpZ25lZCBj aGFyICpidWYsIGludCBjb3VudCk7CiBzdGF0aWMgdm9pZCBjeXByZXNzX3NlbmQoc3RydWN0IHVz Yl9zZXJpYWxfcG9ydCAqcG9ydCk7CiBzdGF0aWMgaW50ICBjeXByZXNzX3dyaXRlX3Jvb20oc3Ry dWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CitzdGF0aWMgdm9pZCBjeXByZXNzX2VhcnRobWF0ZV9pbml0 X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiBzdGF0aWMgdm9pZCBjeXByZXNzX3Nl dF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksCiAJCQlzdHJ1Y3QgdXNiX3NlcmlhbF9w b3J0ICpwb3J0LCBzdHJ1Y3Qga3Rlcm1pb3MgKm9sZCk7CiBzdGF0aWMgaW50ICBjeXByZXNzX3Rp b2NtZ2V0KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwpAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRp YyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgY3lwcmVzc19lYXJ0aG1hdGVfZGV2aWNlID0gewog CS5kdHJfcnRzID0JCQljeXByZXNzX2R0cl9ydHMsCiAJLndyaXRlID0JCQljeXByZXNzX3dyaXRl LAogCS53cml0ZV9yb29tID0JCQljeXByZXNzX3dyaXRlX3Jvb20sCisJLmluaXRfdGVybWlvcyA9 CQkJY3lwcmVzc19lYXJ0aG1hdGVfaW5pdF90ZXJtaW9zLAogCS5zZXRfdGVybWlvcyA9CQkJY3lw cmVzc19zZXRfdGVybWlvcywKIAkudGlvY21nZXQgPQkJCWN5cHJlc3NfdGlvY21nZXQsCiAJLnRp b2Ntc2V0ID0JCQljeXByZXNzX3Rpb2Ntc2V0LApAQCAtNDYzLDcgKzQ2NCw2IEBAIHN0YXRpYyBp bnQgY3lwcmVzc19nZW5lcmljX3BvcnRfcHJvYmUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9y dCkKIAogCXByaXYtPmNtZF9jdHJsID0gMDsKIAlwcml2LT5saW5lX2NvbnRyb2wgPSAwOwotCXBy aXYtPnRlcm1pb3NfaW5pdGlhbGl6ZWQgPSAwOwogCXByaXYtPnJ4X2ZsYWdzID0gMDsKIAkvKiBE ZWZhdWx0IHBhY2tldCBmb3JtYXQgc2V0dGluZyBpcyBkZXRlcm1pbmVkIGJ5IHBhY2tldCBzaXpl LgogCSAgIEFueXRoaW5nIHdpdGggYSBzaXplIGxhcmdlciB0aGVuIDkgbXVzdCBoYXZlIGEgc2Vw YXJhdGUKQEAgLTg1Myw2ICs4NTMsMTEgQEAgc3RhdGljIGludCBjeXByZXNzX3Rpb2Ntc2V0KHN0 cnVjdCB0dHlfc3RydWN0ICp0dHksCiAJcmV0dXJuIGN5cHJlc3Nfd3JpdGUodHR5LCBwb3J0LCBO VUxMLCAwKTsKIH0KIAorc3RhdGljIHZvaWQgY3lwcmVzc19lYXJ0aG1hdGVfaW5pdF90ZXJtaW9z KHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCit7CisJdHR5X2VuY29kZV9iYXVkX3JhdGUodHR5LCA0 ODAwLCA0ODAwKTsKK30KKwogc3RhdGljIHZvaWQgY3lwcmVzc19zZXRfdGVybWlvcyhzdHJ1Y3Qg dHR5X3N0cnVjdCAqdHR5LAogCXN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHN0cnVjdCBr dGVybWlvcyAqb2xkX3Rlcm1pb3MpCiB7CkBAIC04NjQsMzMgKzg2OSw2IEBAIHN0YXRpYyB2b2lk IGN5cHJlc3Nfc2V0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwKIAlfX3U4IG9sZGxp bmVzOwogCWludCBsaW5lY2hhbmdlID0gMDsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5s b2NrLCBmbGFncyk7Ci0JLyogV2UgY2FuJ3QgY2xlYW4gdGhpcyBvbmUgdXAgYXMgd2UgZG9uJ3Qg a25vdyB0aGUgZGV2aWNlIHR5cGUKLQkgICBlYXJseSBlbm91Z2ggKi8KLQlpZiAoIXByaXYtPnRl cm1pb3NfaW5pdGlhbGl6ZWQpIHsKLQkJaWYgKHByaXYtPmNoaXB0eXBlID09IENUX0VBUlRITUFU RSkgewotCQkJdHR5LT50ZXJtaW9zID0gdHR5X3N0ZF90ZXJtaW9zOwotCQkJdHR5LT50ZXJtaW9z LmNfY2ZsYWcgPSBCNDgwMCB8IENTOCB8IENSRUFEIHwgSFVQQ0wgfAotCQkJCUNMT0NBTDsKLQkJ CXR0eS0+dGVybWlvcy5jX2lzcGVlZCA9IDQ4MDA7Ci0JCQl0dHktPnRlcm1pb3MuY19vc3BlZWQg PSA0ODAwOwotCQl9IGVsc2UgaWYgKHByaXYtPmNoaXB0eXBlID09IENUX0NZUEhJRENPTSkgewot CQkJdHR5LT50ZXJtaW9zID0gdHR5X3N0ZF90ZXJtaW9zOwotCQkJdHR5LT50ZXJtaW9zLmNfY2Zs YWcgPSBCOTYwMCB8IENTOCB8IENSRUFEIHwgSFVQQ0wgfAotCQkJCUNMT0NBTDsKLQkJCXR0eS0+ dGVybWlvcy5jX2lzcGVlZCA9IDk2MDA7Ci0JCQl0dHktPnRlcm1pb3MuY19vc3BlZWQgPSA5NjAw OwotCQl9IGVsc2UgaWYgKHByaXYtPmNoaXB0eXBlID09IENUX0NBNDJWMikgewotCQkJdHR5LT50 ZXJtaW9zID0gdHR5X3N0ZF90ZXJtaW9zOwotCQkJdHR5LT50ZXJtaW9zLmNfY2ZsYWcgPSBCOTYw MCB8IENTOCB8IENSRUFEIHwgSFVQQ0wgfAotCQkJCUNMT0NBTDsKLQkJCXR0eS0+dGVybWlvcy5j X2lzcGVlZCA9IDk2MDA7Ci0JCQl0dHktPnRlcm1pb3MuY19vc3BlZWQgPSA5NjAwOwotCQl9Ci0J CXByaXYtPnRlcm1pb3NfaW5pdGlhbGl6ZWQgPSAxOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7Ci0KIAkvKiBVbnN1cHBvcnRlZCBmZWF0dXJlcyBuZWVk IGNsZWFyaW5nICovCiAJdHR5LT50ZXJtaW9zLmNfY2ZsYWcgJj0gfihDTVNQQVJ8Q1JUU0NUUyk7 CiAK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS, T_DKIMWL_WL_HIGH,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74E56C282E1 for ; Sun, 21 Apr 2019 12:22:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3C30D20859 for ; Sun, 21 Apr 2019 12:22:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555849323; bh=rPsFy9T3wuGi/PUl1uE6jq3+fqXnXSvJRkKLYbh+8oU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=PE3KQmZ4KjeitdDw8ImJPcsEbKr0NE0xwgOqhyrAlTVdcGrFIUuuuBggbopieCwFS nJdcT2cBo/+f+cFNN/ODPUcThUFCe8PNzoNUatQtMqkIkRlPKQasoy6NY6c7mJObKh C9cGx7/vKge2SHU4QBfOfPUs6YIoJ/JygL2bB+9A= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727485AbfDUMWC (ORCPT ); Sun, 21 Apr 2019 08:22:02 -0400 Received: from mail-lf1-f67.google.com ([209.85.167.67]:46473 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727370AbfDUMWB (ORCPT ); Sun, 21 Apr 2019 08:22:01 -0400 Received: by mail-lf1-f67.google.com with SMTP id k18so7107387lfj.13 for ; Sun, 21 Apr 2019 05:22:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lf72Lcsc5rS1b8VBp3IVzGKMM1jvFZhGq00X7s0X05g=; b=fNwW5wd3Q9Tz1Jj6vBeRfzIC+4MhCSA5dgoM+9W85HJOsE8gYrWxK9OWPzbfUWS/mS UU00Kmwmj0dNnLVm6g9h1v4nhlJN7J/ac/glxB2S9d410DfM1HndRhUR2oKbCIY5UoMQ VaMfJ4gccswpOYS0iYOEqhtBTk285IKmUKVd2MDd5WB4IIn9AMft29b9I0sSku42ln4f X4LUGr/W3gzgi0LM/Gs+5XMkaxBZqm2q+UxcFVkKk06SE3GpAaKWaT1OxZypQODQFUVn BsxpEOhHQ0L0etngRkRGtW4gErKts58LDK/t+tRcsVrpAOiNRmfU13v3h1YSu7BjOL8V CtIw== X-Gm-Message-State: APjAAAWzeXA4VWHx9eypj8ijSj4hhwuw0CJGouYT5TPXy1DXw8dSV0l7 icQEZUFln1naVACRPXX95EHaqa0m X-Google-Smtp-Source: APXvYqyI1UR6K5EfpjEHgHczeD1H3fqdecqbq/BMFbTbf4nECJh/VFY1r8Qd/bvy24/BRT9nMbf/VA== X-Received: by 2002:ac2:48bb:: with SMTP id u27mr7482852lfg.17.1555849319597; Sun, 21 Apr 2019 05:21:59 -0700 (PDT) Received: from xi.terra (c-74bee655.07-184-6d6c6d4.bbcust.telenor.se. [85.230.190.116]) by smtp.gmail.com with ESMTPSA id m18sm2200730ljb.35.2019.04.21.05.21.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Apr 2019 05:21:55 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1hIBTs-0006u4-Gt; Sun, 21 Apr 2019 14:22:00 +0200 From: Johan Hovold To: linux-usb@vger.kernel.org Cc: Greg Kroah-Hartman , Johan Hovold Subject: [PATCH 5/9] USB: serial: cypress_m8: clean up initial-termios handling Date: Sun, 21 Apr 2019 14:21:50 +0200 Message-Id: <20190421122154.26465-6-johan@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190421122154.26465-1-johan@kernel.org> References: <20190421122154.26465-1-johan@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Message-ID: <20190421122150.5v2CzP1j9TRO0x4SAgpyyGGrgm3jF4GUMiNIioObywk@z> Now that init_termios() is only called on first use, we can clean up the cypress_m8 initial-termios handling. Note that only the earthmate chip type used settings different from the defaults provided by USB serial core, and that the chip type is indeed known when init_termios is called at tty-install time. Signed-off-by: Johan Hovold --- drivers/usb/serial/cypress_m8.c | 36 +++++++-------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c index f9bbbdd1a148..72d3ae1ebc64 100644 --- a/drivers/usb/serial/cypress_m8.c +++ b/drivers/usb/serial/cypress_m8.c @@ -98,7 +98,6 @@ struct cypress_private { int write_urb_interval; /* interval to use for write urb */ int read_urb_interval; /* interval to use for read urb */ int comm_is_ok; /* true if communication is (still) ok */ - int termios_initialized; __u8 line_control; /* holds dtr / rts value */ __u8 current_status; /* received from last read - info on dsr,cts,cd,ri,etc */ __u8 current_config; /* stores the current configuration byte */ @@ -122,6 +121,7 @@ static int cypress_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *buf, int count); static void cypress_send(struct usb_serial_port *port); static int cypress_write_room(struct tty_struct *tty); +static void cypress_earthmate_init_termios(struct tty_struct *tty); static void cypress_set_termios(struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old); static int cypress_tiocmget(struct tty_struct *tty); @@ -149,6 +149,7 @@ static struct usb_serial_driver cypress_earthmate_device = { .dtr_rts = cypress_dtr_rts, .write = cypress_write, .write_room = cypress_write_room, + .init_termios = cypress_earthmate_init_termios, .set_termios = cypress_set_termios, .tiocmget = cypress_tiocmget, .tiocmset = cypress_tiocmset, @@ -463,7 +464,6 @@ static int cypress_generic_port_probe(struct usb_serial_port *port) priv->cmd_ctrl = 0; priv->line_control = 0; - priv->termios_initialized = 0; priv->rx_flags = 0; /* Default packet format setting is determined by packet size. Anything with a size larger then 9 must have a separate @@ -853,6 +853,11 @@ static int cypress_tiocmset(struct tty_struct *tty, return cypress_write(tty, port, NULL, 0); } +static void cypress_earthmate_init_termios(struct tty_struct *tty) +{ + tty_encode_baud_rate(tty, 4800, 4800); +} + static void cypress_set_termios(struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old_termios) { @@ -864,33 +869,6 @@ static void cypress_set_termios(struct tty_struct *tty, __u8 oldlines; int linechange = 0; - spin_lock_irqsave(&priv->lock, flags); - /* We can't clean this one up as we don't know the device type - early enough */ - if (!priv->termios_initialized) { - if (priv->chiptype == CT_EARTHMATE) { - tty->termios = tty_std_termios; - tty->termios.c_cflag = B4800 | CS8 | CREAD | HUPCL | - CLOCAL; - tty->termios.c_ispeed = 4800; - tty->termios.c_ospeed = 4800; - } else if (priv->chiptype == CT_CYPHIDCOM) { - tty->termios = tty_std_termios; - tty->termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | - CLOCAL; - tty->termios.c_ispeed = 9600; - tty->termios.c_ospeed = 9600; - } else if (priv->chiptype == CT_CA42V2) { - tty->termios = tty_std_termios; - tty->termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | - CLOCAL; - tty->termios.c_ispeed = 9600; - tty->termios.c_ospeed = 9600; - } - priv->termios_initialized = 1; - } - spin_unlock_irqrestore(&priv->lock, flags); - /* Unsupported features need clearing */ tty->termios.c_cflag &= ~(CMSPAR|CRTSCTS); -- 2.21.0