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: USB:serial:pl2303:Add new PID to support PL2303HXN (TYPE_HXN) From: Johan Hovold Message-Id: <20190415085626.GB29656@localhost> Date: Mon, 15 Apr 2019 10:56:26 +0200 To: Charles Yeh Cc: Johan Hovold , Greg KH , linux-usb@vger.kernel.org, charles-yeh@prolific.com.tw List-ID: SGkgQ2hhcmxlcywKClBsZWFzZSBmaXggeW91ciBtYWlsIHNldHVwIHNvIHRoYXQgeW91IGNhbiBy ZXNwb25kIGlubGluZSBhcyBpcwpjdXN0b21hcnkgb24gdGhlIGxpc3RzLiBZb3VyIG1haWxzIGFy ZSBjdXJyZW50bHkgdW5uZWNlc3NhcmlseSBoYXJkIHRvCnJlYWQgZHVlIHRvIGl0IG5vdCBiZWlu ZyBjbGVhciB3aGF0IGlzIHF1b3RlZCB0ZXh0IGFuZCB3aGF0IGlzbid0LgoKU3BlY2lmaWNhbGx5 LCBxdW90ZWQgdGV4dCBzaG91bGQgaGF2ZSBhbiBleHRyYSAiPiAiIGF0IHRoZSBzdGFydCBvZiB0 aGUKbGluZSwgYW5kIGRvbid0IGNvcHkgdGV4dCBhbmQgcmVzcG9uZCB0byBpdCAoanVzdCByZXBs eSAqaW5saW5lKikuCgpDdXJyZW50bHkgdGhlcmUncyBhIHNlY29uZCBjb3B5IG9mIHRoZSBtYWls IHlvdXIgcmVzcG9uZGluZyB0byBhdCB0aGUKZW5kIG9mIHlvdXIgbWFpbHMuIFRoYXQgYml0IHNo b3VsZCBpbnN0ZWFkIGNvbnRhaW4geW91ciByZXBsaWVzICh3aXRoCnVubmVjZXNzYXJ5IGNvbnRl eHQgcmVtb3ZlZCkuCgpPbiBUdWUsIEFwciAwOSwgMjAxOSBhdCAwNTo1Mjo0NVBNICswODAwLCBD aGFybGVzIFllaCB3cm90ZToKPiBIaSBKb2hhbiwKPiAgICAgICAxLiBUaGUgSFhOIHJlZ2lzdGVy IGxheW91dCBpcyBlbnRpcmVseSBkaWZmZXJlbnQgZnJvbSBIWCBhbmQKPiAgICAgICAgICAgIGVh cmxpZXIgZGV2aWNlcy4KPiAKPiAgICAgICAgIDIuIEhYTiB1c2UgdGhlIHNhbWUgQ0RDIGNsYXNz IHJlcXVlc3RzIChsaW5lIGVuY29kaW5nLCBldGMpIGFzCj4gICAgICAgICAgICBlYXJsaWVyIHJl dmlzaW9ucy4KPiAKPiBDYW4geW91IHNlbmQgbWUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEhYTiBw cm90b2NvbD8gVGhhdCB3b3VsZCBoZWxwIGEKPiBsb3QgaW4gZmluZGluZyB0aGUgcmlnaHQgYWJz dHJhY3Rpb24gbGV2ZWwgZm9yIHRoaXMuCj4gCj4gQW5z77yaCj4gWWVzLFRoZSBIWE4gcmVnaXN0 ZXIgbGF5b3V0IGlzIGVudGlyZWx5IGRpZmZlcmVudCBmcm9tIEhYIGFuZCBlYXJsaWVyIGRldmlj ZXMsCj4gWWVzLCBIWE4gdXNlIHRoZSBzYW1lIENEQyBjbGFzcyByZXF1ZXN0cyAobGluZSBlbmNv ZGluZywgZXRjKSBhcwo+IGVhcmxpZXIgcmV2aXNpb25zCgpPaywgdGhhbmtzIGZvciBjb25maXJt aW5nLgoKPiBJIGRvbid0IGhhdmUgYSBQTDIzMDNHIChIWE4pIFdvcmQgZmlsZSwgSSBvbmx5IGhh dmUgRXhjZWwncyB0YWJsZSBmaWxlLAo+IHBsZWFzZSByZWZlciB0byBQTDIzMDNfTGludXhcVmVu ZG9yX1JlcXVlc3V0LnBuZwoKRGlkIHlvdSBmb3JnZXQgdG8gYXR0YWNoIHRoZSBwbmc/IEV4Y2Vs IGZpbGVzIGRlc2NyaWJpbmcgdGhlIHByb3RvY29sCndvdWxkIGRvIGp1c3QgZmluZS4KCj4gT3Ig eW91IGNhbiBpbnN0YWxsIHdpbmRvdyBkcml2ZXIgdXNlIFBMMjMwM0cgZGVtbyBib2FyZC4KCj4g YW5kIHRoZW4gVVNCIEJ1cyBIb3VuZCB0byBhbmFseXNpcyB0aGUgdmVuZG9yIHJlcXVlc3QuCgpO bywgSSdtIGNlcnRhaW5seSBub3QgZ29pbmcgdG8gcmV2ZXJzZSBlbmdpbmVlciB5b3VyIFdpbmRv d3MgZHJpdmVyIGluCm9yZGVyIHRvIGhlbHAgeW91LgoKU3VyZWx5LCB5b3UgbXVzdCBoYXZlIHNv bWUgZG9jdW1lbnRhdGlvbiBmb3IgeW91ciBkZXZpY2VzPwoKPiBUaGUgb3JpZ2luYWwgUHJvbGlm aWMgY29tcGFueSBpcyBob3Bpbmc6Cj4gVFlQRV9IWCBhbmQgVFlQRV8wMSB1c2VkIG9sZCBkcml2 ZXIocGwyMzAzLmMgJiBwbDIzMDMuaCkKPiBUaGUgbmV3IFBMMjMwM0cgKFRZUEVfSFhOKSB1c2Vz IG5ldyBkcml2ZXIocGxzZXIuYyAmIHBsc2VyLmgpLAo+IAo+IFlvdSBjYW4gZ28gdG8gdGhlIHdl YnNpdGUgb2YgUHJvbGlmaWMsIGluIHRoZSB3ZWJzaXRlLAo+IAo+IFRZUEVfSFggYW5kIFRZUEVf MDEgYXJlIGNhbGxlZAo+IFBMMjMwMyBVU0IgdG8gU2VyaWFsIEJyaWRnZSBDb250cm9sbGVycyAo QWxsIENoaXAgVmVyc2lvbnMpCj4gCj4gVFlQRV9IWE4gaXMgY2FsbGVkCj4gUEwyMzAzRyBVU0Ig dG8gU2VyaWFsIEJyaWRnZSBDb250cm9sbGVycyAoQWxsIENoaXAgVmVyc2lvbnMpLgo+IAo+IFdl IHByb3ZpZGUgdHdvIGRpZmZlcmVudCBmaWxlIHBhdGhzIG9uIHRoZSB3ZWJzaXRlLCB0aGUgbmFt ZS5maWxlLi4KPiBpcyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIFRZUEVfSFgvMDEgYW5kIFRZUEVf SFhOCj4gcGxlYXNlIHJlZmVyIHRvIFBMMjMwM19MaW51eFxXaW5kb3dfc3VwcG9ydF9oeF9oeG4u anBnCj4gCj4gVFlQRV9IWCBhbmQgVFlQRV8wMTp0aGUgd2luZG93cyBmaWxlIG5hbWUgaXMgc2Vy MnBsLnN5cyAmIHNlcjJwbDY0LnN5cy4KPiAKPiBUWVBFX0hYTjp0aGUgd2luZG93cyBmaWxlIG5h bWUgaXMgcGxzZXIuc3lzICYgcGxzZXI2NC5zeXMuCj4gCj4gcGxlYXNlIHJlZmVyIHRvIFBMMjMw M19MaW51eFx3aW5kb3dfcGxzZXJfc2VyMnBsLmJtcAo+IAo+IEJ1dCBHcmVnIGRpc2FncmVlZCB3 aXRoIHRoZSBMaW51eCBPUyBhYm91dCBuZXcgRmlsZSBuYW1lKHBsc2VyLmMgJiBwbHNlci5oKQo+ IFNvIHdlIGRpZCB0aGF0IHdlIG1lcmdlZCB3aXRoIHRoZSBleGlzdGluZyBwbDIzMDMuYyhoKQo+ IGludG8gYSBuZXcgY2hpcCAoUEwyMzAzRywgVFlQRV9IWE4pCgpZZXMsIHRoZSBwbHNlciBkcml2 ZXIgeW91IHN1Ym1pdHRlZCB3YXMganVzdCBhIGNvcHkgb2YgcGwyMzAzLCB3aXRoCm1pbmltYWwg Y2hhbmdlcyB0byBzdXBwb3J0IHBsMjMwM2cuIFdpdGggdGhhdCBtdWNoIGNvZGUgYmVpbmcgc2hh cmVkIHlvdQpuZWVkIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IGRldmljZSB0eXBlIHRvIHRo ZSBjdXJyZW50IGRyaXZlci4KCkJ1dCB0aGUgbGFjayBvZiBkb2N1bWVudGF0aW9uIG9mIHRoZSBw cm90b2NvbHMgdXNlZCBpcyBtYWtpbmcgaXQgaGFyZCB0bwpkZXRlcm1pbmUgdGhlIGFwcHJvcHJp YXRlIGFic3RyYWN0aW9uIGxldmVsLgoKPiA+ICsjZGVmaW5lIFRZUEVfSFhOX0ZMT1dDT05UUk9M X1JFRyAgICAgMHgwQQo+IAo+ID4gKyNkZWZpbmUgVFlQRV9IWE5fSEFSRFdBUkVGTE9XX0RBVEEg ICAweEZBCj4gPiArI2RlZmluZSBUWVBFX0hYTl9TT0ZUV0FSRUZMT1dfREFUQSAgIDB4RUUKPiA+ ICsjZGVmaW5lIFRZUEVfSFhOX05PRkxPV19EQVRBICAgICAgICAgMHhGRgo+IAo+IFdoYXQgZXhh Y3RseSBkb2VzIGJpdHMgMHgxNSAoYml0cyA0LCAyIGFuZCAwKSBkbz8KPiBBbnM6cGxlYXNlIHJl ZmVyIHRvIFBMMjMwM19MaW51eFxQTDIzMDNHX1RZUEVfSFhOX1VBUlRfRmxvdy5qcGcsCj4gCj4g SXMgcmVnaXN0ZXIgMHgwYSByZWFsbHkgb25seSB1c2VkIGZvciBmbG93IGNvbnRyb2w/Cj4gQW5z OiBZZXMsIHBsZWFzZSByZWZlciB0byBQTDIzMDNfTGludXhcUEwyMzAzR19UWVBFX0hYTl9VQVJU X0Zsb3cuanBnLAo+IDB4MEEoQml0IDIsIDMsIDQpaXMgVUFSVCBmbG93IGNvbnRyb2wgc2V0dHRp bmcsCj4gaXQgb25seSBzdXBwb3J0cyBUWVBFX0hYTiwgbm8gc3VwcG9ydHMgVFlQRV9IWC8wMS4K Ck9rLCB0aGFua3MgKGZvdW5kIHRoZSBsaW5rIGF0IHRoZSBlbmQgb2YgdGhlIG1haWwgbm93KS4K Cj4gSW4gYW4gZWFybGllciB2ZXJzaW9uIG9mIHlvdXIgcGF0Y2gsIHlvdSBhbHNvIGNoZWNrZWQg YmNkVVNCIGhlcmUuIFdoeQo+IGRpZCB5b3UgcmVtb3ZlIGl0Pwo+IAo+ID4gKyAgICAgICAgICAg ICByZXMgPSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgdXNiX3JjdmN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICBWRU5ET1JfUkVBRF9SRVFVRVNULCBWRU5ET1JfUkVBRF9SRVFVRVNUX1RZUEUsCj4g PiArICAgICAgICAgICAgICAgICAgICAgVFlQRV9IWF9SRUFEX1NUQVRVU19SRUcsIDAsIGJ1Ziwg MSwgMTAwKTsKPiAKPiBQbGVhc2UgbmFtZSB0aGUgcmVnaXN0ZXJzIGFmdGVyIHdoYXQgdGhleSBk bywgbm90IGhvdyB5b3UgdXNlIHRoZW0uIFdoYXQKPiBpcyByZWdpc3RlciAwIHRoYXQgeW91IHJl YWQgaGVyZT8gRG9lcyBpdCBoYXZlIGEgbmFtZT8KPiAKPiBBbnM6IEJlY2F1c2UgdGhlICJrYnVp bGQgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4iIHJlcGx5IG1lIGEgZXJyb3IuCj4gUGxlYXNl IHJlZmVyIHRvIEVtYWlsOiAiVHVlc2RheSwgRGVjZW1iZXIgMjUsIDIwMTgsIGF0IDExOjM5IHBt Igo+IG9yIHJlZmVyIHRvIFBMMjMwM19MaW51eFxyZW1vZV9jaGVja2VkX2JjZFVTQi50eHQKClll cywgeW91IG5lZWRlZCB0byB1c2UgaGVscGVyIGZ1bmN0aW9uIHRvIGRlYWwgd2l0aCBlbmRpYW5l c3MgYXMgd2FzCnBvaW50ZWQgb3V0IHRvIHlvdSBpbiB0aGF0IHRocmVhZC4gV2h5IGRpZG4ndCB5 b3UgdXNlIHRoZSBoZWxwZXIsIGFuZAppbnN0ZWFkIGp1c3QgZHJvcHBlZCB0aGUgY2hlY2s/Cgo+ IFdoeSBUWVBFXzAxIHNldHMgYml0IDB4MjAgb2YgcmVnaXN0ZXIgMiBpbnN0ZWFkIG9mIDB4NDAg YXMgdGhlIEhYIGRvZXM/Cj4gSXMgdGhhdCBldmVuIGNvcnJlY3Q/Cj4gQW5zOiBZZXMsIGl0IGlz IGNvcnJlY3QsCj4gVGhlIE91dHB1dChUWC9EVFIvUlRTKSBUcmktc3RhdGUgSC9XIGRlc2lnbiBp cyBkaWZmZXJlbnQuCj4gCj4gVFlQRV8wMTogUlMtMjMyIE91dHB1dCBUcmktc3RhdGU6Cj4gMDog UlMtMjMyIG91dHB1dCBpbiBvdXRwdXQgbW9kZTsKPiAxOiBSUy0yMzIgb3V0cHV0IHRyaS1zdGF0 ZS4KPiAKPiBUWVBFX0hYX1NlcmlhbCBQb3J0IChUWEQsIFJUUywgYW5kIERUUikgT3V0cHV0IEVu YWJsZToKPiAwMCDigJMgRGlzYWJsZSBvdXRwdXQgc2lnbmFscyAoVHJpLVN0YXRlKSBhdCBhbGwg dGltZTsKPiAwMSDigJMgRGlzYWJsZSBvdXRwdXQgc2lnbmFscyAoVHJpLVN0YXRlKSBkdXJpbmcg c3VzcGVuZDsKPiAxMCwgMTEg4oCTIFNldCBvdXRwdXQgc2lnbmFscyB0byBISUdIIGR1cmluZyBz dXNwZW5kOwoKT2suCgo+ID4gICAgICAgaWYgKENfQ1JUU0NUUyh0dHkpKSB7Cj4gPiAtICAgICAg ICAgICAgIGlmIChzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FDWSkKPiA+IC0gICAg ICAgICAgICAgICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAweDQxKTsK PiAKPiBXaHkgZG8gdGhlIFRZUEVfMDEgbm90IHNldCBiaXQgMHgyMCBoZXJlPyBEbyB0aGUgbGVn YWN5IGRldmljZSBzdXBwb3J0Cj4gYm90aCBhdXRvLXJ0cyBhbmQgYXV0by1jdHM/Cj4gCj4gQW5z OiBZZXMsIGl0IGlzIGNvcnJlY3QsCj4gVGhlIEhhcmR3YXJlIFVBUlQgZmxvdyBjb250cm9sIHNl dHR0aW5nIGRlc2lnbiBpcyBkaWZmZXJlbnQKPiBiZXR3ZWVuIFRZUFRfMDEgYW5kIFRZUFRfSFgu Cj4gCj4gQWx0aG91Z2ggSSBoYXZlIGJlZW4gaW4gUHJvbGlmaWMgQ29tcGFueSBmb3IgYWxtb3N0 IDE2IHllYXJzLi4KPiBCdXQgVFlQRV8wMSAoUEwyMzAzSCkgaGFzIGJlZW4gZGlzY29udGludWVk KEVPTCkgZm9yIDEzIHllYXJzLi4uCj4gTm93IGNhbid0IGZpbmQgdGhpcyBJQyhUWVBUXzAxOiBQ TDIzMDNIKSBvbiB0aGUgbWFya2V0Li4KClN1cmUsIGJ1dCB3ZSBzdGlsbCBuZWVkIHRvIG1ha2Ug c3VyZSB3ZSBkb24ndCBicmVhayBhbnkgd29ya2luZyBzZXR1cHMKdXNpbmcgdGhlc2Ugb2xkIGRl dmljZXMsIHNvIEkgc3RpbGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgb2xkZXIKcHJvdG9j b2xzIHdvcmsuCgo+IFRoZSBsaW5lImlmIChzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xF R0FDWSkiCj4geW91IGFyZSBhc2tpbmcgbm93IGlzIG5vdCB3aGF0IEkgd3JvdGUuLi4KPiBJIGRv bid0IGtub3cgd2h5IHRvIGRlZmluZSBpdCBhcyBQTDIzMDNfUVVJUktfTEVHQUNZLgoKSSBhZGRl ZCB0aGF0IGF0IHNvbWUgcG9pbnQgaW4gYW4gYXR0ZW1wdCB0byBjbGVhbiB1cCB0aGlzCnJldmVy c2UtZW5naW5lZXJpbmcgZHJpdmVyLiBZb3UgY2FuIHJlYWQgaXQgYXMgYSBUWVBFXzAxIHRlc3Qu IAoKPiBJIGFtIG1haW5seSByZXNwb25zaWJsZSBmb3IgdGhlIFBMMjMwMyBkcml2ZXIKPiBXaW5k b3dzLCBXaW5DRSwgTWFjICYgQW5kcm9pZCBpbiBQcm9saWZpYy4KPiBPbiB0aGUgTGludXggZHJp dmVyIHNpZGUsIG9ubHkgd2hlbiB0aGUgY3VzdG9tZXIgaGFzIGEgcHJvYmxlbSwKPiBvciB3YW50 IHRvIGFkZCBuZXcgZmVhdHVyZXMgKHN1Y2ggYXMgR1BJTyBjb250cm9sLCBuZXcgQmF1ZCByYXRl KSwKPiBJIHdpbGwgcmV3cml0ZSB0aGUgTGludXggY29kZS4KPiBSZXdyaXR0ZW4gTGludXggY29k ZSB3aWxsIG9ubHkgYmUgZ2l2ZW4gdG8gdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tZXIuCj4gCj4g SnVzdCBsaWtlIHRoaXMgdGltZSwgYmVjYXVzZSBJIHdhbnQgdG8gYWRkIFBMMjMwM0cgKFRZUEVf SFhOKSB0byBMaW51eCwKPiBJIGp1c3QgcmV3cml0dGVuIHRoZSBMaW51eCBjb2RlLi4uCj4gRm9y IHNvbWUgZGVmaW5pdGlvbnMgaW4gdGhlIExpbnV4IGNvZGUsCj4gc3VjaCBhcyB3aHkgaXQgaXMg ZGVmaW5lZCBhcyBQTDIzMDNfUVVJUktfTEVHQUNZLAo+IEkgcmVhbGx5IGRvbid0IGtub3cgdmVy eSB3ZWxsCj4gCj4gQmVmb3JlIHJld3JpdGluZyB0aGUgTGludXggY29kZSwKPiBJIGNhbiBvbmx5 IGd1ZXNzICJQTDIzMDNfUVVJUktfTEVHQUNZIiB0aGF0IHRoaXMgcmVmZXJzIHRvIHRoZQo+IG9s ZCBQTDIzMDMgKFBMMjMwM0gsIFRZUEVfMDEpLi4KClJpZ2h0LgoKPiBBZnRlciB0aGUgYWN0dWFs IHRlc3QgKEkgaGF2ZSB0ZXN0ZWQgdGhlIG9sZCBQTDIzMDNIIGNoaXAgb24gTGludXgpLAo+IHdo ZW4gSSBwbHVnIGluIHRoZSBQTDIzMDNIIChUWVBFXzAxKSwgdGhlIExpbnV4IGNvZGUgd2lsbCBl eGVjdXRlIHRoZSBjb2RlOgo+IGlmIChzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FD WSkgaXRpbmVyYXJ5IGNvZGUuCj4gU28gSSBjb25maXJtIFRoaXMgIlBMMjMwM19RVUlSS19MRUdB Q1kiIG9mIGNvZGUgcmVmZXJzIHRvIFBMMjMwM0goVFlQRV8wMSkKCkNvcnJlY3QsIGJ1dCBteSBx dWVzdGlvbiB3YXMgYWJvdXQgYml0IDB4MjAgZm9yIFRZUEVfMDEgZGV2aWNlczsgd2h5Cmlzbid0 IGl0IGJlaW5nIGFzIHNldCBhcyBmb3IgVFlQRV9IWD8KCj4gPiArICAgICAgICAgICAgIGlmIChz cHJpdi0+dHlwZSA9PSAmcGwyMzAzX3R5cGVfZGF0YVtUWVBFX0hYTl0pCj4gPiArICAgICAgICAg ICAgICAgICAgICAgcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIFRZUEVfSFhOX0ZMT1dDT05U Uk9MX1JFRywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUWVBFX0hYTl9TT0ZUV0FSRUZMT1dfREFUQSk7Cj4gPiAgICAgICAgICAgICAgIGVsc2UKPiA+ IC0gICAgICAgICAgICAgICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAw eDYxKTsKPiA+IC0gICAgIH0gZWxzZSBpZiAoSV9JWE9OKHR0eSkgJiYgIUlfSVhBTlkodHR5KSAm JiBTVEFSVF9DSEFSKHR0eSkgPT0gMHgxMSAmJgo+ID4gLSAgICAgICAgICAgICAgICAgICAgIFNU T1BfQ0hBUih0dHkpID09IDB4MTMpIHsKPiA+IC0gICAgICAgICAgICAgcGwyMzAzX3ZlbmRvcl93 cml0ZShzZXJpYWwsIDB4MCwgMHhjMCk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgcGwyMzAz X3ZlbmRvcl93cml0ZShzZXJpYWwsIFRZUEVfSFhfMDFfRkxPV0NPTlRST0xfUkVHLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfSFhfMDFfU09G VFdBUkVGTE9XX0RBVEEpOwo+ID4gICAgICAgfSBlbHNlIHsKPiA+IC0gICAgICAgICAgICAgcGwy MzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MCwgMHgwKTsKPiA+ICsgICAgICAgICAgICAgaWYg KHNwcml2LT50eXBlID09ICZwbDIzMDNfdHlwZV9kYXRhW1RZUEVfSFhOXSkKPiA+ICsgICAgICAg ICAgICAgICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgVFlQRV9IWE5fRkxPV0NP TlRST0xfUkVHLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRZUEVfSFhOX05PRkxPV19EQVRBKTsKPiA+ICsgICAgICAgICAgICAgZWxzZQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCBUWVBFX0hYXzAx X0ZMT1dDT05UUk9MX1JFRywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUWVBFX0hYXzAxX05PRkxPV19EQVRBKTsKPiAKPiBBcyBhbHJlYWR5IG1lbnRp b25lZCwgdGhlIGFib3ZlIGlzIGhhcmRseSByZWFkYWJsZS4gV2hlbiBzdHVkeWluZyB0aGUKPiBj dXJyZW50IGRyaXZlciwgSSBub3RpY2VkIGEgY291cGxlIG9mIGJ1Z3MgdGhhdCBJJ20gcHJlcGFy aW5nIGZpeGVzIGZvci4KPiAKPiBTcGVjaWZpY2FsbHksIHdlIHNob3VsZG4ndCBiZSBvdmVyd3Jp dGluZyB0aGUgZW50aXJlIGNvbnRyb2wgcmVnaXN0ZXIsCj4gd2hpY2ggY2hhbmdlcyB0aGUgdHJh bmNlaXZlciBzdXNwZW5kIG1vZGUuIEFyZSB0aGVyZSBzaW1pbGFyIHByb2JsZW1zCj4gd2l0aCBu b3QgZG9pbmcgYml0IHVwZGF0ZXMgb2YgcmVnaXN0ZXIgMHgwYT8KPiAKPiBFaXRoZXIgd2F5LCBy ZWJhc2luZyB5b3VyIHBhdGNoZXMgb24gdG9wIG9mIHRob3NlIHNob3VsZCBhbGxvdyB0aGlzIHRv Cj4gYmUgY2xlYW5lZCB1cCBzb21ld2hhdC4KPiAKPiAKPiBBbnM6IHRoZSB0aHJlZSBjaGlwcyBU WVBFXzAxIC8gVFlQRV9IWCAvIFRZUEVfSFhOIGhhdmUgdGhlaXIgb3duIGluZGVwZW5kZW50Cj4g IGZsb3cgY29udHJvbCBSZWdpc3RlciBzZXR0aW5ncy4uLgo+IFdoYXQgYWR2aWNlIGRvIHlvdSBo YXZlIGZvciBoYW5kbGluZyBoZXJlPwo+IAo+IEhlcmUgSSBoYXZlIGFjdHVhbGx5IHRlc3RlZCB0 aGUgdGhyZWUgY2hpcHMgVFlQRV8wMSAvIFRZUEVfSFggLyBUWVBFX0hYTgo+IFRZUEVfMDE6IFBM MjMwM0gKPiBUWVBFX0hYOiBQTDIzMDNIWEEvIFBMMjMwM1hBLyBQTDIzMDNIWEQvUEwyMzAzVEEv UEwyMzAzVEIvUEwyMzAzUkEvIFBMMjMwM1NBLgo+IFRZUEVfSFhOOiBQTDIzMDNHQywgUEwyMzAz R1MsIFBMMjMwM0dMLi4uCj4gCj4gVGhlIHRlc3QgcmVzdWx0IGlzIE9LLi4KCldlbGwsIHdpdGhv dXQgZG9jdW1lbnRhdGlvbiBpdCBpcyBoYXJkIHRvIGdpdmUgYWR2aWNlLiBCdXQgdGhlCmluZm9y bWF0aW9uIHlvdSBwcm92aWRlZCBhYm92ZSwgaW5kaWNhdGVzIHRoYXQgeW91IHNob3VsZCBub3Qg YmUKb3ZlcndyaXRpbmcgdGhlc2UgcmVnaXN0ZXJzIGNvbXBsZXRlbHkgZm9yIEhYTiBlaXRoZXIg d2hlbiB1cGRhdGluZyB0aGUKZmxvdy1jb250cm9sIHNldHRpbmdzLiBPbmx5IHRoZSBiaXRzIDIu LjQgKGFuZCBwb3NzaWJseSAwLi4xKSBzaG91bGQgYmUKd3JpdHRlbi4KClRha2UgYSBsb29rIGF0 IHRoZSBwYXRjaGVzIEkgbWVyZ2VkIGZvciBkb2luZyB0aGlzIG9uIHRoZSBvbGRlciBkZXZpY2Vz LgpZb3Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlIHRoZSBzYW1lIGhlbHBlciB3aGVuIHVwZGF0aW5n IHRoZXNlCnJlZ2lzdGVycy4KCglodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgv a2VybmVsL2dpdC9qb2hhbi91c2Itc2VyaWFsLmdpdC9jb21taXQvP2g9dXNiLW5leHQmaWQ9ZjY0 YzNhYjIzMDY4MmU4Mzk1YTdmYmQwMWYzZWI1MTQwYzgzN2Q0ZQoKPiA+ICsgICAgICAgICAgICAg ICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSFhOX1JFU0VUX0RPV05fVVBTVFJFQU1fUkVHLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIWE5fUkVTRVRfRE9XTl9VUFNUUkVB TV9EQVRBKTsKPiAKPiBDYW4geW91IHdyaXRlIGFueXRoaW5nIHRvIHRoaXMgcmVnaXN0ZXIgdG8g cmVzZXQgdGhlIGJ1ZmZlcnMsIG9yIGRvZXMgaXQKPiBoYXZlIHRvIGJlIDA/Cj4gQW5zOiBJdCBo YXZlIHRvIHJlc2V0IHRvIDAsIHBsZWFzZSByZWZlciB0byBQTDIzMDNfTGludXhcUEwyMzAzR19D aGlwUmVzZXQuanBnCgpCdXQgdGhhdCBqcGcgc2hvd3Mgb25seSBiaXQgMCBhbmQgMSBiZWluZyB1 c2VkIGZvciBkYXRhIHBpcGUgcmVzZXQuIEFuZApzaG91bGRuJ3QgeW91IGJlIHdyaXRpbmcgMHgw MiB0byByZXNldCB0aG9zZT8KCj4gPiArICAgICAgICAgICAgIGVsc2Ugewo+ID4gKyAgICAgICAg ICAgICAgICAgICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIWF9SRVNFVF9ET1dOX1VQU1RSRUFNX1JFRzEsCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhYX1JFU0VUX0RPV05fVVBT VFJFQU1fREFUQSk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgcGwyMzAzX3ZlbmRvcl93cml0 ZShzZXJpYWwsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhYX1JF U0VUX0RPV05fVVBTVFJFQU1fUkVHMiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSFhfUkVTRVRfRE9XTl9VUFNUUkVBTV9EQVRBKTsKPiAKPiBJIGFzc3VtZSB0aGUg b2xkZXIgdmVyc2lvbnMgYWxsb3cgZm9yIHRoZSBhbmQgdXAgYW5kIGRvd24gYnVmZmVycyB0byBi ZQo+IHJlc2V0IGluZGVwZW5kZW50bHk/IFBsZWFzZSBuYW1lIHRoZXNlIHJlZ2lzdGVycyBhY2Nv cmRpbmdseS4KPiBBbnM6IFllcywgcmVzZXQgaW5kZXBlbmRlbnRseSwKPiBwbGVhc2UgcmVmZXIg dG8gUEwyMzAzX0xpbnV4XFBMMjMwM19UWVBFX0hYX1Jlc2V0LmpwZwo+IFRoZSBvcmlnaW5hbCBj b2RlIGlzCj4gICAgICAgICAvKiByZXNldCB1cHN0cmVhbSBkYXRhIHBpcGVzICovCj4gICAgICAg ICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgOCwgMCk7Cj4gICAgICAgICBwbDIzMDNfdmVu ZG9yX3dyaXRlKHNlcmlhbCwgOSwgMCk7Cj4gCj4gWW91IHByZXZpb3VzbHkgc3VnZ2VzdGVkIHRo YXQgSSBhbSBub3QgdXNpbmcgIm1hZ2ljYWwiIGNvbnN0YW50cyBkaXJlY3RseSwKPiBQbGVhc2Ug dXNlIGRlZmluZXMgcmF0aGVyIHRoYW4gIm1hZ2ljYWwiIENvbnN0YW50cy4KPiBXaGF0IGFkdmlj ZSBkbyB5b3UgaGF2ZSBmb3IgaGFuZGxpbmcgaGVyZT8KCk5hbWUgcmVnaXN0ZXIgYW5kIGJpdC1k ZWZpbml0aW9ucyBhZnRlciB3aGF0IHRoZXkgZG8uIFdlIG5lZWQgY29kZSB0byBiZQpjbGVhbiBh bmQgbW9zdGx5IHNlbGYtZG9jdW1lbnRpbmcuIEluIHRoaXMgY2FzZSwgYmFzZWQgb24gdGhlCmlu Zm9ybWF0aW9uIHByb3ZpZGVkIGFib3ZlLCB5b3UgY291bGQgdXNlCgoJI2RlZmluZSBQTDIzMDNf UkVTRVRfRE9XTlNUUkVBTV9QSVBFCTgKCSNkZWZpbmUgUEwyMzAzX1JFU0VUX1VQU1RSRUFNX1BJ UEUJOQoKZm9yIGV4YW1wbGUuCgpBcyB0aGUgcHJvdG9jb2wgYXBwZWFycyB0byBtYW5kYXRlIHdy aXRpbmcgMCB0byB0aGVzZSByZWdpc3RlcnMsIGl0Cm1heSBiZSBvayB0byBrZWVwIHRoYXQgYXMg YSBudW1lcmljYWwgY29uc3RhbnQuCgpKb2hhbgo= 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=-7.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_PASS, T_DKIMWL_WL_HIGH,USER_AGENT_MUTT 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 31C59C10F0E for ; Mon, 15 Apr 2019 08:56:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EB43D20833 for ; Mon, 15 Apr 2019 08:56:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555318587; bh=tYPU4N9d3jFYTQCJzyn5QCaQrephOJbtq9GrGSLWOhs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=MwO1aj12paJMJBfd2SXKqLJfxxoYqoa4IXXaERB9w9xE74t2O3YMQQQnvB+ThFhCe q5ZT6T3Ff/0rMPyQPNfoSYTDavzGpIToUC8HIlzkWi0Sb6FOEru3rUzBS9UbfyqfBy VJr3bWspZd/joKCJdTgdYzCIW6dpTfHT2dzo+dbU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725798AbfDOI40 (ORCPT ); Mon, 15 Apr 2019 04:56:26 -0400 Received: from mail-lf1-f67.google.com ([209.85.167.67]:35868 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725794AbfDOI40 (ORCPT ); Mon, 15 Apr 2019 04:56:26 -0400 Received: by mail-lf1-f67.google.com with SMTP id u17so12455031lfi.3 for ; Mon, 15 Apr 2019 01:56:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=905Gi4QgLQHkyuLuZVcD3qy9DkOh4t1kzO9fNnRVJLE=; b=NyUg85L4WiF389PCHM/ZOrjorUJ8PlK/PsppIBem01ltFigIBfN4iRDE/CwplSCnkv n331aKQt9QxpsuKJNOzX/X/E8oLHsAKYrWesn4CraTqNNSVeTECiCv4OZXhaGSIUqFhl 5vZCpeXv807hS++MZuh50Os1Lq+kki2vvrph0qooiUnGK+XvzfjxRuk5MscTJv1p2vNv VCdNmZ+5DDSCH7KgCP8umr+TLxYfPnMtf+v+XmbuUWy+KUvXNAysMzTs1IwQqXF3wZMH akSqORzD1cMiL55YzIikQ1TswlIYpfRvv/SxLMkGgSDInZbcDSd6PMu8cgXkR1BJUaYf uwJA== X-Gm-Message-State: APjAAAVSLYQbX6Fzkit5k9Y5UKak3W+ldzbszfBeEO5KTKmzXl0jH+zb 89O0COtcImJ6jdZNoR4yZZV4c103 X-Google-Smtp-Source: APXvYqwy0Yphw/Qbt7mFiD5vvk818b3+BMaoVTWC4sEw2FGwSAxvKDfAuJi/+0ZmC6vPbBS3ePCTlA== X-Received: by 2002:a19:f81a:: with SMTP id a26mr7517085lff.63.1555318583351; Mon, 15 Apr 2019 01:56:23 -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 a28sm1003944lfk.54.2019.04.15.01.56.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Apr 2019 01:56:22 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1hFxPe-0008II-SQ; Mon, 15 Apr 2019 10:56:27 +0200 Date: Mon, 15 Apr 2019 10:56:26 +0200 From: Johan Hovold To: Charles Yeh Cc: Johan Hovold , Greg KH , linux-usb@vger.kernel.org, charles-yeh@prolific.com.tw Subject: Re: [PATCH] USB:serial:pl2303:Add new PID to support PL2303HXN (TYPE_HXN) Message-ID: <20190415085626.GB29656@localhost> References: <20190213123000.4656-1-charlesyeh522@gmail.com> <20190402072235.GI12562@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.11.4 (2019-03-13) Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190415085626.RNiNgyZmgGOcnlahSf--Lxp4njcIfzvX3v6RltzQKWI@z> Hi Charles, Please fix your mail setup so that you can respond inline as is customary on the lists. Your mails are currently unnecessarily hard to read due to it not being clear what is quoted text and what isn't. Specifically, quoted text should have an extra "> " at the start of the line, and don't copy text and respond to it (just reply *inline*). Currently there's a second copy of the mail your responding to at the end of your mails. That bit should instead contain your replies (with unnecessary context removed). On Tue, Apr 09, 2019 at 05:52:45PM +0800, Charles Yeh wrote: > Hi Johan, > 1. The HXN register layout is entirely different from HX and > earlier devices. > > 2. HXN use the same CDC class requests (line encoding, etc) as > earlier revisions. > > Can you send me documentation for the HXN protocol? That would help a > lot in finding the right abstraction level for this. > > Ans: > Yes,The HXN register layout is entirely different from HX and earlier devices, > Yes, HXN use the same CDC class requests (line encoding, etc) as > earlier revisions Ok, thanks for confirming. > I don't have a PL2303G (HXN) Word file, I only have Excel's table file, > please refer to PL2303_Linux\Vendor_Requesut.png Did you forget to attach the png? Excel files describing the protocol would do just fine. > Or you can install window driver use PL2303G demo board. > and then USB Bus Hound to analysis the vendor request. No, I'm certainly not going to reverse engineer your Windows driver in order to help you. Surely, you must have some documentation for your devices? > The original Prolific company is hoping: > TYPE_HX and TYPE_01 used old driver(pl2303.c & pl2303.h) > The new PL2303G (TYPE_HXN) uses new driver(plser.c & plser.h), > > You can go to the website of Prolific, in the website, > > TYPE_HX and TYPE_01 are called > PL2303 USB to Serial Bridge Controllers (All Chip Versions) > > TYPE_HXN is called > PL2303G USB to Serial Bridge Controllers (All Chip Versions). > > We provide two different file paths on the website, the name.file.. > is to distinguish between TYPE_HX/01 and TYPE_HXN > please refer to PL2303_Linux\Window_support_hx_hxn.jpg > > TYPE_HX and TYPE_01:the windows file name is ser2pl.sys & ser2pl64.sys. > > TYPE_HXN:the windows file name is plser.sys & plser64.sys. > > please refer to PL2303_Linux\window_plser_ser2pl.bmp > > But Greg disagreed with the Linux OS about new File name(plser.c & plser.h) > So we did that we merged with the existing pl2303.c(h) > into a new chip (PL2303G, TYPE_HXN) Yes, the plser driver you submitted was just a copy of pl2303, with minimal changes to support pl2303g. With that much code being shared you need to add support for the new device type to the current driver. But the lack of documentation of the protocols used is making it hard to determine the appropriate abstraction level. > > +#define TYPE_HXN_FLOWCONTROL_REG 0x0A > > > +#define TYPE_HXN_HARDWAREFLOW_DATA 0xFA > > +#define TYPE_HXN_SOFTWAREFLOW_DATA 0xEE > > +#define TYPE_HXN_NOFLOW_DATA 0xFF > > What exactly does bits 0x15 (bits 4, 2 and 0) do? > Ans:please refer to PL2303_Linux\PL2303G_TYPE_HXN_UART_Flow.jpg, > > Is register 0x0a really only used for flow control? > Ans: Yes, please refer to PL2303_Linux\PL2303G_TYPE_HXN_UART_Flow.jpg, > 0x0A(Bit 2, 3, 4)is UART flow control settting, > it only supports TYPE_HXN, no supports TYPE_HX/01. Ok, thanks (found the link at the end of the mail now). > In an earlier version of your patch, you also checked bcdUSB here. Why > did you remove it? > > > + res = usb_control_msg(serial->dev, > > + usb_rcvctrlpipe(serial->dev, 0), > > + VENDOR_READ_REQUEST, VENDOR_READ_REQUEST_TYPE, > > + TYPE_HX_READ_STATUS_REG, 0, buf, 1, 100); > > Please name the registers after what they do, not how you use them. What > is register 0 that you read here? Does it have a name? > > Ans: Because the "kbuild test robot " reply me a error. > Please refer to Email: "Tuesday, December 25, 2018, at 11:39 pm" > or refer to PL2303_Linux\remoe_checked_bcdUSB.txt Yes, you needed to use helper function to deal with endianess as was pointed out to you in that thread. Why didn't you use the helper, and instead just dropped the check? > Why TYPE_01 sets bit 0x20 of register 2 instead of 0x40 as the HX does? > Is that even correct? > Ans: Yes, it is correct, > The Output(TX/DTR/RTS) Tri-state H/W design is different. > > TYPE_01: RS-232 Output Tri-state: > 0: RS-232 output in output mode; > 1: RS-232 output tri-state. > > TYPE_HX_Serial Port (TXD, RTS, and DTR) Output Enable: > 00 – Disable output signals (Tri-State) at all time; > 01 – Disable output signals (Tri-State) during suspend; > 10, 11 – Set output signals to HIGH during suspend; Ok. > > if (C_CRTSCTS(tty)) { > > - if (spriv->quirks & PL2303_QUIRK_LEGACY) > > - pl2303_vendor_write(serial, 0x0, 0x41); > > Why do the TYPE_01 not set bit 0x20 here? Do the legacy device support > both auto-rts and auto-cts? > > Ans: Yes, it is correct, > The Hardware UART flow control settting design is different > between TYPT_01 and TYPT_HX. > > Although I have been in Prolific Company for almost 16 years.. > But TYPE_01 (PL2303H) has been discontinued(EOL) for 13 years... > Now can't find this IC(TYPT_01: PL2303H) on the market.. Sure, but we still need to make sure we don't break any working setups using these old devices, so I still need to understand how the older protocols work. > The line"if (spriv->quirks & PL2303_QUIRK_LEGACY)" > you are asking now is not what I wrote... > I don't know why to define it as PL2303_QUIRK_LEGACY. I added that at some point in an attempt to clean up this reverse-engineering driver. You can read it as a TYPE_01 test. > I am mainly responsible for the PL2303 driver > Windows, WinCE, Mac & Android in Prolific. > On the Linux driver side, only when the customer has a problem, > or want to add new features (such as GPIO control, new Baud rate), > I will rewrite the Linux code. > Rewritten Linux code will only be given to the corresponding customer. > > Just like this time, because I want to add PL2303G (TYPE_HXN) to Linux, > I just rewritten the Linux code... > For some definitions in the Linux code, > such as why it is defined as PL2303_QUIRK_LEGACY, > I really don't know very well > > Before rewriting the Linux code, > I can only guess "PL2303_QUIRK_LEGACY" that this refers to the > old PL2303 (PL2303H, TYPE_01).. Right. > After the actual test (I have tested the old PL2303H chip on Linux), > when I plug in the PL2303H (TYPE_01), the Linux code will execute the code: > if (spriv->quirks & PL2303_QUIRK_LEGACY) itinerary code. > So I confirm This "PL2303_QUIRK_LEGACY" of code refers to PL2303H(TYPE_01) Correct, but my question was about bit 0x20 for TYPE_01 devices; why isn't it being as set as for TYPE_HX? > > + if (spriv->type == &pl2303_type_data[TYPE_HXN]) > > + pl2303_vendor_write(serial, TYPE_HXN_FLOWCONTROL_REG, > > + TYPE_HXN_SOFTWAREFLOW_DATA); > > else > > - pl2303_vendor_write(serial, 0x0, 0x61); > > - } else if (I_IXON(tty) && !I_IXANY(tty) && START_CHAR(tty) == 0x11 && > > - STOP_CHAR(tty) == 0x13) { > > - pl2303_vendor_write(serial, 0x0, 0xc0); > > + pl2303_vendor_write(serial, TYPE_HX_01_FLOWCONTROL_REG, > > + TYPE_HX_01_SOFTWAREFLOW_DATA); > > } else { > > - pl2303_vendor_write(serial, 0x0, 0x0); > > + if (spriv->type == &pl2303_type_data[TYPE_HXN]) > > + pl2303_vendor_write(serial, TYPE_HXN_FLOWCONTROL_REG, > > + TYPE_HXN_NOFLOW_DATA); > > + else > > + pl2303_vendor_write(serial, TYPE_HX_01_FLOWCONTROL_REG, > > + TYPE_HX_01_NOFLOW_DATA); > > As already mentioned, the above is hardly readable. When studying the > current driver, I noticed a couple of bugs that I'm preparing fixes for. > > Specifically, we shouldn't be overwriting the entire control register, > which changes the tranceiver suspend mode. Are there similar problems > with not doing bit updates of register 0x0a? > > Either way, rebasing your patches on top of those should allow this to > be cleaned up somewhat. > > > Ans: the three chips TYPE_01 / TYPE_HX / TYPE_HXN have their own independent > flow control Register settings... > What advice do you have for handling here? > > Here I have actually tested the three chips TYPE_01 / TYPE_HX / TYPE_HXN > TYPE_01: PL2303H > TYPE_HX: PL2303HXA/ PL2303XA/ PL2303HXD/PL2303TA/PL2303TB/PL2303RA/ PL2303SA. > TYPE_HXN: PL2303GC, PL2303GS, PL2303GL... > > The test result is OK.. Well, without documentation it is hard to give advice. But the information you provided above, indicates that you should not be overwriting these registers completely for HXN either when updating the flow-control settings. Only the bits 2..4 (and possibly 0..1) should be written. Take a look at the patches I merged for doing this on the older devices. You should be able to use the same helper when updating these registers. https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-next&id=f64c3ab230682e8395a7fbd01f3eb5140c837d4e > > + pl2303_vendor_write(serial, > > + HXN_RESET_DOWN_UPSTREAM_REG, > > + HXN_RESET_DOWN_UPSTREAM_DATA); > > Can you write anything to this register to reset the buffers, or does it > have to be 0? > Ans: It have to reset to 0, please refer to PL2303_Linux\PL2303G_ChipReset.jpg But that jpg shows only bit 0 and 1 being used for data pipe reset. And shouldn't you be writing 0x02 to reset those? > > + else { > > + pl2303_vendor_write(serial, > > + HX_RESET_DOWN_UPSTREAM_REG1, > > + HX_RESET_DOWN_UPSTREAM_DATA); > > + pl2303_vendor_write(serial, > > + HX_RESET_DOWN_UPSTREAM_REG2, > > + HX_RESET_DOWN_UPSTREAM_DATA); > > I assume the older versions allow for the and up and down buffers to be > reset independently? Please name these registers accordingly. > Ans: Yes, reset independently, > please refer to PL2303_Linux\PL2303_TYPE_HX_Reset.jpg > The original code is > /* reset upstream data pipes */ > pl2303_vendor_write(serial, 8, 0); > pl2303_vendor_write(serial, 9, 0); > > You previously suggested that I am not using "magical" constants directly, > Please use defines rather than "magical" Constants. > What advice do you have for handling here? Name register and bit-definitions after what they do. We need code to be clean and mostly self-documenting. In this case, based on the information provided above, you could use #define PL2303_RESET_DOWNSTREAM_PIPE 8 #define PL2303_RESET_UPSTREAM_PIPE 9 for example. As the protocol appears to mandate writing 0 to these registers, it may be ok to keep that as a numerical constant. Johan