From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vignesh R Subject: Re: 4.16 OMAP serial transmit corruption? Date: Wed, 18 Apr 2018 14:41:43 +0530 Message-ID: References: <20180416151732.GU16141@n2100.armlinux.org.uk> <20180416154545.GA5671@atomide.com> <413b774b-d19f-3221-44d5-7992d3b8757f@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <413b774b-d19f-3221-44d5-7992d3b8757f@ti.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Tony Lindgren , Russell King - ARM Linux Cc: Greg Kroah-Hartman , linux-omap@vger.kernel.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: linux-omap@vger.kernel.org CgpPbiBUdWVzZGF5IDE3IEFwcmlsIDIwMTggMDI6NTAgUE0sIFZpZ25lc2ggUiB3cm90ZToKPiAK PiAKPiBPbiBNb25kYXkgMTYgQXByaWwgMjAxOCAwOToxNSBQTSwgVG9ueSBMaW5kZ3JlbiB3cm90 ZToKPj4gKiBSdXNzZWxsIEtpbmcgLSBBUk0gTGludXggPGxpbnV4QGFybWxpbnV4Lm9yZy51az4g WzE4MDQxNiAxNToxOV06Cj4+PiBIaSwKPj4+Cj4+PiBJJ20gbm90IGVudGlyZWx5IHN1cmUgd2hh dCdzIGdvaW5nIG9uLCBidXQgSSBzZWUgY29ycnVwdGVkIGNoYXJhY3RlcnMKPj4+IHdpdGggdGhl IHNlcmlhbCBjb25zb2xlIG9uIHRoZSBPTUFQNDQzMCBTRFAgYm9hcmQuICBEdXJpbmcgYm9vdCwK Pj4+IGV2ZXJ5dGhpbmcgc2VlbXMgZmluZSwgdGhlIHByb2JsZW0gYXBwZWFycyB0byBiZSB1c2Vy c3BhY2Ugb3V0cHV0Lgo+Pj4KPj4+IEZvciBleGFtcGxlLCBpZiBJIGVkaXQgYSBmaWxlLCB0aGVu IHF1aXQgdmk6Cj4+Pgo+Pj4gOnHilqDilqAl4pag4pagQuKWoOKWoFrilqByb290QG9tYXAtNDQz MHNkcDp+Iwo+Pgo+PiBJIGRvbid0IHRoaW5rIEkndmUgc2VlbiB0aGF0IG9uZS4gV2hhdCBJJ3Zl IHNlZW4gZmV3IHRpbWVzIGlzCj4+IHR5cGluZyBhIGtleSBvbiB0aGUgc2VyaWFsIGNvbnNvbGUg ZWNob2luZyBiYWNrIHRoZSBwcmV2aW91cwo+PiBjaGFyYWN0ZXIgdHlwZWQgd2hpbGUgdGhlIG5l dyBjaGFyYWN0ZXIgd29uJ3QgZ2V0IGRpc3BsYXllZAo+PiB1bnRpbCBoaXR0aW5nIGtleWJvYXJk IGFnYWluLiBPbmx5IHJlYm9vdGluZyB0aGUgZGV2aWNlIHNlZW1zCj4+IHRvIHNvbHZlIHRoaXMu IFRoaXMgaXMgd2l0aCA0NDMwIEVTMi4zIHJldmlzaW9uLgo+Pgo+PiBJIHdvbmRlciBpZiB3ZSdy ZSBtaXNzaW5nIHNvbWUgcGFydHMgb2YgZXJyYXRhIGkyMDIgaGFuZGxpbmcKPj4gaW4gb21hcF84 MjUwX21kcjFfZXJyYXRhc2V0KCk/Cj4+CgpJIHdvbmRlciBpZiB0aGUgZXh0cmEgcmVhZCBvZiBN RFIxIHJlZ2lzdGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YKb21hcF84MjUwX21kcjFfZXJyYXRhc2V0 KCkgY29tcGFyZWQgdG8gb21hcC1zZXJpYWwgaXMgdGhlIGlzc3VlLgplcnJhdGEgaTIwMiBzYXlz IGFjY2VzcyB0byBNRFIxIGNhbiBjYXVzZSBkYXRhIGNvcnJ1cHRpb24uIApBc3N1bWluZyBib3Ro IHJlYWRzIGFuZCB3cml0ZXMgY2FuIGNhdXNlIGdsaXRjaCB0aGVuLCB0aGF0IHJlYWQKaXMgbm90 IGZvbGxvd2luZyBhZHZpc29yeToKCkkgZG9uJ3QgaGF2ZSBTRFAgYm9hcmQgc28sIGNvdWxkIHlv dSB2ZXJpZnkgaWYgYmVsb3cgZGlmZiBoZWxwczoKCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkv c2VyaWFsLzgyNTAvODI1MF9vbWFwLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX29t YXAuYwppbmRleCA2YWFhODQzNTVmZDEuLjhhYjlkMGExYjFlYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy90dHkvc2VyaWFsLzgyNTAvODI1MF9vbWFwLmMKKysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgy NTAvODI1MF9vbWFwLmMKQEAgLTE2MywxMSArMTYzLDYgQEAgc3RhdGljIHZvaWQgb21hcF84MjUw X21kcjFfZXJyYXRhc2V0KHN0cnVjdCB1YXJ0XzgyNTBfcG9ydCAqdXAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgb21hcDgyNTBfcHJpdiAqcHJpdikKIHsKICAg ICAgICB1OCB0aW1lb3V0ID0gMjU1OwotICAgICAgIHU4IG9sZF9tZHIxOwotCi0gICAgICAgb2xk X21kcjEgPSBzZXJpYWxfaW4odXAsIFVBUlRfT01BUF9NRFIxKTsKLSAgICAgICBpZiAob2xkX21k cjEgPT0gcHJpdi0+bWRyMSkKLSAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgIHNlcmlh bF9vdXQodXAsIFVBUlRfT01BUF9NRFIxLCBwcml2LT5tZHIxKTsKICAgICAgICB1ZGVsYXkoMik7 CgoKCi0tIApSZWdhcmRzClZpZ25lc2gKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: vigneshr@ti.com (Vignesh R) Date: Wed, 18 Apr 2018 14:41:43 +0530 Subject: 4.16 OMAP serial transmit corruption? In-Reply-To: <413b774b-d19f-3221-44d5-7992d3b8757f@ti.com> References: <20180416151732.GU16141@n2100.armlinux.org.uk> <20180416154545.GA5671@atomide.com> <413b774b-d19f-3221-44d5-7992d3b8757f@ti.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tuesday 17 April 2018 02:50 PM, Vignesh R wrote: > > > On Monday 16 April 2018 09:15 PM, Tony Lindgren wrote: >> * Russell King - ARM Linux [180416 15:19]: >>> Hi, >>> >>> I'm not entirely sure what's going on, but I see corrupted characters >>> with the serial console on the OMAP4430 SDP board. During boot, >>> everything seems fine, the problem appears to be userspace output. >>> >>> For example, if I edit a file, then quit vi: >>> >>> :q??%??B??Z?root at omap-4430sdp:~# >> >> I don't think I've seen that one. What I've seen few times is >> typing a key on the serial console echoing back the previous >> character typed while the new character won't get displayed >> until hitting keyboard again. Only rebooting the device seems >> to solve this. This is with 4430 ES2.3 revision. >> >> I wonder if we're missing some parts of errata i202 handling >> in omap_8250_mdr1_errataset()? >> I wonder if the extra read of MDR1 register at the beginning of omap_8250_mdr1_errataset() compared to omap-serial is the issue. errata i202 says access to MDR1 can cause data corruption. Assuming both reads and writes can cause glitch then, that read is not following advisory: I don't have SDP board so, could you verify if below diff helps: diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c index 6aaa84355fd1..8ab9d0a1b1eb 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -163,11 +163,6 @@ static void omap_8250_mdr1_errataset(struct uart_8250_port *up, struct omap8250_priv *priv) { u8 timeout = 255; - u8 old_mdr1; - - old_mdr1 = serial_in(up, UART_OMAP_MDR1); - if (old_mdr1 == priv->mdr1) - return; serial_out(up, UART_OMAP_MDR1, priv->mdr1); udelay(2); -- Regards Vignesh