All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ji-Ze Hong \(Peter Hong\)" <hpeter@gmail.com>
To: johan@kernel.org
Cc: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org, peter_hong@fintek.com.tw,
	"Ji-Ze Hong \(Peter Hong\)" <hpeter+linux_kernel@gmail.com>
Subject: [V2,5/5] usb: serial: f81534: fix tx error on some baud rate
Date: Thu,  4 Jan 2018 10:29:21 +0800	[thread overview]
Message-ID: <1515032961-29131-5-git-send-email-hpeter+linux_kernel@gmail.com> (raw)

The F81532/534 had 4 clocksource 1.846/18.46/14.77/24MHz and baud rates
can be up to 1.5Mbits with 24MHz. But on some baud rate (384~500kps), the
TX side will send the data frame too close to treat frame error on RX
side. This patch will force all TX data frame with delay 1bit gap.

Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@gmail.com>
---
V2:
	1: First introduced in this series patches.

 drivers/usb/serial/f81534.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/serial/f81534.c b/drivers/usb/serial/f81534.c
index a4666171239a..513805eeae6a 100644
--- a/drivers/usb/serial/f81534.c
+++ b/drivers/usb/serial/f81534.c
@@ -130,6 +130,7 @@
 #define F81534_CLK_18_46_MHZ		(F81534_UART_EN | BIT(1))
 #define F81534_CLK_24_MHZ		(F81534_UART_EN | BIT(2))
 #define F81534_CLK_14_77_MHZ		(F81534_UART_EN | BIT(1) | BIT(2))
+#define F81534_CLK_TX_DELAY_1BIT	BIT(3)
 
 #define F81534_CLK_RS485_MODE		BIT(4)
 #define F81534_CLK_RS485_INVERT		BIT(5)
@@ -1438,6 +1439,11 @@ static int f81534_port_probe(struct usb_serial_port *port)
 		break;
 	}
 
+	/*
+	 * We'll make tx frame error when baud rate from 384~500kps. So we'll
+	 * delay all tx data frame with 1bit.
+	 */
+	port_priv->shadow_clk |= F81534_CLK_TX_DELAY_1BIT;
 	return f81534_set_port_output_pin(port);
 }
 

WARNING: multiple messages have this Message-ID (diff)
From: "Ji-Ze Hong (Peter Hong)" <hpeter@gmail.com>
To: johan@kernel.org
Cc: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org, peter_hong@fintek.com.tw,
	"Ji-Ze Hong (Peter Hong)" <hpeter+linux_kernel@gmail.com>
Subject: [PATCH V2 5/5] usb: serial: f81534: fix tx error on some baud rate
Date: Thu,  4 Jan 2018 10:29:21 +0800	[thread overview]
Message-ID: <1515032961-29131-5-git-send-email-hpeter+linux_kernel@gmail.com> (raw)
In-Reply-To: <1515032961-29131-1-git-send-email-hpeter+linux_kernel@gmail.com>

The F81532/534 had 4 clocksource 1.846/18.46/14.77/24MHz and baud rates
can be up to 1.5Mbits with 24MHz. But on some baud rate (384~500kps), the
TX side will send the data frame too close to treat frame error on RX
side. This patch will force all TX data frame with delay 1bit gap.

Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@gmail.com>
---
V2:
	1: First introduced in this series patches.

 drivers/usb/serial/f81534.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/serial/f81534.c b/drivers/usb/serial/f81534.c
index a4666171239a..513805eeae6a 100644
--- a/drivers/usb/serial/f81534.c
+++ b/drivers/usb/serial/f81534.c
@@ -130,6 +130,7 @@
 #define F81534_CLK_18_46_MHZ		(F81534_UART_EN | BIT(1))
 #define F81534_CLK_24_MHZ		(F81534_UART_EN | BIT(2))
 #define F81534_CLK_14_77_MHZ		(F81534_UART_EN | BIT(1) | BIT(2))
+#define F81534_CLK_TX_DELAY_1BIT	BIT(3)
 
 #define F81534_CLK_RS485_MODE		BIT(4)
 #define F81534_CLK_RS485_INVERT		BIT(5)
