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: mos7840: Add a product ID for the new product From: Johan Hovold Message-Id: <20181112104052.GF13311@localhost> Date: Mon, 12 Nov 2018 11:40:52 +0100 To: Jackychou Cc: johan@kernel.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, louis@asix.com.tw List-ID: T24gTW9uLCBOb3YgMTIsIDIwMTggYXQgMDM6MTY6MDVQTSArMDgwMCwgSmFja3ljaG91IHdyb3Rl Ogo+IEZyb206IEphY2t5Q2hvdSA8amFja3ljaG91QGFzaXguY29tLnR3Pgo+IAo+IEFkZCBhIG5l dyBQSUQgMHg3ODQzIHRvIHRoZSBkcml2ZXIuCj4gTGV0IHRoZSBuZXcgcHJvZHVjdHMgYmUgYWJs ZSB0byBzZXQgdXAgMyBzZXJpYWwgcG9ydHMgd2l0aCB0aGUgZHJpdmVyLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IEphY2t5Q2hvdSA8amFja3ljaG91QGFzaXguY29tLnR3Pgo+IC0tLQo+ICBkcml2ZXJz L3VzYi9zZXJpYWwvbW9zNzg0MC5jIHwgMjYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAg MSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9tb3M3ODQwLmMgYi9kcml2ZXJzL3VzYi9zZXJp YWwvbW9zNzg0MC5jCj4gaW5kZXggYjQyYmFkODUwOTdhLi43NjY3YjIyZmEyZjcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL21vczc4NDAuYwo+ICsrKyBiL2RyaXZlcnMvdXNiL3Nl cmlhbC9tb3M3ODQwLmMKPiBAQCAtOTQsNiArOTQsNyBAQAo+ICAvKiBUaGUgbmF0aXZlIG1vczc4 NDAvNzgyMCBjb21wb25lbnQgKi8KPiAgI2RlZmluZSBVU0JfVkVORE9SX0lEX01PU0NISVAgICAg ICAgICAgIDB4OTcxMAo+ICAjZGVmaW5lIE1PU0NISVBfREVWSUNFX0lEXzc4NDAgICAgICAgICAg MHg3ODQwCj4gKyNkZWZpbmUgTU9TQ0hJUF9ERVZJQ0VfSURfNzg0MyAgICAgICAgICAweDc4NDMK PiAgI2RlZmluZSBNT1NDSElQX0RFVklDRV9JRF83ODIwICAgICAgICAgIDB4NzgyMAo+ICAjZGVm aW5lIE1PU0NISVBfREVWSUNFX0lEXzc4MTAgICAgICAgICAgMHg3ODEwCj4gIC8qIFRoZSBuYXRp dmUgY29tcG9uZW50IGNhbiBoYXZlIGl0cyB2ZW5kb3IvZGV2aWNlIGlkJ3Mgb3ZlcnJpZGRlbgo+ IEBAIC0xNzYsNiArMTc3LDcgQEAgZW51bSBtb3M3ODQwX2ZsYWcgewo+ICAKPiAgc3RhdGljIGNv bnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7Cj4gIAl7VVNCX0RFVklDRShV U0JfVkVORE9SX0lEX01PU0NISVAsIE1PU0NISVBfREVWSUNFX0lEXzc4NDApfSwKPiArCXtVU0Jf REVWSUNFKFVTQl9WRU5ET1JfSURfTU9TQ0hJUCwgTU9TQ0hJUF9ERVZJQ0VfSURfNzg0Myl9LAo+ ICAJe1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9NT1NDSElQLCBNT1NDSElQX0RFVklDRV9JRF83 ODIwKX0sCj4gIAl7VVNCX0RFVklDRShVU0JfVkVORE9SX0lEX01PU0NISVAsIE1PU0NISVBfREVW SUNFX0lEXzc4MTApfSwKPiAgCXtVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfQkFOREIsIEJBTkRC X0RFVklDRV9JRF9VU085TUwyXzIpfSwKPiBAQCAtMjk4LDcgKzMwMCw3IEBAIHN0YXRpYyBpbnQg bW9zNzg0MF9zZXRfdWFydF9yZWcoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191MTYg cmVnLAo+ICAJdmFsID0gdmFsICYgMHgwMGZmOwo+ICAJLyogRm9yIHRoZSBVQVJUIGNvbnRyb2wg cmVnaXN0ZXJzLCB0aGUgYXBwbGljYXRpb24gbnVtYmVyIG5lZWQKPiAgCSAgIHRvIGJlIE9yJ2Vk ICovCj4gLQlpZiAocG9ydC0+c2VyaWFsLT5udW1fcG9ydHMgPT0gNCkgewo+ICsJaWYgKHBvcnQt PnNlcmlhbC0+bnVtX3BvcnRzID09IDQgfHwgcG9ydC0+c2VyaWFsLT5udW1fcG9ydHMgPT0gMykg ewoKUGxlYXNlIHVzZSBudW1fcG9ydHMgPiAyIGhlcmUuCgo+ICAJCXZhbCB8PSAoKF9fdTE2KXBv cnQtPnBvcnRfbnVtYmVyICsgMSkgPDwgODsKPiAgCX0gZWxzZSB7Cj4gIAkJaWYgKHBvcnQtPnBv cnRfbnVtYmVyID09IDApIHsKPiBAQCAtMzMyLDcgKzMzNCw3IEBAIHN0YXRpYyBpbnQgbW9zNzg0 MF9nZXRfdWFydF9yZWcoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgX191MTYgcmVnLAo+ ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAgCS8qIFd2YWwgIGlzIHNhbWUgYXMgYXBwbGljYXRp b24gbnVtYmVyICovCj4gLQlpZiAocG9ydC0+c2VyaWFsLT5udW1fcG9ydHMgPT0gNCkgewo+ICsJ aWYgKHBvcnQtPnNlcmlhbC0+bnVtX3BvcnRzID09IDQgfHwgcG9ydC0+c2VyaWFsLT5udW1fcG9y dHMgPT0gMykgewoKU2FtZSBoZXJlLgoKPiAgCQlXdmFsID0gKChfX3UxNilwb3J0LT5wb3J0X251 bWJlciArIDEpIDw8IDg7Cj4gIAl9IGVsc2Ugewo+ICAJCWlmIChwb3J0LT5wb3J0X251bWJlciA9 PSAwKSB7Cj4gQEAgLTIwNzEsOSArMjA3MywxMiBAQCBzdGF0aWMgaW50IG1vczc4NDBfcHJvYmUo c3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKPiAgCQkJVkVORE9SX1JFQURfTEVOR1RILCBNT1Nf V0RSX1RJTUVPVVQpOwo+ICAKPiAgCS8qIEZvciBhIE1DUzc4NDAgZGV2aWNlIEdQSU8wIG11c3Qg YmUgc2V0IHRvIDEgKi8KPiAtCWlmIChidWZbMF0gJiAweDAxKQo+IC0JCWRldmljZV90eXBlID0g TU9TQ0hJUF9ERVZJQ0VfSURfNzg0MDsKPiAtCWVsc2UgaWYgKG1vczc4MTBfY2hlY2soc2VyaWFs KSkKPiArCWlmIChidWZbMF0gJiAweDAxKSB7Cj4gKwkJaWYgKHByb2R1Y3QgPT0gTU9TQ0hJUF9E RVZJQ0VfSURfNzg0MykKPiArCQkJZGV2aWNlX3R5cGUgPSBNT1NDSElQX0RFVklDRV9JRF83ODQz OwoKV2hhdCBhYm91dCA3ODQzIGRldmljZXMgdGhhdCB1c2UgYSBkaWZmZXJlbnQgUElEPyBJcyB0 aGVyZSBhIHJlbGlhYmxlCndheSB0byBkZXRlY3QgdGhlIHR5cGUgd2l0aG91dCByZWx5aW5nIG9u IFBJRD8KCk90aGVyd2lzZSwgdGhlcmUncyBubyBwb2ludCBpbiB2ZXJpZnlpbmcgR1BJTzAgZm9y IHRoZXNlIG9uZXMuCgo+ICsJCWVsc2UKPiArCQkJZGV2aWNlX3R5cGUgPSBNT1NDSElQX0RFVklD RV9JRF83ODQwOwo+ICsJfSBlbHNlIGlmIChtb3M3ODEwX2NoZWNrKHNlcmlhbCkpCgpOaXQ6IGlm IHlvdSBhZGQgYnJhY2VzIHRvIG9uZSBvZiB0aGUgYnJhbmNoZXMgeW91IG5lZWQgdG8gYWRkIGl0 IHRvIGFsbApvZiB0aGVtLgoKPiAgCQlkZXZpY2VfdHlwZSA9IE1PU0NISVBfREVWSUNFX0lEXzc4 MTA7Cj4gIAllbHNlCj4gIAkJZGV2aWNlX3R5cGUgPSBNT1NDSElQX0RFVklDRV9JRF83ODIwOwo+ IEBAIC0yMDkxLDcgKzIwOTYsMTAgQEAgc3RhdGljIGludCBtb3M3ODQwX2NhbGNfbnVtX3BvcnRz KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsCj4gIAlpbnQgZGV2aWNlX3R5cGUgPSAodW5zaWdu ZWQgbG9uZyl1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7Cj4gIAlpbnQgbnVtX3BvcnRzOwo+ ICAKPiAtCW51bV9wb3J0cyA9IChkZXZpY2VfdHlwZSA+PiA0KSAmIDB4MDAwRjsKPiArCWlmIChk ZXZpY2VfdHlwZSA9PSBNT1NDSElQX0RFVklDRV9JRF83ODQzKQo+ICsJCW51bV9wb3J0cyA9IDM7 Cj4gKwllbHNlCj4gKwkJbnVtX3BvcnRzID0gKGRldmljZV90eXBlID4+IDQpICYgMHgwMDBGOwo+ ICAKPiAgCS8qCj4gIAkgKiBudW1fcG9ydHMgaXMgY3VycmVudGx5IG5ldmVyIHplcm8gYXMgZGV2 aWNlX3R5cGUgaXMgb25lIG9mCj4gQEAgLTIxNDYsNyArMjE1NCw4IEBAIHN0YXRpYyBpbnQgbW9z Nzg0MF9wb3J0X3Byb2JlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCj4gIAkJbW9zNzg0 MF9wb3J0LT5TcFJlZ09mZnNldCA9IDB4MDsKPiAgCQltb3M3ODQwX3BvcnQtPkNvbnRyb2xSZWdP ZmZzZXQgPSAweDE7Cj4gIAkJbW9zNzg0MF9wb3J0LT5EY3JSZWdPZmZzZXQgPSAweDQ7Cj4gLQl9 IGVsc2UgaWYgKChtb3M3ODQwX3BvcnQtPnBvcnRfbnVtID09IDIpICYmIChzZXJpYWwtPm51bV9w b3J0cyA9PSA0KSkgewo+ICsJfSBlbHNlIGlmICgobW9zNzg0MF9wb3J0LT5wb3J0X251bSA9PSAy KSAmJgo+ICsJCSAgICgoc2VyaWFsLT5udW1fcG9ydHMgPT0gNCkgfHwgKHNlcmlhbC0+bnVtX3Bv cnRzID09IDMpKSkgewo+ICAJCW1vczc4NDBfcG9ydC0+U3BSZWdPZmZzZXQgPSAweDg7Cj4gIAkJ bW9zNzg0MF9wb3J0LT5Db250cm9sUmVnT2Zmc2V0ID0gMHg5Owo+ICAJCW1vczc4NDBfcG9ydC0+ RGNyUmVnT2Zmc2V0ID0gMHgxNjsKPiBAQCAtMjE1NCw3ICsyMTYzLDggQEAgc3RhdGljIGludCBt b3M3ODQwX3BvcnRfcHJvYmUoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKPiAgCQltb3M3 ODQwX3BvcnQtPlNwUmVnT2Zmc2V0ID0gMHhhOwo+ICAJCW1vczc4NDBfcG9ydC0+Q29udHJvbFJl Z09mZnNldCA9IDB4YjsKPiAgCQltb3M3ODQwX3BvcnQtPkRjclJlZ09mZnNldCA9IDB4MTk7Cj4g LQl9IGVsc2UgaWYgKChtb3M3ODQwX3BvcnQtPnBvcnRfbnVtID09IDMpICYmIChzZXJpYWwtPm51 bV9wb3J0cyA9PSA0KSkgewo+ICsJfSBlbHNlIGlmICgobW9zNzg0MF9wb3J0LT5wb3J0X251bSA9 PSAzKSAmJgo+ICsJCSAgICgoc2VyaWFsLT5udW1fcG9ydHMgPT0gNCkgfHwgKHNlcmlhbC0+bnVt X3BvcnRzID09IDMpKSkgewo+ICAJCW1vczc4NDBfcG9ydC0+U3BSZWdPZmZzZXQgPSAweGE7Cj4g IAkJbW9zNzg0MF9wb3J0LT5Db250cm9sUmVnT2Zmc2V0ID0gMHhiOwo+ICAJCW1vczc4NDBfcG9y dC0+RGNyUmVnT2Zmc2V0ID0gMHgxOTsKClRoaXMgaXMgZ2V0dGluZyByYXRoZXIgdWdseS4gQ2Fu J3QgeW91IGNsZWFuIHVwIHRoZSBjdXJyZW50IGNvZGUgc28gdGhhdAppdCBjb3ZlcnMgeW91ciBk ZXZpY2Ugd2l0aG91dCB0aGUgbmVlZCBvZiBzdWNoIGNoYW5nZXMgZmlyc3Q/IAoKRnJvbSB0aGUg bG9va3Mgb2YgaXQsIHRoZSBvbmx5IHJlYXNvbiBmb3IgdGhlIGFib3ZlIGlzIHRvIG1hcCB0aGUK b2Zmc2V0cyBmb3IgcG9ydCAyIGluIHRoZSAyLXBvcnQgY2FzZSB0byB0aGUgb2Zmc2V0cyBvZiBw b3J0IDMuIEl0IHdvdWxkCmJlIG1vcmUgc3RyYWlnaHQtZm9yd2FyZCB0byBoYW5kbGUgdGhhdCBw YXJ0aWN1bGFyIGNhc2Ugc2VwYXJhdGVseS4KClRoaXMgYWxzbyByZWxhdGVzIHRvIHRoZSBzZXQv Z2V0X3VhcnRfcmVnIGZ1bmN0aW9ucyBhYm92ZSwgd2hpY2ggYWxzbwpzaG91bGQgaGFuZGxlIHRo ZSAyLXBvcnQgY2FzZSBzcGVjaWZpY2FsbHkgaW5zdGVhZC4KClRoYW5rcywKSm9oYW4K 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=-8.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED, 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 22BAEC43441 for ; Mon, 12 Nov 2018 10:41:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C1A3F2087A for ; Mon, 12 Nov 2018 10:41:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="N1bNWxHh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C1A3F2087A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728680AbeKLUdk (ORCPT ); Mon, 12 Nov 2018 15:33:40 -0500 Received: from mail-lj1-f193.google.com ([209.85.208.193]:43574 "EHLO mail-lj1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726161AbeKLUdk (ORCPT ); Mon, 12 Nov 2018 15:33:40 -0500 Received: by mail-lj1-f193.google.com with SMTP id g26-v6so7128272lja.10; Mon, 12 Nov 2018 02:40:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=pkHn4UzoxdE46JJXKjXG/YzynWv85GLf8d7cvwmEPnk=; b=N1bNWxHhxxfzeTAAB+kIN00d5INood4n/n3WEWAwMxUwc/MFjeXc1UyiByT+cotuLI BOCv9B9CTXHuSPg3I9pnV0s8Sqo6UkuVKMBrnlYEqXozT2raaSTm/yEZsXVsjf4wWyML QLubd80vRvIOktgYjNwV5wIoRTnSIlDIDRfFJgmMTpuD+9SJsOYBfwzt8SA7scv2XTee nGwNJSohIjAkVbfLZ0hfAAAvK79jMRisdn5fSD3sJRRDn4pTcjEO+kKd1+r6DzkOITuw Vd1sC+lVJRaeBsQrI4n6C5twtC39yJnLbgefUbBS41bcLh+ljbpeuRM9LBPJRH5no6RX 8e7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=pkHn4UzoxdE46JJXKjXG/YzynWv85GLf8d7cvwmEPnk=; b=uezjqjqIRHYm0LfVfh1bnGBEkG7ITowynrvqhrhSMX808JAXIXL6QSkEAAbhULDjNP rNVnkydhf5UXZt/im797gNyCVO83RQ+CXjzdErJKicrWMtFQmJCVdbNDNRFmgLr5wcXd yYUxAB8NMdWdWhKhS9JBBF4n/HTWWF+SBU9bYJ/QMGIcNo2EmuMvJ61kBTBYe/cGXTgf Gz3Xf9+35Ei4O9JaJoQut/VET3mT9oARy+rzEExucinLZXxf4lo7U/k//D44u2V9QcNu KOowyCy/5O6BwNvR/SrsamGTlqruuwXx4+ZGbx+8+hH5LRelJqtz9u0S2YPB8fsGzBSN LjUw== X-Gm-Message-State: AGRZ1gLD3KeT6wpw0GG1LQ93T8S7icAw8MslBHnIfdJ6YLI7lQ9Uu5MA PgecZ2ePquQXUqX+mhEXPIU= X-Google-Smtp-Source: AJdET5cmKCOPn9b1tUJtMohvqJptvYhqpxRuxDDEqJVrbt8Mw12avI9NQs6kQ4X35YFWzOeONfFmmQ== X-Received: by 2002:a2e:4819:: with SMTP id v25-v6mr370080lja.2.1542019257930; Mon, 12 Nov 2018 02:40:57 -0800 (PST) Received: from xi.terra (c-74bee655.07-184-6d6c6d4.bbcust.telenor.se. [85.230.190.116]) by smtp.gmail.com with ESMTPSA id r69sm3121373lfi.15.2018.11.12.02.40.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Nov 2018 02:40:57 -0800 (PST) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1gM9eG-0006VO-KA; Mon, 12 Nov 2018 11:40:52 +0100 Date: Mon, 12 Nov 2018 11:40:52 +0100 From: Johan Hovold To: Jackychou Cc: johan@kernel.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, louis@asix.com.tw Subject: Re: [PATCH] USB: serial: mos7840: Add a product ID for the new product Message-ID: <20181112104052.GF13311@localhost> References: <20181112071605.7014-1-jackychou@asix.com.tw> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181112071605.7014-1-jackychou@asix.com.tw> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 12, 2018 at 03:16:05PM +0800, Jackychou wrote: > From: JackyChou > > Add a new PID 0x7843 to the driver. > Let the new products be able to set up 3 serial ports with the driver. > > Signed-off-by: JackyChou > --- > drivers/usb/serial/mos7840.c | 26 ++++++++++++++++++-------- > 1 file changed, 18 insertions(+), 8 deletions(-) > > diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c > index b42bad85097a..7667b22fa2f7 100644 > --- a/drivers/usb/serial/mos7840.c > +++ b/drivers/usb/serial/mos7840.c > @@ -94,6 +94,7 @@ > /* The native mos7840/7820 component */ > #define USB_VENDOR_ID_MOSCHIP 0x9710 > #define MOSCHIP_DEVICE_ID_7840 0x7840 > +#define MOSCHIP_DEVICE_ID_7843 0x7843 > #define MOSCHIP_DEVICE_ID_7820 0x7820 > #define MOSCHIP_DEVICE_ID_7810 0x7810 > /* The native component can have its vendor/device id's overridden > @@ -176,6 +177,7 @@ enum mos7840_flag { > > static const struct usb_device_id id_table[] = { > {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7840)}, > + {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7843)}, > {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, > {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7810)}, > {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USO9ML2_2)}, > @@ -298,7 +300,7 @@ static int mos7840_set_uart_reg(struct usb_serial_port *port, __u16 reg, > val = val & 0x00ff; > /* For the UART control registers, the application number need > to be Or'ed */ > - if (port->serial->num_ports == 4) { > + if (port->serial->num_ports == 4 || port->serial->num_ports == 3) { Please use num_ports > 2 here. > val |= ((__u16)port->port_number + 1) << 8; > } else { > if (port->port_number == 0) { > @@ -332,7 +334,7 @@ static int mos7840_get_uart_reg(struct usb_serial_port *port, __u16 reg, > return -ENOMEM; > > /* Wval is same as application number */ > - if (port->serial->num_ports == 4) { > + if (port->serial->num_ports == 4 || port->serial->num_ports == 3) { Same here. > Wval = ((__u16)port->port_number + 1) << 8; > } else { > if (port->port_number == 0) { > @@ -2071,9 +2073,12 @@ static int mos7840_probe(struct usb_serial *serial, > VENDOR_READ_LENGTH, MOS_WDR_TIMEOUT); > > /* For a MCS7840 device GPIO0 must be set to 1 */ > - if (buf[0] & 0x01) > - device_type = MOSCHIP_DEVICE_ID_7840; > - else if (mos7810_check(serial)) > + if (buf[0] & 0x01) { > + if (product == MOSCHIP_DEVICE_ID_7843) > + device_type = MOSCHIP_DEVICE_ID_7843; What about 7843 devices that use a different PID? Is there a reliable way to detect the type without relying on PID? Otherwise, there's no point in verifying GPIO0 for these ones. > + else > + device_type = MOSCHIP_DEVICE_ID_7840; > + } else if (mos7810_check(serial)) Nit: if you add braces to one of the branches you need to add it to all of them. > device_type = MOSCHIP_DEVICE_ID_7810; > else > device_type = MOSCHIP_DEVICE_ID_7820; > @@ -2091,7 +2096,10 @@ static int mos7840_calc_num_ports(struct usb_serial *serial, > int device_type = (unsigned long)usb_get_serial_data(serial); > int num_ports; > > - num_ports = (device_type >> 4) & 0x000F; > + if (device_type == MOSCHIP_DEVICE_ID_7843) > + num_ports = 3; > + else > + num_ports = (device_type >> 4) & 0x000F; > > /* > * num_ports is currently never zero as device_type is one of > @@ -2146,7 +2154,8 @@ static int mos7840_port_probe(struct usb_serial_port *port) > mos7840_port->SpRegOffset = 0x0; > mos7840_port->ControlRegOffset = 0x1; > mos7840_port->DcrRegOffset = 0x4; > - } else if ((mos7840_port->port_num == 2) && (serial->num_ports == 4)) { > + } else if ((mos7840_port->port_num == 2) && > + ((serial->num_ports == 4) || (serial->num_ports == 3))) { > mos7840_port->SpRegOffset = 0x8; > mos7840_port->ControlRegOffset = 0x9; > mos7840_port->DcrRegOffset = 0x16; > @@ -2154,7 +2163,8 @@ static int mos7840_port_probe(struct usb_serial_port *port) > mos7840_port->SpRegOffset = 0xa; > mos7840_port->ControlRegOffset = 0xb; > mos7840_port->DcrRegOffset = 0x19; > - } else if ((mos7840_port->port_num == 3) && (serial->num_ports == 4)) { > + } else if ((mos7840_port->port_num == 3) && > + ((serial->num_ports == 4) || (serial->num_ports == 3))) { > mos7840_port->SpRegOffset = 0xa; > mos7840_port->ControlRegOffset = 0xb; > mos7840_port->DcrRegOffset = 0x19; This is getting rather ugly. Can't you clean up the current code so that it covers your device without the need of such changes first? >From the looks of it, the only reason for the above is to map the offsets for port 2 in the 2-port case to the offsets of port 3. It would be more straight-forward to handle that particular case separately. This also relates to the set/get_uart_reg functions above, which also should handle the 2-port case specifically instead. Thanks, Johan