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: ftdi_sio: Add MTP NVM support From: Srinivas Kandagatla Message-Id: <2af30d9e-c48a-0c69-2fee-df564b7d355c@linaro.org> Date: Wed, 20 Jun 2018 10:09:34 +0100 To: Loic Poulain , johan@kernel.org Cc: linux-usb@vger.kernel.org, daniel.thompson@linaro.org List-ID: T3ZlcmFsbCBudm1lbSBzaWRlIGxvb2tzIGdvb2QhCk1pbm9yIG5pdHMgYmVsb3cuCgpPbiAxNC8w Ni8xOCAyMTowOCwgTG9pYyBQb3VsYWluIHdyb3RlOgo+IE1vc3Qgb2YgRlRESSdzIGRldmljZXMg aGF2ZSBhbiBFRVBST00gd2hpY2ggcmVjb3JkcyBGVERJIGRldmljZXMKPiBjb25maWd1cmF0aW9u IHNldHRpbmcgKGUuZy4gdGhlIFZJRCwgUElELCBJL08gY29uZmlnLi4uKSBhbmQgdXNlcgo+IGRh dGEuIEZUMjMwUiBjaGlwIGludGVncmF0ZXMgYSAxMjgtYnl0ZSBlZXByb20sIEZUMjMwWCBhIDIw NDgtYnl0ZQo+IGVlcHJvbS4uLgo+IAo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBGVERJ IEVFUFJPTSByZWFkL3dyaXRlIHZpYSBVU0IgY29udHJvbAo+IHRyYW5zZmVycyBhbmQgcmVnaXN0 ZXIgYSBuZXcgbnZtIGRldmljZSB0byB0aGUgbnZtZW0gY29yZS4KPiAKPiBUaGlzIHBlcm1pdHMg dG8gZXhwb3NlIHRoZSBlZXByb20gYXMgYSBzeXNmcyBmaWxlLCBhbGxvd2luZyB1c2Vyc3BhY2UK PiB0byByZWFkL21vZGlmeSBGVERJIGNvbmZpZ3VyYXRpb24gYW5kIGl0cyB1c2VyIGRhdGEgd2l0 aG91dCBoYXZpbmcgdG8KPiByZWx5IG9uIGEgc3BlY2lmaWMgdXNlcnNwYWNlIFVTQiBkcml2ZXIu Cj4gCj4gTW9yZW92ZXIsIGFueSB1cGNvbWluZyBuZXcgdGVudGF0aXZlIHRvIGFkZCBDQlVTIEdQ SU8gc3VwcG9ydCBjb3VsZAo+IGludGVncmF0ZSBDQlVTIEVFUFJPTSBjb25maWd1cmF0aW9uIHJl YWRpbmcgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lCj4gd2hpY2ggb2YgdGhlIENCVVMgcGlucyBhcmUg YXZhaWxhYmxlIGFzIEdQSU8uCj4gCj4gU2lnbmVkLW9mZi1ieTogTG9pYyBQb3VsYWluIDxsb2lj LnBvdWxhaW5AbGluYXJvLm9yZz4KPiAtLS0KPiAgIGRyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmln ICAgIHwgIDExICsrKysrCj4gICBkcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYyB8IDEwOCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvdXNi L3NlcmlhbC9mdGRpX3Npby5oIHwgIDI4ICsrKysrKysrKysrCj4gICAzIGZpbGVzIGNoYW5nZWQs IDE0NyBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9L Y29uZmlnIGIvZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcKPiBpbmRleCA1MzNmMTI3Li4yZGQy ZjVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCj4gKysrIGIvZHJp dmVycy91c2Ivc2VyaWFsL0tjb25maWcKPiBAQCAtMTgxLDYgKzE4MSwxNyBAQCBjb25maWcgVVNC X1NFUklBTF9GVERJX1NJTwo+ICAgCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVs ZSwgY2hvb3NlIE0gaGVyZTogdGhlCj4gICAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgZnRkaV9z aW8uCj4gICAKPiArY29uZmlnIFVTQl9TRVJJQUxfRlRESV9TSU9fTlZNRU0KPiArICAgICAgICBi b29sICJGVERJIE1UUCBub24tdm9sYXRpbGUgbWVtb3J5IHN1cHBvcnQiCj4gKwlkZXBlbmRzIG9u IFVTQl9TRVJJQUxfRlRESV9TSU8KTG9va3MgaW5jb25zaXN0ZW50IHRhYiBhbmQgc3BhY2VzIGhl cmUuCgo+ICsgICAgICAgIHNlbGVjdCBOVk1FTQo+ICsgICAgICAgIGRlZmF1bHQgeQo/PwoKRG9l cyB0aGF0IG1lYW4gYWxsIHRoZSBGVERJcyBoYXZlIEVFUFJPTT8KCj4gKyAgICAgICAgaGVscAoK PiArCSAgU2F5IHllcyBoZXJlIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgTVRQIG5vbi12b2xhdGls ZSBtZW1vcnkKPiArCSAgcHJlc2VudCBvbiBGVERJLiBNb3N0IG9mIEZUREkncyBkZXZpY2VzIGhh dmUgYW4gRUVQUk9NIHdoaWNoCj4gKwkgIHJlY29yZHMgRlRESSBkZXZpY2UncyBjb25maWd1cmF0 aW9uIHNldHRpbmcgYXMgd2VsbCBhcyB1c2VyCj4gKwkgIGRhdGEuCj4gKwo+ICAgY29uZmlnIFVT Ql9TRVJJQUxfVklTT1IKPiAgIAl0cmlzdGF0ZSAiVVNCIEhhbmRzcHJpbmcgVmlzb3IgLyBQYWxt IG01MHggLyBTb255IENsaWUgRHJpdmVyIgo+ICAgCWhlbHAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwo+ IGluZGV4IDdlYTIyMWQuLjAzYzljNzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFs L2Z0ZGlfc2lvLmMKPiArKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwo+IEBAIC00 MCw2ICs0MCw3IEBACj4gICAjaW5jbHVkZSA8bGludXgvdXNiLmg+Cj4gICAjaW5jbHVkZSA8bGlu dXgvc2VyaWFsLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgo+ICsjaW5jbHVk ZSA8bGludXgvbnZtZW0tcHJvdmlkZXIuaD4KPiAgICNpbmNsdWRlICJmdGRpX3Npby5oIgo+ICAg I2luY2x1ZGUgImZ0ZGlfc2lvX2lkcy5oIgo+ICAgCj4gQEAgLTczLDYgKzc0LDggQEAgc3RydWN0 IGZ0ZGlfcHJpdmF0ZSB7Cj4gICAJdW5zaWduZWQgaW50IGxhdGVuY3k7CQkvKiBsYXRlbmN5IHNl dHRpbmcgaW4gdXNlICovCj4gICAJdW5zaWduZWQgc2hvcnQgbWF4X3BhY2tldF9zaXplOwo+ICAg CXN0cnVjdCBtdXRleCBjZmdfbG9jazsgLyogQXZvaWQgbWVzcyBieSBwYXJhbGxlbCBjYWxscyBv ZiBjb25maWcgaW9jdGwoKSBhbmQgY2hhbmdlX3NwZWVkKCkgKi8KPiArCj4gKwlzdHJ1Y3QgbnZt ZW1fZGV2aWNlICplZXByb207Cj4gICB9Owo+ICAgCj4gICAvKiBzdHJ1Y3QgZnRkaV9zaW9fcXVp cmsgaXMgdXNlZCBieSBkZXZpY2VzIHJlcXVpcmluZyBzcGVjaWFsIGF0dGVudGlvbi4gKi8KPiBA QCAtMTUyOSw2ICsxNTMyLDEwNCBAQCBzdGF0aWMgaW50IGdldF9sc3JfaW5mbyhzdHJ1Y3QgdXNi X3NlcmlhbF9wb3J0ICpwb3J0LAo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gKyNpZiBJU19F TkFCTEVEKENPTkZJR19VU0JfU0VSSUFMX0ZURElfU0lPX05WTUVNKQpJIHRoaW5rIG9ubHkgaWZk ZWYgc2hvdWxkIGJlIE9rYXkgaGVyZSBhcyB0aGlzIEtjb25maWcgaXMganVzdCBib29sCj4gKwoK Li4uCgo+ICtzdGF0aWMgaW50IHJlZ2lzdGVyX2VlcHJvbShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0 ICpwb3J0KQo+ICt7Cj4gKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJp YWxfcG9ydF9kYXRhKHBvcnQpOwo+ICsJc3RydWN0IG52bWVtX2NvbmZpZyBudm1jb25mID0ge307 Cj4gKwo+ICsJc3dpdGNoIChwcml2LT5jaGlwX3R5cGUpIHsKPiArCWNhc2UgRlRYOgo+ICsJCW52 bWNvbmYuc2l6ZSA9IDIwNDg7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEZUMjMyUkw6Cj4gKwkJbnZt Y29uZi5zaXplID0gMTI4Owo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gMDsK PiArCX0KPiArCj4gKwludm1jb25mLndvcmRfc2l6ZSA9IDI7Cj4gKwludm1jb25mLnN0cmlkZSA9 IDI7Cj4gKwludm1jb25mLnJlYWRfb25seSA9IGZhbHNlOwo+ICsJbnZtY29uZi5wcml2ID0gcG9y dDsKPiArCW52bWNvbmYuZGV2ID0gJnBvcnQtPmRldjsKPiArCW52bWNvbmYucmVnX3JlYWQgPSBy ZWFkX2VlcHJvbTsKPiArCW52bWNvbmYucmVnX3dyaXRlID0gd3JpdGVfZWVwcm9tOwo+ICsJbnZt Y29uZi5vd25lciA9IFRISVNfTU9EVUxFOwo+ICsKPiArCXByaXYtPmVlcHJvbSA9IG52bWVtX3Jl Z2lzdGVyKCZudm1jb25mKTsKPiArCWlmIChJU19FUlIocHJpdi0+ZWVwcm9tKSkgewo+ICsJCXBy aXYtPmVlcHJvbSA9IE5VTEw7Cj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwl9Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfZWVwcm9tKHN0cnVjdCB1 c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCj4gK3sKPiArCXN0cnVjdCBmdGRpX3ByaXZhdGUgKnByaXYg PSB1c2JfZ2V0X3NlcmlhbF9wb3J0X2RhdGEocG9ydCk7Cj4gKwo+ICsJaWYgKHByaXYtPmVlcHJv bSkKPiArCQludm1lbV91bnJlZ2lzdGVyKHByaXYtPmVlcHJvbSk7Cj4gK30KPiArCj4gKyNlbmRp ZiAvKiBDT05GSUdfVVNCX1NFUklBTF9GVERJX1NJT19OVk1FTSAqLwo+ICAgCj4gICAvKiBEZXRl cm1pbmUgdHlwZSBvZiBGVERJIGNoaXAgYmFzZWQgb24gVVNCIGNvbmZpZyBhbmQgZGVzY3JpcHRv ci4gKi8KPiAgIHN0YXRpYyB2b2lkIGZ0ZGlfZGV0ZXJtaW5lX3R5cGUoc3RydWN0IHVzYl9zZXJp YWxfcG9ydCAqcG9ydCkKPiBAQCAtMTgxNCw2ICsxOTE1LDEwIEBAIHN0YXRpYyBpbnQgZnRkaV9z aW9fcG9ydF9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQo+ICAgCQlwcml2LT5s YXRlbmN5ID0gMTY7Cj4gICAJd3JpdGVfbGF0ZW5jeV90aW1lcihwb3J0KTsKPiAgIAljcmVhdGVf c3lzZnNfYXR0cnMocG9ydCk7Cj4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19VU0JfU0VSSUFMX0ZU RElfU0lPX05WTUVNKQo+ICsJcmVnaXN0ZXJfZWVwcm9tKHBvcnQpOwoKVXNlcnMgd2lsbCBiZSBj bHVlbGVzcyBpZiB0aGUgcmVnaXN0ZXJfZWVwcm9tIGZhaWxzIGhlcmUuCgoKCj4gKyNlbmRpZgo+ ICsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IEBAIC0xOTMxLDYgKzIwMzYsOSBAQCBzdGF0 aWMgaW50IGZ0ZGlfc2lvX3BvcnRfcmVtb3ZlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQp Cj4gICB7Cj4gICAJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJpdiA9IHVzYl9nZXRfc2VyaWFsX3Bv cnRfZGF0YShwb3J0KTsKPiAgIAo+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfVVNCX1NFUklBTF9G VERJX1NJT19OVk1FTSkKPiArCXVucmVnaXN0ZXJfZWVwcm9tKHBvcnQpOwo+ICsjZW5kaWYKPiAg IAlyZW1vdmVfc3lzZnNfYXR0cnMocG9ydCk7Cj4gICAKPiAgIAlrZnJlZShwcml2KTsKCnRoYW5r cywKc3JpbmkKLS0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5l ICJ1bnN1YnNjcmliZSBsaW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpv cmRvbW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2Vy Lmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo=