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: [RFC,1/1] usb: dwc3: drd: Register a USB role switch From: Heikki Krogerus Message-Id: <20181030140305.71172-1-heikki.krogerus@linux.intel.com> Date: Tue, 30 Oct 2018 17:03:05 +0300 To: Yu Chen Cc: Felipe Balbi , linux-usb@vger.kernel.org List-ID: VGhlIFR5cGUtQyBkcml2ZXJzIHVzZSBVU0Igcm9sZSBzd2l0Y2ggQVBJIHRvIGluZm9ybSB0aGUK c3lzdGVtIGFib3V0IHRoZSBuZWdvdGlhdGVkIGRhdGEgcm9sZSwgc28gcmVnaXN0ZXJpbmcgYSBy b2xlCnN3aXRjaCBpbiB0aGUgRFJEIGNvZGUgaW4gb3JkZXIgdG8gc3VwcG9ydCBwbGF0Zm9ybXMg d2l0aApVU0IgVHlwZS1DIGNvbm5lY3RvcnMuCgpTaWduZWQtb2ZmLWJ5OiBIZWlra2kgS3JvZ2Vy dXMgPGhlaWtraS5rcm9nZXJ1c0BsaW51eC5pbnRlbC5jb20+Ci0tLQpIaSBDaGVuIFl1LAoKVGhp cyBpcyByZWxhdGVkIHRvIHlvdXIgSGlrZXk5NjAgVVNCIHBhdGNoZXMgc2VyaWVzIFsxXS4gSSBj YW4ndCB0ZXN0CnRoaXMgcGF0Y2gsIGJ1dCBJIGRvbid0IHRoaW5rIHRoaXMgcGFydCBzaG91bGQg cmVxdWlyZSBhbnl0aGluZyBlbHNlLgoKQW5kIGFib3V0IHRoZSBkZXZpY2UgZ3JhcGggeW91J2xs IG5lZWQgZm9yIHRoaXMgYW5kIHRoZSBvdGhlcgpjb21wb25lbnRzLCBJIG5vdGljZWQgdGhhdAoK CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jb25uZWN0b3IvdXNiLWNvbm5lY3Rv ci50eHQKCmhhcyBzb21lIG5pY2UgZXhhbXBsZXMuIEkgYmVsaWV2ZSB5b3VyIHBvcnQgY29udHJv bGxlciBkZXZpY2Ugd2lsbCBiZQpvbmUgcmVtb3RlLWVuZHBvaW50IGZvciBkd2MzLCBhbmQgdGhh dCBodWIvbXV4IGRldmljZSBhbm90aGVyLgoKY2hlZXJzLAoKWzFdIGh0dHBzOi8vbGttbC5vcmcv bGttbC8yMDE4LzEwLzI3LzE3OAoKLS0tCiBkcml2ZXJzL3VzYi9kd2MzL2NvcmUuaCB8ICAyICsr CiBkcml2ZXJzL3VzYi9kd2MzL2RyZC5jICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuaCBiL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5o CmluZGV4IDViZmI2MjUzM2UwZi4uOWQyYTIzNjM1NGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Vz Yi9kd2MzL2NvcmUuaAorKysgYi9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuaApAQCAtMjUsNiArMjUs NyBAQAogI2luY2x1ZGUgPGxpbnV4L3VzYi9jaDkuaD4KICNpbmNsdWRlIDxsaW51eC91c2IvZ2Fk Z2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL290Zy5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi9y b2xlLmg+CiAjaW5jbHVkZSA8bGludXgvdWxwaS9pbnRlcmZhY2UuaD4KIAogI2luY2x1ZGUgPGxp bnV4L3BoeS9waHkuaD4KQEAgLTEwNTMsNiArMTA1NCw3IEBAIHN0cnVjdCBkd2MzIHsKIAlzdHJ1 Y3QgZXh0Y29uX2RldgkqZWRldjsKIAlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sJZWRldl9uYjsKIAll bnVtIHVzYl9waHlfaW50ZXJmYWNlCWhzcGh5X21vZGU7CisJc3RydWN0IHVzYl9yb2xlX3N3aXRj aAkqcm9sZV9zdzsKIAogCXUzMgkJCWZsYWRqOwogCXUzMgkJCWlycV9nYWRnZXQ7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9kd2MzL2RyZC5jIGIvZHJpdmVycy91c2IvZHdjMy9kcmQuYwppbmRl eCAyMTgzNzFmOTg1Y2EuLjE3OTVlYTJhNDU3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdj My9kcmQuYworKysgYi9kcml2ZXJzL3VzYi9kd2MzL2RyZC5jCkBAIC00NjMsNiArNDYzLDQ0IEBA IHN0YXRpYyBzdHJ1Y3QgZXh0Y29uX2RldiAqZHdjM19nZXRfZXh0Y29uKHN0cnVjdCBkd2MzICpk d2MpCiAJcmV0dXJuIGVkZXY7CiB9CiAKK3N0YXRpYyBpbnQgZHdjM191c2Jfcm9sZV9zd2l0Y2hf c2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSB1c2Jfcm9sZSByb2xlKQoreworCXUzMiBtb2Rl OworCisJc3dpdGNoIChyb2xlKSB7CisJY2FzZSBVU0JfUk9MRV9IT1NUOgorCQltb2RlID0gRFdD M19HQ1RMX1BSVENBUF9IT1NUOworCQlicmVhazsKKwljYXNlIFVTQl9ST0xFX0RFVklDRToKKwkJ bW9kZSA9IERXQzNfR0NUTF9QUlRDQVBfREVWSUNFOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlt b2RlID0gRFdDM19HQ1RMX1BSVENBUF9PVEc7CisJCWJyZWFrOworCX07CisKKwlkd2MzX3NldF9t b2RlKGRldl9nZXRfZHJ2ZGF0YShkZXYpLCBtb2RlKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGVudW0gdXNiX3JvbGUgZHdjM191c2Jfcm9sZV9zd2l0Y2hfZ2V0KHN0cnVjdCBkZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgZHdjMyAqZHdjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWdu ZWQgbG9uZyBmbGFnczsKKwllbnVtIHVzYl9yb2xlIHJvbGU7CisKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmZHdjLT5sb2NrLCBmbGFncyk7CisJcm9sZSA9IGR3Yy0+Y3VycmVudF9vdGdfcm9sZTsKKwlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkd2MtPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiByb2xl OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9yb2xlX3N3aXRjaF9kZXNjIGR3YzNfcm9s ZV9zd2l0Y2ggPSB7CisJLnNldCA9IGR3YzNfdXNiX3JvbGVfc3dpdGNoX3NldCwKKwkuZ2V0ID0g ZHdjM191c2Jfcm9sZV9zd2l0Y2hfZ2V0LAorfTsKKwogaW50IGR3YzNfZHJkX2luaXQoc3RydWN0 IGR3YzMgKmR3YykKIHsKIAlpbnQgcmV0LCBpcnE7CkBAIC01MTEsNiArNTQ5LDExIEBAIGludCBk d2MzX2RyZF9pbml0KHN0cnVjdCBkd2MzICpkd2MpCiAJCWR3YzNfc2V0X21vZGUoZHdjLCBEV0Mz X0dDVExfUFJUQ0FQX09URyk7CiAJfQogCisJZHdjLT5yb2xlX3N3ID0gdXNiX3JvbGVfc3dpdGNo X3JlZ2lzdGVyKGR3Yy0+ZGV2LCAmZHdjM19yb2xlX3N3aXRjaCk7CisJaWYgKHJldCkgeworCQlk d2MzX2RyZF9leGl0KGR3Yyk7CisJCXJldHVybiBQVFJfRVJSKGR3Yy0+cm9sZV9zdyk7CisJfQog CXJldHVybiAwOwogfQogCkBAIC01NDYsNCArNTg5LDYgQEAgdm9pZCBkd2MzX2RyZF9leGl0KHN0 cnVjdCBkd2MzICpkd2MpCiAKIAlpZiAoIWR3Yy0+ZWRldikKIAkJZnJlZV9pcnEoZHdjLT5vdGdf aXJxLCBkd2MpOworCisJdXNiX3JvbGVfc3dpdGNoX3VucmVnaXN0ZXIoZHdjLT5yb2xlX3N3KTsK IH0K