From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f194.google.com ([209.85.208.194]:38437 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727060AbeLSJAJ (ORCPT ); Wed, 19 Dec 2018 04:00:09 -0500 Date: Wed, 19 Dec 2018 10:00:08 +0100 From: Johan Hovold To: Macpaul Lin Cc: Johan Hovold , Oliver Neukum , Greg Kroah-Hartman , Andrey Arapov , linux-usb@vger.kernel.org, stable@vger.kernel.org, Lars Melin , Mediatek WSD Upstream Subject: Re: [PATCH v7] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader. Message-ID: <20181219090008.GR20658@localhost> References: <1544671676-23912-1-git-send-email-macpaul.lin@mediatek.com> <1545192663-5721-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1545192663-5721-1-git-send-email-macpaul.lin@mediatek.com> Sender: stable-owner@vger.kernel.org List-ID: On Wed, Dec 19, 2018 at 12:11:03PM +0800, Macpaul Lin wrote: > Mediatek Preloader is a proprietary embedded boot loader for loading > Little Kernel and Linux into device DRAM. > > This boot loader also handle firmware update. Mediatek Preloader will be > enumerated as a virtual COM port when the device is connected to Windows > or Linux OS via CDC-ACM class driver. When the USB enumeration has been > done, Mediatek Preloader will send out handshake command "READY" to PC > actively instead of waiting command from the download tool. > > Since Linux 4.12, the commit "tty: reset termios state on device > registration" (93857edd9829e144acb6c7e72d593f6e01aead66) causes Mediatek > Preloader receiving some abnoraml command like "READYXX" as it sent. > This will be recognized as an incorrect response. The behavior change > also causes the download handshake fail. This change only affects > subsequent connects if the reconnected device happens to get the same minor > number. > > By disabling the ECHO termios flag could avoid this problem. However, it > cannot be done by user space configuration when download tool open > /dev/ttyACM0. This is because the device running Mediatek Preloader will > send handshake command "READY" immediately once the CDC-ACM driver is > ready. > > This patch wants to fix above problem by introducing "DISABLE_ECHO" > property in driver_info. When Mediatek Preloader is connected, the > CDC-ACM driver could disable ECHO flag in termios to avoid the problem. > > Signed-off-by: Macpaul Lin > Cc: stable@vger.kernel.org > --- > Changes for v2: > - Move quirks testing of DISABLE_ECHO flag into acm_tty_install(). > - Change quirks testing into bitwise comparison. > Changes for v3: > - Replace quirks testing from init_termios to tty->termios. > - Remove parenthesis for ECHO flag. > Changes for v4: > - Drop quirks varible to simplify the patch. > - Move termios operation right after the driver_data has been installed. > - Write general style comment for suppressing initial echoing. > Changes for v5: > - Fix: termios operation right abover the driver_data has been installed. > - Update commit comment about this patch affects the reconnected device > which get the same minor numbers. > Changes for v6: > - Update VID/PID:0x0e8d/0x0003 as Mediatek Inc BROM. > - Update VID/PID:0x0e8d/0x2000 as Mediatek Inc Preloader. > Changes for v7: > - Keep VID/PID:0x0e8d/0x0003 unchanged because of 2 different UNION > descriptor implementated in Mediatek Inc BROM (MT6589/MT6765). Reviewed-by: Johan Hovold Johan 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: [v7] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader. From: Johan Hovold Message-Id: <20181219090008.GR20658@localhost> Date: Wed, 19 Dec 2018 10:00:08 +0100 To: Macpaul Lin Cc: Johan Hovold , Oliver Neukum , Greg Kroah-Hartman , Andrey Arapov , linux-usb@vger.kernel.org, stable@vger.kernel.org, Lars Melin , Mediatek WSD Upstream List-ID: T24gV2VkLCBEZWMgMTksIDIwMTggYXQgMTI6MTE6MDNQTSArMDgwMCwgTWFjcGF1bCBMaW4gd3Jv dGU6Cj4gTWVkaWF0ZWsgUHJlbG9hZGVyIGlzIGEgcHJvcHJpZXRhcnkgZW1iZWRkZWQgYm9vdCBs b2FkZXIgZm9yIGxvYWRpbmcKPiBMaXR0bGUgS2VybmVsIGFuZCBMaW51eCBpbnRvIGRldmljZSBE UkFNLgo+IAo+IFRoaXMgYm9vdCBsb2FkZXIgYWxzbyBoYW5kbGUgZmlybXdhcmUgdXBkYXRlLiBN ZWRpYXRlayBQcmVsb2FkZXIgd2lsbCBiZQo+IGVudW1lcmF0ZWQgYXMgYSB2aXJ0dWFsIENPTSBw b3J0IHdoZW4gdGhlIGRldmljZSBpcyBjb25uZWN0ZWQgdG8gV2luZG93cwo+IG9yIExpbnV4IE9T IHZpYSBDREMtQUNNIGNsYXNzIGRyaXZlci4gV2hlbiB0aGUgVVNCIGVudW1lcmF0aW9uIGhhcyBi ZWVuCj4gZG9uZSwgTWVkaWF0ZWsgUHJlbG9hZGVyIHdpbGwgc2VuZCBvdXQgaGFuZHNoYWtlIGNv bW1hbmQgIlJFQURZIiB0byBQQwo+IGFjdGl2ZWx5IGluc3RlYWQgb2Ygd2FpdGluZyBjb21tYW5k IGZyb20gdGhlIGRvd25sb2FkIHRvb2wuCj4gCj4gU2luY2UgTGludXggNC4xMiwgdGhlIGNvbW1p dCAidHR5OiByZXNldCB0ZXJtaW9zIHN0YXRlIG9uIGRldmljZQo+IHJlZ2lzdHJhdGlvbiIgKDkz ODU3ZWRkOTgyOWUxNDRhY2I2YzdlNzJkNTkzZjZlMDFhZWFkNjYpIGNhdXNlcyBNZWRpYXRlawo+ IFByZWxvYWRlciByZWNlaXZpbmcgc29tZSBhYm5vcmFtbCBjb21tYW5kIGxpa2UgIlJFQURZWFgi IGFzIGl0IHNlbnQuCj4gVGhpcyB3aWxsIGJlIHJlY29nbml6ZWQgYXMgYW4gaW5jb3JyZWN0IHJl c3BvbnNlLiBUaGUgYmVoYXZpb3IgY2hhbmdlCj4gYWxzbyBjYXVzZXMgdGhlIGRvd25sb2FkIGhh bmRzaGFrZSBmYWlsLiBUaGlzIGNoYW5nZSBvbmx5IGFmZmVjdHMKPiBzdWJzZXF1ZW50IGNvbm5l Y3RzIGlmIHRoZSByZWNvbm5lY3RlZCBkZXZpY2UgaGFwcGVucyB0byBnZXQgdGhlIHNhbWUgbWlu b3IKPiBudW1iZXIuCj4gCj4gQnkgZGlzYWJsaW5nIHRoZSBFQ0hPIHRlcm1pb3MgZmxhZyBjb3Vs ZCBhdm9pZCB0aGlzIHByb2JsZW0uIEhvd2V2ZXIsIGl0Cj4gY2Fubm90IGJlIGRvbmUgYnkgdXNl ciBzcGFjZSBjb25maWd1cmF0aW9uIHdoZW4gZG93bmxvYWQgdG9vbCBvcGVuCj4gL2Rldi90dHlB Q00wLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGRldmljZSBydW5uaW5nIE1lZGlhdGVrIFByZWxvYWRl ciB3aWxsCj4gc2VuZCBoYW5kc2hha2UgY29tbWFuZCAiUkVBRFkiIGltbWVkaWF0ZWx5IG9uY2Ug dGhlIENEQy1BQ00gZHJpdmVyIGlzCj4gcmVhZHkuCj4gCj4gVGhpcyBwYXRjaCB3YW50cyB0byBm aXggYWJvdmUgcHJvYmxlbSBieSBpbnRyb2R1Y2luZyAiRElTQUJMRV9FQ0hPIgo+IHByb3BlcnR5 IGluIGRyaXZlcl9pbmZvLiBXaGVuIE1lZGlhdGVrIFByZWxvYWRlciBpcyBjb25uZWN0ZWQsIHRo ZQo+IENEQy1BQ00gZHJpdmVyIGNvdWxkIGRpc2FibGUgRUNITyBmbGFnIGluIHRlcm1pb3MgdG8g YXZvaWQgdGhlIHByb2JsZW0uCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFjcGF1bCBMaW4gPG1hY3Bh dWwubGluQG1lZGlhdGVrLmNvbT4KPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+IC0tLQo+ IENoYW5nZXMgZm9yIHYyOgo+ICAtIE1vdmUgcXVpcmtzIHRlc3Rpbmcgb2YgRElTQUJMRV9FQ0hP IGZsYWcgaW50byBhY21fdHR5X2luc3RhbGwoKS4KPiAgLSBDaGFuZ2UgcXVpcmtzIHRlc3Rpbmcg aW50byBiaXR3aXNlIGNvbXBhcmlzb24uCj4gQ2hhbmdlcyBmb3IgdjM6Cj4gIC0gUmVwbGFjZSBx dWlya3MgdGVzdGluZyBmcm9tIGluaXRfdGVybWlvcyB0byB0dHktPnRlcm1pb3MuCj4gIC0gUmVt b3ZlIHBhcmVudGhlc2lzIGZvciBFQ0hPIGZsYWcuCj4gQ2hhbmdlcyBmb3IgdjQ6Cj4gIC0gRHJv cCBxdWlya3MgdmFyaWJsZSB0byBzaW1wbGlmeSB0aGUgcGF0Y2guCj4gIC0gTW92ZSB0ZXJtaW9z IG9wZXJhdGlvbiByaWdodCBhZnRlciB0aGUgZHJpdmVyX2RhdGEgaGFzIGJlZW4gaW5zdGFsbGVk Lgo+ICAtIFdyaXRlIGdlbmVyYWwgc3R5bGUgY29tbWVudCBmb3Igc3VwcHJlc3NpbmcgaW5pdGlh bCBlY2hvaW5nLiAKPiBDaGFuZ2VzIGZvciB2NToKPiAgLSBGaXg6IHRlcm1pb3Mgb3BlcmF0aW9u IHJpZ2h0IGFib3ZlciB0aGUgZHJpdmVyX2RhdGEgaGFzIGJlZW4gaW5zdGFsbGVkLgo+ICAtIFVw ZGF0ZSBjb21taXQgY29tbWVudCBhYm91dCB0aGlzIHBhdGNoIGFmZmVjdHMgdGhlIHJlY29ubmVj dGVkIGRldmljZQo+ICAgIHdoaWNoIGdldCB0aGUgc2FtZSBtaW5vciBudW1iZXJzLgo+IENoYW5n ZXMgZm9yIHY2Ogo+ICAtIFVwZGF0ZSBWSUQvUElEOjB4MGU4ZC8weDAwMDMgYXMgTWVkaWF0ZWsg SW5jIEJST00uCj4gIC0gVXBkYXRlIFZJRC9QSUQ6MHgwZThkLzB4MjAwMCBhcyBNZWRpYXRlayBJ bmMgUHJlbG9hZGVyLgo+IENoYW5nZXMgZm9yIHY3Ogo+ICAtIEtlZXAgVklEL1BJRDoweDBlOGQv MHgwMDAzIHVuY2hhbmdlZCBiZWNhdXNlIG9mIDIgZGlmZmVyZW50IFVOSU9OCj4gICAgZGVzY3Jp cHRvciBpbXBsZW1lbnRhdGVkIGluIE1lZGlhdGVrIEluYyBCUk9NIChNVDY1ODkvTVQ2NzY1KS4K ClJldmlld2VkLWJ5OiBKb2hhbiBIb3ZvbGQgPGpvaGFuQGtlcm5lbC5vcmc+CgpKb2hhbgo=