@@ -1438,6 +1439,11 @@ static int f81534_port_probe(struct usb_serial_port *port)
 		break;
 	}
 
+	/*
+	 * We'll make tx frame error when baud rate from 384~500kps. So we'll
+	 * delay all tx data frame with 1bit.
+	 */
+	port_priv->shadow_clk |= F81534_CLK_TX_DELAY_1BIT;
 	return f81534_set_port_output_pin(port);
 }
 
-- 
2.7.4

             reply	other threads:[~2018-01-04  2:29 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-04  2:29 Ji-Ze Hong (Peter Hong) [this message]
2018-01-04  2:29 ` [PATCH V2 5/5] usb: serial: f81534: fix tx error on some baud rate Ji-Ze Hong (Peter Hong)
  -- strict thread matches above, loose matches on Subject: below --
2018-01-10  9:27 [V2,1/5] usb: serial: f81534: add high baud rate support Johan Hovold
2018-01-10  9:27 ` [PATCH V2 1/5] " Johan Hovold
2018-01-10  9:16 [V2,1/5] " Ji-Ze Hong (Peter Hong)
2018-01-10  9:16 ` [PATCH V2 1/5] " Ji-Ze Hong (Peter Hong)
2018-01-10  8:50 [V2,5/5] usb: serial: f81534: fix tx error on some baud rate Johan Hovold
2018-01-10  8:50 ` [PATCH V2 5/5] " Johan Hovold
2018-01-10  8:49 [V2,1/5] usb: serial: f81534: add high baud rate support Johan Hovold
2018-01-10  8:49 ` [PATCH V2 1/5] " Johan Hovold
2018-01-10  5:42 [V2,5/5] usb: serial: f81534: fix tx error on some baud rate Ji-Ze Hong (Peter Hong)
2018-01-10  5:42 ` [PATCH V2 5/5] " Ji-Ze Hong (Peter Hong)
2018-01-10  5:30 [V2,1/5] usb: serial: f81534: add high baud rate support Ji-Ze Hong (Peter Hong)
2018-01-10  5:30 ` [PATCH V2 1/5] " Ji-Ze Hong (Peter Hong)
2018-01-09 11:32 [V2,5/5] usb: serial: f81534: fix tx error on some baud rate Johan Hovold
2018-01-09 11:32 ` [PATCH V2 5/5] " Johan Hovold
2018-01-09 11:29 [V2,4/5] usb: serial: f81534: add H/W disable port support Johan Hovold
2018-01-09 11:29 ` [PATCH V2 4/5] " Johan Hovold
2018-01-09 11:19 [V2,3/5] usb: serial: f81534: add output pin control Johan Hovold
2018-01-09 11:19 ` [PATCH V2 3/5] " Johan Hovold
2018-01-09 11:14 [V2,2/5] usb: serial: f81534: add auto RTS direction support Johan Hovold
2018-01-09 11:14 ` [PATCH V2 2/5] " Johan Hovold
2018-01-09 11:08 [V2,1/5] usb: serial: f81534: add high baud rate support Johan Hovold
2018-01-09 11:08 ` [PATCH V2 1/5] " Johan Hovold
2018-01-04  2:29 [V2,4/5] usb: serial: f81534: add H/W disable port support Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 ` [PATCH V2 4/5] " Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 [V2,3/5] usb: serial: f81534: add output pin control Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 ` [PATCH V2 3/5] " Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 [V2,2/5] usb: serial: f81534: add auto RTS direction support Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 ` [PATCH V2 2/5] " Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 [V2,1/5] usb: serial: f81534: add high baud rate support Ji-Ze Hong (Peter Hong)
2018-01-04  2:29 ` [PATCH V2 1/5] " Ji-Ze Hong (Peter Hong)

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=1515032961-29131-5-git-send-email-hpeter+linux_kernel@gmail.com \
    --to=hpeter@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpeter+linux_kernel@gmail.com \
    --cc=johan@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=peter_hong@fintek.com.tw \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.