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: [v4,2/2] usb: typec: ucsi: add firmware flashing support From: Oliver Neukum Message-Id: <1549537730.16571.11.camel@suse.com> Date: Thu, 07 Feb 2019 12:08:50 +0100 To: Ajay Gupta , heikki.krogerus@linux.intel.com Cc: Ajay Gupta , linux-usb@vger.kernel.org List-ID: T24gTWksIDIwMTktMDItMDYgYXQgMTM6MzkgLTA4MDAsIEFqYXkgR3VwdGEgd3JvdGU6Cj4gRnJv bTogQWpheSBHdXB0YSA8YWpheWdAbnZpZGlhLmNvbT4KCkhpLAoKPiAKPiBDQ0d4IGhhcyB0d28g Y29waWVzIG9mIHRoZSBmaXJtd2FyZSBpbiBhZGRpdGlvbiB0byB0aGUgYm9vdGxvYWRlci4KPiBJ ZiB0aGUgZGV2aWNlIGlzIHJ1bm5pbmcgRlcxLCBGVzIgY2FuIGJlIHVwZGF0ZWQgd2l0aCB0aGUg bmV3IHZlcnNpb24uCj4gRHVhbCBmaXJtd2FyZSBtb2RlIGFsbG93cyB0aGUgQ0NHIGRldmljZSB0 byBzdGF5IGluIGEgUEQgY29udHJhY3QgYW5kCj4gc3VwcG9ydCBVU0IgUEQgYW5kIFR5cGUtQyBm dW5jdGlvbmFsaXR5IHdoaWxlIGEgZmlybXdhcmUgdXBkYXRlIGlzIGluCj4gcHJvZ3Jlc3MuCj4g Cj4gRmlyc3Qgd2UgcmVhZCB0aGUgY3VycmVudGx5IGZsYXNoZWQgZmlybXdhcmUgdmVyc2lvbiBv ZiBib3RoCj4gcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGZpcm13YXJlIGFuZCB0aGVuIGNvbXBhcmUg aXQgd2l0aAo+IHZlcnNpb24gb2YgZmlybXdhcmUgZmlsZSB0byBkZXRlcm1pbmUgaWYgZmxhc2hp bmcgaXMgcmVxdWlyZWQuCgpJIGFtIHdvbmRlcmluZyBhYm91dCB0aGUgc2VjdXJpdHkgaW1wbGlj YXRpb25zIG9mIHRoaXMuCllvdSBhcmUgcGVyc2lzdGVudGx5IGNoYW5naW5nIGZpcm13YXJlIG9m IGEgZGV2aWNlLiBJdCBsb29rcwp0byBtZSBsaWtlIHRoZXJlIG91Z2h0IHRvIGJlIGEgY2hlY2sg Zm9yIGNhcGFibGUnKENGQVBfU1lTX1JBV0lPKQppbiB0aGUgZmlybXdhcmUgdXBkYXRlIHBhdGgu Cgo+IENvbW1hbmQgZnJhbWV3b3JrIGlzIGFkZGVkIHRvIHN1cHBvcnQgc2VuZGluZyBjb21tYW5k cyB0byBDQ0d4Cj4gY29udHJvbGxlci4gV2Ugd2FpdCBmb3IgcmVzcG9uc2UgYWZ0ZXIgc2VuZGlu ZyB0aGUgY29tbWFuZCBhbmQgdGhlbgo+IHJlYWQgdGhlIHJlc3BvbnNlIGZyb20gUkFCX1JFU1BP TlNFIHJlZ2lzdGVyLgo+IAo+IEJlbG93IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQsCj4gICAgICAg ICAtIEVOVEVSX0ZMQVNISU5HCj4gICAgICAgICAtIFJFU0VUCj4gICAgICAgICAtIFBEUE9SVF9F TkFCTEUKPiAgICAgICAgIC0gSlVNUF9UT19CT09UCj4gICAgICAgICAtIEZMQVNIX1JPV19SVwo+ ICAgICAgICAgLSBWQUxJREFURV9GVwo+IAo+IENvbW1hbmQgc3BlY2lmaWMgbXV0ZXggbG9jayBp cyBhbHNvIGFkZGVkIHRvIHN5bmMgYmV0d2VlbiBkcml2ZXIKPiBhbmQgdXNlciB0aHJlYWRzLgo+ IAo+IFBEIHBvcnQgbnVtYmVyIGluZm9ybWF0aW9uIGlzIGFkZGVkIHdoaWNoIGlzIHJlcXVpcmVk IHdoaWxlIHNlbmRpbmcKPiBQRF9QT1JUX0VOQUJMRSBjb21tYW5kCj4gCj4gU2lnbmVkLW9mZi1i eTogQWpheSBHdXB0YSA8YWpheWdAbnZpZGlhLmNvbT4KClsuLl0KCj4gK3N0cnVjdCBjY2dfY21k IHsKPiArCXUxNiByZWc7Cj4gKwl1MzIgZGF0YTsKPiArCWludCBsZW47Cj4gKwlpbnQgZGVsYXk7 IC8qIG1zIGRlbGF5IGZvciBjbWQgdGltZW91dCAgKi8KCnVuc2lnbmVkPyBBIG5lZ2F0aXZlIGRl bGF5IGlzIGFuIGludGVyZXN0aW5nIGNvbmNlcHQuCgpbLi5dCgo+ICtzdGF0aWMgaW50IGNjZ19j bWRfcmVzZXQoc3RydWN0IHVjc2lfY2NnICp1YywgYm9vbCBleHRyYV9kZWxheSkKPiArewo+ICsJ c3RydWN0IGNjZ19jbWQgY21kOwo+ICsJdTggKnA7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXAgPSAo dTggKikmY21kLmRhdGE7Cj4gKwljbWQucmVnID0gQ0NHWF9SQUJfUkVTRVRfUkVROwo+ICsJcFsw XSA9IFJFU0VUX1NJRzsKPiArCXBbMV0gPSBDTURfUkVTRVRfREVWOwo+ICsJY21kLmxlbiA9IDI7 Cj4gKwljbWQuZGVsYXkgPSAyMDAwICsgKGV4dHJhX2RlbGF5ID8gMzAwMCA6IDApOwoKVGhpcyBp cyBhIG1heGltdW0sIHJpZ2h0PwpJZiBhIHJlc2V0IGZhaWxzLCB0aGlzIGlzIHZlcnkgYmFkLiBT byB3aHkgbm90IGFsd2F5cyBhbGxvdwp0aGUgbWF4aW11bSB0aW1lb3V0PwoKPiArCW11dGV4X2xv Y2soJnVjLT5sb2NrKTsKPiArCj4gKwlzZXRfYml0KFJFU0VUX1BFTkRJTkcsICZ1Yy0+ZmxhZ3Mp Owo+ICsKPiArCXJldCA9IGNjZ19zZW5kX2NvbW1hbmQodWMsICZjbWQpOwo+ICsJaWYgKHJldCAh PSBSRVNFVF9DT01QTEVURSkKPiArCQlnb3RvIGVycl9jbGVhcl9mbGFnOwo+ICsKPiArCXJldCA9 IDA7Cj4gKwo+ICtlcnJfY2xlYXJfZmxhZzoKPiArCWNsZWFyX2JpdChSRVNFVF9QRU5ESU5HLCAm dWMtPmZsYWdzKTsKPiArCj4gKwltdXRleF91bmxvY2soJnVjLT5sb2NrKTsKPiArCj4gKwlyZXR1 cm4gcmV0Owo+ICt9CgpbLi5dCgo+ICtzdGF0aWMgaW50Cj4gK2NjZ19jbWRfd3JpdGVfZmxhc2hf cm93KHN0cnVjdCB1Y3NpX2NjZyAqdWMsIHUxNiByb3csCj4gKwkJCWNvbnN0IHZvaWQgKmRhdGEs IHU4IGZjbWQpCj4gK3sKPiArCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB1Yy0+Y2xpZW50 Owo+ICsJc3RydWN0IGNjZ19jbWQgY21kOwo+ICsJdTggYnVmW0NDRzRfUk9XX1NJWkUgKyAyXTsK PiArCXU4ICpwOwo+ICsJaW50IHJldDsKPiArCj4gKwkvKiBDb3B5IHRoZSBkYXRhIGludG8gdGhl IGZsYXNoIHJlYWQvd3JpdGUgbWVtb3J5LiAqLwo+ICsJYnVmWzBdID0gUkVHX0ZMQVNIX1JXX01F TSAmIDB4RkY7Cj4gKwlidWZbMV0gPSBSRUdfRkxBU0hfUldfTUVNID4+IDg7CgpXZSBoYXZlIG1h Y3JvcyBmb3IgY29udmVydGluZyBlbmRpYW5uZXNzLiBQbGVhc2UgdXNlIHRoZW0uIFRoYXQgaXMK YSBraW5kIG9mIGdlbmVyaWMgaXNzdWUgd2l0aCB0aGlzIHBhdGNoLgoKPiArCj4gKwltZW1jcHko YnVmICsgMiwgZGF0YSwgQ0NHNF9ST1dfU0laRSk7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmdWMtPmxv Y2spOwo+ICsKPiArCXJldCA9IGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIGJ1ZiwgQ0NHNF9ST1df U0laRSArIDIpOwo+ICsJaWYgKHJldCAhPSBDQ0c0X1JPV19TSVpFICsgMikgewo+ICsJCWRldl9l cnIodWMtPmRldiwgIlJFR19GTEFTSF9SV19NRU0gd3JpdGUgZmFpbCAlZFxuIiwgcmV0KTsKPiAr CQlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IC1FSU87Cj4gKwl9Cj4gKwo+ICsJLyogVXNlIHRoZSBG TEFTSF9ST1dfUkVBRF9XUklURSByZWdpc3RlciB0byB0cmlnZ2VyICovCj4gKwkvKiB3cml0aW5n IG9mIGRhdGEgdG8gdGhlIGRlc2lyZWQgZmxhc2ggcm93ICovCj4gKwlwID0gKHU4ICopJmNtZC5k YXRhOwo+ICsJY21kLnJlZyA9IENDR1hfUkFCX0ZMQVNIX1JPV19SVzsKPiArCXBbMF0gPSBGTEFT SF9TSUc7Cj4gKwlwWzFdID0gZmNtZDsKPiArCXBbMl0gPSByb3cgJiAweEZGOwo+ICsJcFszXSA9 IHJvdyA+PiA4OwoKQWdhaW4uIFRoZSBtYWNyb3MuCgo+ICsJY21kLmxlbiA9IDQ7Cj4gKwljbWQu ZGVsYXkgPSA1MDsKPiArCWlmIChmY21kID09IEZMQVNIX0ZXQ1RfU0lHX1dSX0NNRCkKPiArCQlj bWQuZGVsYXkgKz0gNDAwOwo+ICsJaWYgKHJvdyA9PSA1MTApCj4gKwkJY21kLmRlbGF5ICs9IDIy MDsKPiArCXJldCA9IGNjZ19zZW5kX2NvbW1hbmQodWMsICZjbWQpOwo+ICsKPiArCW11dGV4X3Vu bG9jaygmdWMtPmxvY2spOwo+ICsKPiArCWlmIChyZXQgIT0gQ01EX1NVQ0NFU1MpIHsKPiArCQlk ZXZfZXJyKHVjLT5kZXYsICJ3cml0ZSBmbGFzaCByb3cgZmFpbGVkIHJldD0lZFxuIiwgcmV0KTsK PiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cg==