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: [v3,2/2] Embedded USB Debugger (EUD) driver From: Greg KH Message-Id: <20181115230947.GC26568@kroah.com> Date: Thu, 15 Nov 2018 15:09:47 -0800 To: Prakruthi Deepak Heragu Cc: linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, ckadabi@codeaurora.org, tsoni@codeaurora.org, bryanh@codeaurora.org, psodagud@codeaurora.org, rnayak@codeaurora.org, Satya Durga Srinivasu Prabhala List-ID: T24gVGh1LCBOb3YgMTUsIDIwMTggYXQgMTE6MzI6NTRBTSAtMDgwMCwgUHJha3J1dGhpIERlZXBh ayBIZXJhZ3Ugd3JvdGU6Cj4gK3N0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGV1ZF9hdHRyaWJ1dGUg PSB7Cj4gKwkuYXR0ci5uYW1lID0gImVuYWJsZSIsCj4gKwkuYXR0ci5tb2RlID0gMDY0NCwKPiAr CS5zaG93ID0gZXVkX2VuYWJsZV9zaG93LAo+ICsJLnN0b3JlID0gZXVkX2VuYWJsZV9zdG9yZSwK PiArfTsKClBsZWFzZSB1c2U6CglzdGF0aWMgREVWSUNFX0FUVFJfUlcoZW5hYmxlKTsKaW5zdGVh ZCBvZiBvcGVuLWNvZGluZyBhbGwgb2YgdGhhdCBtZXNzLgoKQWxzbyBpdCBtYWtlcyBpdCBzdGF0 aWMsIHRoaXMgc2hvdWxkIG5vdCBiZSBhIGdsb2JhbCBzeW1ib2wuCgo+ICsKPiArc3RhdGljIHZv aWQgZXVkX2V2ZW50X25vdGlmaWVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqZXVkX3dvcmspCj4gK3sK PiArCXN0cnVjdCBldWRfY2hpcCAqY2hpcCA9IGNvbnRhaW5lcl9vZihldWRfd29yaywgc3RydWN0 IGV1ZF9jaGlwLAo+ICsJCQkJCWV1ZF93b3JrKTsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKGNo aXAtPmludF9zdGF0dXMgPT0gRVVEX0lOVF9WQlVTKSB7Cj4gKwkJcmV0ID0gZXh0Y29uX3NldF9z dGF0ZV9zeW5jKGNoaXAtPmV4dGNvbiwgY2hpcC0+ZXh0Y29uX2lkLAo+ICsJCQkJCWNoaXAtPnVz Yl9hdHRhY2gpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybjsKPiArCX0gZWxzZSBpZiAoY2hp cC0+aW50X3N0YXR1cyA9PSBFVURfSU5UX0NIR1IpIHsKPiArCQlyZXQgPSBleHRjb25fc2V0X3N0 YXRlX3N5bmMoY2hpcC0+ZXh0Y29uLCBjaGlwLT5leHRjb25faWQsCj4gKwkJCQkJY2hpcC0+Y2hn cl9lbmFibGUpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybjsKPiArCX0KPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgdXNiX2F0dGFjaF9kZXRhY2goc3RydWN0IGV1ZF9jaGlwICpjaGlwKQo+ICt7 Cj4gKwl1MzIgcmVnOwo+ICsKPiArCWNoaXAtPmV4dGNvbl9pZCA9IEVYVENPTl9VU0I7Cj4gKwkv KiByZWFkIGN0bF9vdXRfMVs0XSB0byBmaW5kIFVTQiBhdHRhY2ggb3IgZGV0YWNoIGV2ZW50ICov Cj4gKwlyZWcgPSByZWFkbF9yZWxheGVkKGNoaXAtPmV1ZF9yZWdfYmFzZSArIEVVRF9SRUdfQ1RM X09VVF8xKTsKPiArCWlmIChyZWcgJiBCSVQoNCkpCj4gKwkJY2hpcC0+dXNiX2F0dGFjaCA9IHRy dWU7Cj4gKwllbHNlCj4gKwkJY2hpcC0+dXNiX2F0dGFjaCA9IGZhbHNlOwo+ICsKPiArCXNjaGVk dWxlX3dvcmsoJmNoaXAtPmV1ZF93b3JrKTsKPiArCj4gKwkvKiBzZXQgYW5kIGNsZWFyIHZidXNf aW50X2NsclswXSB0byBjbGVhciBpbnRlcnJ1cHQgKi8KPiArCXdyaXRlbF9yZWxheGVkKEJJVCgw KSwgY2hpcC0+ZXVkX3JlZ19iYXNlICsgRVVEX1JFR19WQlVTX0lOVF9DTFIpOwo+ICsJLyogRW5z dXJlIFJlZ2lzdGVyIFdyaXRlcyBDb21wbGV0ZSAqLwo+ICsJd21iKCk7Cj4gKwl3cml0ZWxfcmVs YXhlZCgwLCBjaGlwLT5ldWRfcmVnX2Jhc2UgKyBFVURfUkVHX1ZCVVNfSU5UX0NMUik7Cj4gK30K PiArCj4gK3N0YXRpYyB2b2lkIGNoZ3JfZW5hYmxlX2Rpc2FibGUoc3RydWN0IGV1ZF9jaGlwICpj aGlwKQo+ICt7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCWNoaXAtPmV4dGNvbl9pZCA9IEVYVENPTl9D SEdfVVNCX1NEUDsKPiArCS8qIHJlYWQgY3RsX291dF8xWzZdIHRvIGZpbmQgY2hhcmdlciBlbmFi bGUgb3IgZGlzYWJsZSBldmVudCAqLwo+ICsJcmVnID0gcmVhZGxfcmVsYXhlZChjaGlwLT5ldWRf cmVnX2Jhc2UgKyBFVURfUkVHX0NUTF9PVVRfMSk7Cj4gKwlpZiAocmVnICYgQklUKDYpKQo+ICsJ CWNoaXAtPmNoZ3JfZW5hYmxlID0gdHJ1ZTsKPiArCWVsc2UKPiArCQljaGlwLT5jaGdyX2VuYWJs ZSA9IGZhbHNlOwo+ICsKPiArCXNjaGVkdWxlX3dvcmsoJmNoaXAtPmV1ZF93b3JrKTsKPiArCj4g KwkvKiBzZXQgYW5kIGNsZWFyIGNoZ3JfaW50X2NsclswXSB0byBjbGVhciBpbnRlcnJ1cHQgKi8K PiArCXdyaXRlbF9yZWxheGVkKEJJVCgwKSwgY2hpcC0+ZXVkX3JlZ19iYXNlICsgRVVEX1JFR19D SEdSX0lOVF9DTFIpOwo+ICsJLyogRW5zdXJlIFJlZ2lzdGVyIFdyaXRlcyBDb21wbGV0ZSAqLwo+ ICsJd21iKCk7Cj4gKwl3cml0ZWxfcmVsYXhlZCgwLCBjaGlwLT5ldWRfcmVnX2Jhc2UgKyBFVURf UkVHX0NIR1JfSU5UX0NMUik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHBldF9ldWQoc3RydWN0 IGV1ZF9jaGlwICpjaGlwKQo+ICt7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCS8qIHJlYWQgc3dfYXR0 YWNoX2RldFswXSB0byBmaW5kIGF0dGFjaC9kZXRhY2ggZXZlbnQgKi8KPiArCXJlZyA9IHJlYWRs X3JlbGF4ZWQoY2hpcC0+ZXVkX3JlZ19iYXNlICsgRVVEX1JFR19TV19BVFRBQ0hfREVUKTsKPiAr CWlmIChyZWcgJiBCSVQoMCkpIHsKPiArCQkvKiBEZXRhY2ggJiBBdHRhY2ggcGV0IGZvciBFVUQg Ki8KPiArCQl3cml0ZWxfcmVsYXhlZCgwLCBjaGlwLT5ldWRfcmVnX2Jhc2UgKyBFVURfUkVHX1NX X0FUVEFDSF9ERVQpOwo+ICsJCS8qIEVuc3VyZSBSZWdpc3RlciBXcml0ZXMgQ29tcGxldGUgKi8K PiArCQl3bWIoKTsKPiArCQkvKiBEZWxheSB0byBtYWtlIHN1cmUgZGV0YWNoIHBldCBpcyBkb25l IGJlZm9yZSBhdHRhY2ggcGV0ICovCj4gKwkJdWRlbGF5KDEwMCk7Cj4gKwkJd3JpdGVsX3JlbGF4 ZWQoQklUKDApLCBjaGlwLT5ldWRfcmVnX2Jhc2UgKwo+ICsJCQkJCUVVRF9SRUdfU1dfQVRUQUNI X0RFVCk7Cj4gKwkJLyogRW5zdXJlIFJlZ2lzdGVyIFdyaXRlcyBDb21wbGV0ZSAqLwo+ICsJCXdt YigpOwo+ICsJfSBlbHNlIHsKPiArCQkvKiBBdHRhY2ggcGV0IGZvciBFVUQgKi8KPiArCQl3cml0 ZWxfcmVsYXhlZChCSVQoMCksIGNoaXAtPmV1ZF9yZWdfYmFzZSArCj4gKwkJCQkJRVVEX1JFR19T V19BVFRBQ0hfREVUKTsKPiArCQkvKiBFbnN1cmUgUmVnaXN0ZXIgV3JpdGVzIENvbXBsZXRlICov Cj4gKwkJd21iKCk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyBpcnFyZXR1cm5fdCBoYW5kbGVf ZXVkX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgZXVkX2NoaXAgKmNo aXAgPSBkYXRhOwo+ICsJdTMyIHJlZzsKPiArCj4gKwkvKiByZWFkIHN0YXR1cyByZWdpc3RlciBh bmQgZmluZCBvdXQgd2hpY2ggaW50ZXJydXB0IHRyaWdnZXJlZCAqLwo+ICsJcmVnID0gcmVhZGxf cmVsYXhlZChjaGlwLT5ldWRfcmVnX2Jhc2UgKyBFVURfUkVHX0lOVF9TVEFUVVNfMSk7Cj4gKwlz d2l0Y2ggKHJlZyAmIEVVRF9JTlRfQUxMKSB7Cj4gKwljYXNlIEVVRF9JTlRfVkJVUzoKPiArCQlj aGlwLT5pbnRfc3RhdHVzID0gRVVEX0lOVF9WQlVTOwo+ICsJCXVzYl9hdHRhY2hfZGV0YWNoKGNo aXApOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBFVURfSU5UX0NIR1I6Cj4gKwkJY2hpcC0+aW50X3N0 YXR1cyA9IEVVRF9JTlRfQ0hHUjsKPiArCQljaGdyX2VuYWJsZV9kaXNhYmxlKGNoaXApOwo+ICsJ CWJyZWFrOwo+ICsJY2FzZSBFVURfSU5UX1NBRkVfTU9ERToKPiArCQlwZXRfZXVkKGNoaXApOwo+ ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gSVJRX05PTkU7Cj4gKwl9Cj4gKwly ZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXNtX2V1ZF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZXVkX2NoaXAgKmNo aXA7Cj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiArCWludCByZXQ7Cj4gKwo+ICsJY2hpcCA9 IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmNoaXApLCBHRlBfS0VSTkVMKTsKPiAr CWlmICghY2hpcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwljaGlwLT5kZXYgPSAmcGRl di0+ZGV2Owo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2hpcCk7Cj4gKwo+ICsJcmV0 ID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZwZGV2LT5kZXYsICZldWRfYXR0cmlidXRlKTsKPiArCWlm IChyZXQpCj4gKwkJcmV0dXJuIHJldDsKCllvdSBqdXN0IHJhY2VkIHdpdGggdXNlcnNwYWNlIGFu ZCBsb3N0IDooCgpJc24ndCB0aGVyZSBhIHdheSB0byBhZGQgdGhlIGF0dHJpYnV0ZSB0byB0aGUg cGxhdGZvcm0gZGV2aWNlIGFzIGEgZ3JvdXAKdG8gaGF2ZSBpdCBjb3JyZWN0bHkgYWRkZWQgYnkg dGhlIGRyaXZlciBjb3JlPwoKQWxzbywgeW91IGFyZSBhZGRpbmcgYW4gYXR0cmlidXRlIHRvIGEg c3RydWN0dXJlIHRoYXQgeW91IGRvIG5vdApjb250cm9sL293biwgYXJlIHlvdSBfc3VyZV8geW91 IHdhbnQgdG8gZG8gdGhhdD8gIEl0J3MgYSBiaXQgb2RkIGFuZCB5b3UKZG9uJ3QgcmVhbGx5IGNv bnRyb2wgdGhlIGxpZmV0aW1lIG9mIHRoYXQgZGV2aWNlLgoKCj4gKwo+ICsJY2hpcC0+ZXh0Y29u ID0gZGV2bV9leHRjb25fZGV2X2FsbG9jYXRlKCZwZGV2LT5kZXYsIGV1ZF9leHRjb25fY2FibGUp Owo+ICsJaWYgKElTX0VSUihjaGlwLT5leHRjb24pKQo+ICsJCXJldHVybiBQVFJfRVJSKGNoaXAt PmV4dGNvbik7CgpBcyBhbiBleGFtcGxlIG9mIHRoaXMgcHJvYmxlbSwgdGhlIHN5c2ZzIGZpbGUg aXMgbm93IHRoZXJlIGlmIHRoaXMgd2FzCmFuIGVycm9yLiAgWWV0IHRoYXQgc3lzZnMgZmlsZSBu b3cgbWVhbnMgbm90aGluZyBhbmQgaWYgdXNlcnNwYWNlCnRvdWNoZXMgaXQgYmFkIHRoaW5ncyB3 aWxsIGhhcHBlbi4KClNvIHBsZWFzZSBhdCB0aGUgdmVyeSBsZWFzdCwgcHJvcGVybHkgY2xlYW4g dXAgeW91ciBlcnJvciBwYXRocy4gIEFuZApsb29rIGludG8gZG9pbmcgdGhpcyBjb3JyZWN0bHku Cgp0aGFua3MsCgpncmVnIGstaAo=