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: [5/7] usb: typec: ucsi: add fw update needed check From: Heikki Krogerus Message-Id: <20190118153746.GG17706@kuha.fi.intel.com> Date: Fri, 18 Jan 2019 17:37:46 +0200 To: Ajay Gupta Cc: linux-usb@vger.kernel.org List-ID: T24gVGh1LCBKYW4gMTcsIDIwMTkgYXQgMDU6MTI6MzhQTSAtMDgwMCwgQWpheSBHdXB0YSB3cm90 ZToKPiBUaGlzIHdpbGwgYmUgbmVlZGVkIHRvIGNoZWNrIGlmIGxhdGVzdCBmdyBpcyBhbHJlYWR5 IGZsYXNoZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogQWpheSBHdXB0YSA8YWpheWdAbnZpZGlhLmNv bT4KPiAtLS0KPiAgZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpX2NjZy5jIHwgMTM5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAxIGZpbGUgY2hhbmdlZCwgMTM5IGluc2VydGlv bnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpX2NjZy5j IGIvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpX2NjZy5jCj4gaW5kZXggNWYzNDE5MzRhNWFm Li42MDY5YTlmNjBkMWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3Np X2NjZy5jCj4gKysrIGIvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpX2NjZy5jCj4gQEAgLTks NiArOSw3IEBACj4gICAqLwo+ICAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgo+ICAjaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9pMmMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICAjaW5jbHVkZSA8 bGludXgvcGNpLmg+Cj4gQEAgLTE3LDYgKzE4LDggQEAKPiAgI2luY2x1ZGUgPGFzbS91bmFsaWdu ZWQuaD4KPiAgI2luY2x1ZGUgInVjc2kuaCIKPiAgCj4gK3N0YXRpYyBpbnQgc2Vjb25kYXJ5X2Z3 X21pbl92ZXIgPSA0MTsKPiArbW9kdWxlX3BhcmFtKHNlY29uZGFyeV9md19taW5fdmVyLCBpbnQs IDA2NjApOwo+ICAjZGVmaW5lIENDR1hfUkFCX0RFVklDRV9NT0RFCQkJMHgwMDAwCj4gICNkZWZp bmUgQ0NHWF9SQUJfSU5UUl9SRUcJCQkweDAwMDYKPiAgI2RlZmluZSAgREVWX0lOVAkJCQlCSVQo MCkKPiBAQCAtNjgsNiArNzEsMjcgQEAKPiAgI2RlZmluZSBGVzJfTUVUQURBVEFfUk9XICAgICAg ICAweDFGRQo+ICAjZGVmaW5lIEZXX0NGR19UQUJMRV9TSUdfU0laRQkyNTYKPiAgCj4gK2VudW0g ZW51bV9md19tb2RlIHsKPiArCUJPT1QsICAgLyogYm9vdGxvYWRlciAqLwo+ICsJRlcxLCAgICAv KiBGVyBwYXJ0aXRpb24tMSAqLwo+ICsJRlcyLCAgICAvKiBGVyBwYXJ0aXRpb24tMiAqLwo+ICsJ RldfSU5WQUxJRCwKPiArfTsKPiArCj4gK2VudW0gZW51bV9mbGFzaF9tb2RlIHsKPiArCVNFQ09O REFSWV9CTCwJLyogdXBkYXRlIHNlY29uZGFyeSB1c2luZyBib290bG9hZGVyICovCj4gKwlTRUNP TkRBUlksCS8qIHVwZGF0ZSBzZWNvbmRhcnkgdXNpbmcgcHJpbWFyeSAqLwo+ICsJUFJJTUFSWSwJ LyogdXBkYXRlIHByaW1hcnkgKi8KPiArCUZMQVNIX05PVF9ORUVERUQsCS8qIHVwZGF0ZSBub3Qg cmVxdWlyZWQgKi8KPiArCUZMQVNIX0lOVkFMSUQsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IGNjZ19md19uYW1lc1tdID0gewo+ICsJLyogMHgwMCAqLyAiY2NnX2Jvb3Qu Y3lhY2QiLAo+ICsJLyogMHgwMSAqLyAiY2NnXzIuY3lhY2QiLAo+ICsJLyogMHgwMiAqLyAiY2Nn XzEuY3lhY2QiLAo+ICt9Owo+ICsKPiAgc3RydWN0IGNjZ19kZXZfaW5mbyB7Cj4gIAl1OCBmd19t b2RlOjI7Cj4gIAl1OCB0d29fcGRfcG9ydHM6MjsKPiBAQCAtOTUsNiArMTE5LDIwIEBAIHN0cnVj dCB2ZXJzaW9uX2luZm8gewo+ICAJc3RydWN0IHZlcnNpb25fZm9ybWF0IGFwcDsKPiAgfTsKPiAg Cj4gK3N0cnVjdCBmd19jb25maWdfdGFibGUgewo+ICsJdTMyIGlkZW50aXR5Owo+ICsJdTE2IHRh YmxlX3NpemU7Cj4gKwl1OCBmd2N0X3ZlcnNpb247Cj4gKwl1OCBpc19rZXlfY2hhbmdlOwo+ICsJ dTggZ3VpZFsxNl07Cj4gKwlzdHJ1Y3QgdmVyc2lvbl9mb3JtYXQgYmFzZTsKPiArCXN0cnVjdCB2 ZXJzaW9uX2Zvcm1hdCBhcHA7Cj4gKwl1OCBwcmltYXJ5X2Z3X2RpZ2VzdFszMl07Cj4gKwl1MzIg a2V5X2V4cF9sZW5ndGg7Cj4gKwl1OCBrZXlfbW9kdWx1c1syNTZdOwo+ICsJdTgga2V5X2V4cFs0 XTsKPiArfTsKPiArCj4gIC8qIENDR3ggcmVzcG9uc2UgY29kZXMgKi8KPiAgZW51bSBjY2dfcmVz cF9jb2RlIHsKPiAgCUNNRF9OT19SRVNQICAgICAgICAgICAgID0gMHgwMCwKPiBAQCAtNzM3LDYg Kzc3NSwxMDcgQEAgc3RhdGljIGludCBjY2dfY21kX3ZhbGlkYXRlX2Z3KHN0cnVjdCB1Y3NpX2Nj ZyAqdWMsIHVuc2lnbmVkIGludCBmd2lkKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRp YyBib29sIGNjZ19jaGVja19md192ZXJzaW9uKHN0cnVjdCB1Y3NpX2NjZyAqdWMsIGNvbnN0IGNo YXIgKmZ3X25hbWUsCj4gKwkJCQkgc3RydWN0IHZlcnNpb25fZm9ybWF0ICphcHApCj4gK3sKPiAr CWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwo+ICsJc3RydWN0IGRldmljZSAqZGV2 ID0gdWMtPmRldjsKPiArCXN0cnVjdCBmd19jb25maWdfdGFibGUgZndfY2ZnOwo+ICsJdTMyIGN1 cl92ZXJzaW9uLCBuZXdfdmVyc2lvbjsKPiArCWJvb2wgaXNfbGF0ZXIgPSBmYWxzZTsKPiArCj4g KwlpZiAocmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsIGRldikgIT0gMCkgewo+ICsJCWRl dl9lcnIoZGV2LCAiZXJyb3I6IEZhaWxlZCB0byBvcGVuIGN5YWNkIGZpbGUgJXNcbiIsIGZ3X25h bWUpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogY2hlY2sgaWYg c2lnbmVkIGZ3Cj4gKwkgKiBsYXN0IHBhcnQgb2YgZncgaW1hZ2UgaXMgZncgY2ZnIHRhYmxlIGFu ZCBzaWduYXR1cmUKPiArCSAqLwo+ICsJaWYgKGZ3LT5zaXplIDwgc2l6ZW9mKGZ3X2NmZykgKyBG V19DRkdfVEFCTEVfU0lHX1NJWkUpCj4gKwkJZ290byBub3Rfc2lnbmVkX2Z3Owo+ICsKPiArCW1l bWNweSgodWludDhfdCAqKSZmd19jZmcsIGZ3LT5kYXRhICsgZnctPnNpemUgLQo+ICsJICAgICAg IHNpemVvZihmd19jZmcpIC0gRldfQ0ZHX1RBQkxFX1NJR19TSVpFLCBzaXplb2YoZndfY2ZnKSk7 Cj4gKwo+ICsJaWYgKGZ3X2NmZy5pZGVudGl0eSAhPSAoJ0YnIHwgKCdXJyA8PCA4KSB8ICgnQycg PDwgMTYpIHwgKCdUJyA8PCAyNCkpKSB7Cj4gKwkJZGV2X2luZm8oZGV2LCAibm90IGEgc2lnbmVk IGltYWdlXG4iKTsKPiArCQlnb3RvIG5vdF9zaWduZWRfZnc7Cj4gKwl9Cj4gKwo+ICsJLyogY29t cGFyZSBpbnB1dCB2ZXJzaW9uIHdpdGggRldDVCB2ZXJzaW9uICovCj4gKwljdXJfdmVyc2lvbiA9 IGFwcC0+YnVpbGQgfCAoYXBwLT5wYXRjaCA8PCAxNikgfAo+ICsJCQkoKGFwcC0+bWluIHwgKGFw cC0+bWFqIDw8IDQpKSA8PCAyNCk7Cj4gKwo+ICsJbmV3X3ZlcnNpb24gPSBmd19jZmcuYXBwLmJ1 aWxkIHwgKGZ3X2NmZy5hcHAucGF0Y2ggPDwgMTYpIHwKPiArCQkJKChmd19jZmcuYXBwLm1pbiB8 IChmd19jZmcuYXBwLm1haiA8PCA0KSkgPDwgMjQpOwo+ICsKPiArCWRldl9kYmcoZGV2LCAiY29t cGFyZSBjdXJyZW50ICUwOHggYW5kIG5ldyB2ZXJzaW9uICUwOHhcbiIsCj4gKwkJY3VyX3ZlcnNp b24sIG5ld192ZXJzaW9uKTsKPiArCj4gKwlpZiAobmV3X3ZlcnNpb24gPiBjdXJfdmVyc2lvbikg ewo+ICsJCWRldl9kYmcoZGV2LCAibmV3IGZpcm13YXJlIGZpbGUgdmVyc2lvbiBpcyBsYXRlclxu Iik7Cj4gKwkJaXNfbGF0ZXIgPSB0cnVlOwo+ICsJfSBlbHNlIHsKPiArCQlkZXZfZGJnKGRldiwg Im5ldyBmaXJtd2FyZSBmaWxlIHZlcnNpb24gaXMgc2FtZSBvciBlYXJsaWVyXG4iKTsKPiArCX0K PiArCj4gK25vdF9zaWduZWRfZnc6Cj4gKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKPiArCXJldHVy biBpc19sYXRlcjsKPiArfQo+ICsKPiArc3RhdGljIGludCBjY2dfZndfdXBkYXRlX25lZWRlZChz dHJ1Y3QgdWNzaV9jY2cgKnVjLAo+ICsJCQkJZW51bSBlbnVtX2ZsYXNoX21vZGUgKm1vZGUpCj4g K3sKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IHVjLT5kZXY7Cj4gKwlpbnQgZXJyOwo+ICsJc3Ry dWN0IHZlcnNpb25faW5mbyB2ZXJzaW9uWzNdOwo+ICsKPiArCWVyciA9IGNjZ19yZWFkKHVjLCBD Q0dYX1JBQl9ERVZJQ0VfTU9ERSwgKHU4ICopKCZ1Yy0+aW5mbyksCj4gKwkJICAgICAgIHNpemVv Zih1Yy0+aW5mbykpOwo+ICsJaWYgKGVycikgewo+ICsJCWRldl9lcnIoZGV2LCAicmVhZCBkZXZp Y2UgbW9kZSBmYWlsZWRcbiIpOwo+ICsJCXJldHVybiBlcnI7Cj4gKwl9Cj4gKwo+ICsJZXJyID0g Y2NnX3JlYWQodWMsIENDR1hfUkFCX1JFQURfQUxMX1ZFUiwgKHU4ICopdmVyc2lvbiwKPiArCQkg ICAgICAgc2l6ZW9mKHZlcnNpb24pKTsKPiArCWlmIChlcnIpIHsKPiArCQlkZXZfZXJyKGRldiwg InJlYWQgZGV2aWNlIG1vZGUgZmFpbGVkXG4iKTsKPiArCQlyZXR1cm4gZXJyOwo+ICsJfQo+ICsK PiArCWRldl9kYmcoZGV2LCAiY2hlY2sgaWYgZncgdXBncmFkZSByZXF1aXJlZCAleCAleCAleCAl eCAleCAleCAleCAleFxuIiwKPiArCQl2ZXJzaW9uW0ZXMV0uYmFzZS5idWlsZCwgdmVyc2lvbltG VzFdLmJhc2UucGF0Y2gsCj4gKwkJdmVyc2lvbltGVzFdLmJhc2UubWluLCB2ZXJzaW9uW0ZXMV0u YmFzZS5tYWosCj4gKwkJdmVyc2lvbltGVzJdLmFwcC5idWlsZCwgdmVyc2lvbltGVzJdLmFwcC5w YXRjaCwKPiArCQl2ZXJzaW9uW0ZXMl0uYXBwLm1pbiwgdmVyc2lvbltGVzJdLmFwcC5tYWopOwo+ ICsKPiArCWlmIChtZW1jbXAoJnZlcnNpb25bRlcxXSwgIlwwXDBcMFwwXDBcMFwwXDAiLAo+ICsJ CSAgIHNpemVvZihzdHJ1Y3QgdmVyc2lvbl9pbmZvKSkgPT0gMCkgewo+ICsJCWRldl9pbmZvKGRl diwgInNlY29uZGFyeSBmdyBpcyBub3QgZmxhc2hlZFxuIik7Cj4gKwkJKm1vZGUgPSBTRUNPTkRB UllfQkw7Cj4gKwl9IGVsc2UgaWYgKHZlcnNpb25bRlcxXS5iYXNlLmJ1aWxkIDwgc2Vjb25kYXJ5 X2Z3X21pbl92ZXIpIHsKPiArCQlkZXZfaW5mbyhkZXYsICJzZWNvbmRhcnkgZncgdmVyc2lvbiBp cyB0b28gbG93ICg8ICVkKVxuIiwKPiArCQkJIHNlY29uZGFyeV9md19taW5fdmVyKTsKPiArCQkq bW9kZSA9IFNFQ09OREFSWTsKPiArCX0gZWxzZSBpZiAobWVtY21wKCZ2ZXJzaW9uW0ZXMl0sICJc MFwwXDBcMFwwXDBcMFwwIiwKPiArCQkgICBzaXplb2Yoc3RydWN0IHZlcnNpb25faW5mbykpID09 IDApIHsKPiArCQlkZXZfaW5mbyhkZXYsICJwcmltYXJ5IGZ3IGlzIG5vdCBmbGFzaGVkXG4iKTsK PiArCQkqbW9kZSA9IFBSSU1BUlk7Cj4gKwl9IGVsc2UgaWYgKGNjZ19jaGVja19md192ZXJzaW9u KHVjLCBjY2dfZndfbmFtZXNbUFJJTUFSWV0sCj4gKwkJICAgJnZlcnNpb25bRlcyXS5hcHApKSB7 Cj4gKwkJZGV2X2luZm8oZGV2LCAiZm91bmQgcHJpbWFyeSBmdyB3aXRoIGxhdGVyIHZlcnNpb25c biIpOwo+ICsJCSptb2RlID0gUFJJTUFSWTsKPiArCX0gZWxzZSB7Cj4gKwkJZGV2X2luZm8oZGV2 LCAic2Vjb25kYXJ5IGFuZCBwcmltYXJ5IGZ3IGFyZSB0aGUgbGF0ZXN0XG4iKTsKPiArCQkqbW9k ZSA9IEZMQVNIX05PVF9ORUVERUQ7Cj4gKwl9Cj4gKwlyZXR1cm4gMDsKPiArfQoKQmVmb3JlIHNl bmRpbmcgYSBuZXcgdmVyc2lvbiwgY2FuIHlvdSBmaXJzdCBleHBsYWluIHdoYXQgYXJlIHlvdQp0 cnlpbmcgdG8gZG8gaGVyZT8KCkkgd291bGQgYXNzdW1lIHRoYXQgeW91IGp1c3Qgd2FudCB0byBy ZWFkIHRoZSB2ZXJzaW9uIG9mIHlvdXIgY3VycmVudApmdywgYW5kIGlmIHRoZXJlIGlzIGEgbmV3 ZXIgdmVyc2lvbiBvZiB0aGUgZmlybXdhcmUgYXZhaWxhYmxlLCB5b3UKdXBncmFkZSBpdCwgYW5k IHRoYXQncyBpdC4KClBlcmhhcHMgSSdtIG1pc3Npbmcgc29tZXRoaW5nPwoKCnRoYW5rcywK