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] ehci-omap: simple suspend implementation From: Andreas Kemnade Message-Id: <20180216171414.8097-1-andreas@kemnade.info> Date: Fri, 16 Feb 2018 18:14:14 +0100 To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-omap@vger.kernel.org, rogerq@ti.com, Discussions about the Letux Kernel Cc: Andreas Kemnade List-ID: VGhpcyBwb3dlcnMgZG93biB0aGUgcGh5IGFuZCBvbiBhIGd0YTA0IGl0IHJlZHVjZXMKc3VzcGVu ZCBjdXJyZW50IGJ5IDEzIG1BLgpGb3IgdW5rbm93biByZWFzb25zIHVzYiBkb2VzIG5vdCBwb3dl ciBvbiBwcm9wZXJseS4KQWxzbyBjYWxsaW5nIHVzYl9waHlfc2h1dGRvd24oKSBoZXJlIGZlZWxz IHdyb25nCmFwcGFyZW50bHkgdGhlIHJlc2V0IGxpbmUgaGFzIHRvIGJlIGFjdGl2YXRlZC4KdXNi X3BoeV9zZXRfc3VzcGVuZCBpcyBub3QgZW5vdWdoIGhlcmUuIFRoZSBwb3dlcgpjb25zdW1wdGlv biBzdGlsbCBzdGF5cyBhcHByb3hpbWF0ZWx5IHRoZSBzYW1lIGFzCndpdGhvdXQgYW55IHBhdGNo LgoKV2l0aCBhIGRldmljZSBjb25uZWN0ZWQgdGhlIGRldmljZSBkb2VzIG5vdCBlbnVtZXJhdGUK YWZ0ZXIgcmVzdW1lLiBBIHJtbW9kIGVoY2ktb21hcCA7IG1vZHByb2JlIGVoY2ktb21hcApkb2Vz IG5vdCBtYWtlIGl0IHJlZW51bWVyYWRlLgpTbyB0aGVyZSBpcyBzdGlsbCBzb21ldGhpbmcgd3Jv bmcgaGVyZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgS2VtbmFkZSA8YW5kcmVhc0BrZW1uYWRl LmluZm8+Ci0tLQogZHJpdmVycy91c2IvaG9zdC9laGNpLW9tYXAuYyB8IDU5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNTcgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0 L2VoY2ktb21hcC5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLW9tYXAuYwppbmRleCA4ZDhiYWZj NzBjMWYuLjBiZTJjY2Y4MTgyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLW9t YXAuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktb21hcC5jCkBAIC0yNjYsNiArMjY2LDU4 IEBAIHN0YXRpYyBpbnQgZWhjaV9oY2Rfb21hcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKIAlyZXR1cm4gMDsKIH0KIAorCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGVo Y2lfb21hcF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXNiX2hjZCAq aGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IG9tYXBfaGNkICpvbWFwID0gKHN0 cnVjdCBvbWFwX2hjZCAqKWhjZF90b19laGNpKGhjZCktPnByaXY7CisJaW50IHJldDsKKwlpbnQg aTsKKworCXJldCA9IGVoY2lfc3VzcGVuZChoY2QsIGZhbHNlKTsKKwlpZiAocmV0KSB7CisJCWRl dl9lcnIoZGV2LCAiZWhjaSBzdXNwZW5kIGZhaWxlZDogJWRcbiIsIHJldCk7CisJCXJldHVybiBy ZXQ7CisJfQorCWZvciAoaSA9IDA7IGkgPCBvbWFwLT5ucG9ydHM7IGkrKykgeworCQlpZiAob21h cC0+cGh5W2ldKQorCQkJdXNiX3BoeV9zaHV0ZG93bihvbWFwLT5waHlbaV0pOworCX0KKwlwbV9y dW50aW1lX3B1dF9zeW5jKGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX21h eWJlX3VudXNlZCBlaGNpX29tYXBfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1 Y3QgdXNiX2hjZCAqaGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IG9tYXBfaGNk ICpvbWFwID0gKHN0cnVjdCBvbWFwX2hjZCAqKWhjZF90b19laGNpKGhjZCktPnByaXY7CisJaW50 IGk7CisKKwlwbV9ydW50aW1lX2dldF9zeW5jKGRldik7CisJLyoKKwkgKiBBbiB1bmRvY3VtZW50 ZWQgImZlYXR1cmUiIGluIHRoZSBPTUFQMyBFSENJIGNvbnRyb2xsZXIsCisJICogY2F1c2VzIHN1 c3BlbmRlZCBwb3J0cyB0byBiZSB0YWtlbiBvdXQgb2Ygc3VzcGVuZCB3aGVuCisJICogdGhlIFVT QkNNRC5SdW4vU3RvcCBiaXQgaXMgY2xlYXJlZCAoZm9yIGV4YW1wbGUgd2hlbgorCSAqIHdlIGRv IGVoY2lfYnVzX3N1c3BlbmQpLgorCSAqIFRoaXMgYnJlYWtzIHN1c3BlbmQtcmVzdW1lIGlmIHRo ZSByb290LWh1YiBpcyBhbGxvd2VkCisJICogdG8gc3VzcGVuZC4gV3JpdGluZyAxIHRvIHRoaXMg dW5kb2N1bWVudGVkIHJlZ2lzdGVyIGJpdAorCSAqIGRpc2FibGVzIHRoaXMgZmVhdHVyZSBhbmQg cmVzdG9yZXMgbm9ybWFsIGJlaGF2aW9yLgorCSAqLworCWVoY2lfd3JpdGUoaGNkLT5yZWdzLCBF SENJX0lOU05SRUcwNCwKKwkJICAgRUhDSV9JTlNOUkVHMDRfRElTQUJMRV9VTlNVU1BFTkQpOwor CisJZm9yIChpID0gMDsgaSA8IG9tYXAtPm5wb3J0czsgaSsrKSB7CisJCWlmIChvbWFwLT5waHlb aV0pIHsKKwkJCXVzYl9waHlfaW5pdChvbWFwLT5waHlbaV0pOworCQkJdXNiX3BoeV9zZXRfc3Vz cGVuZChvbWFwLT5waHlbaV0sIGZhbHNlKTsKKwkJfQorCX0KKworCWVoY2lfcmVzdW1lKGhjZCwg dHJ1ZSk7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IG9tYXBfZWhjaV9kdF9pZHNbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gInRpLGVoY2ktb21hcCIg fSwKIAl7IH0KQEAgLTI3MywxNCArMzI1LDE3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG9tYXBfZWhjaV9kdF9pZHNbXSA9IHsKIAogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwg b21hcF9laGNpX2R0X2lkcyk7CiAKK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhlaGNpX29tYXBf cG1fb3BzLCBlaGNpX29tYXBfc3VzcGVuZCwKKwkJCSBlaGNpX29tYXBfcmVzdW1lKTsKKworCiBz dGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBlaGNpX2hjZF9vbWFwX2RyaXZlciA9IHsKIAku cHJvYmUJCQk9IGVoY2lfaGNkX29tYXBfcHJvYmUsCiAJLnJlbW92ZQkJCT0gZWhjaV9oY2Rfb21h cF9yZW1vdmUsCiAJLnNodXRkb3duCQk9IHVzYl9oY2RfcGxhdGZvcm1fc2h1dGRvd24sCi0JLyou c3VzcGVuZAkJPSBlaGNpX2hjZF9vbWFwX3N1c3BlbmQsICovCi0JLyoucmVzdW1lCQk9IGVoY2lf aGNkX29tYXBfcmVzdW1lLCAqLwogCS5kcml2ZXIgPSB7CiAJCS5uYW1lCQk9IGhjZF9uYW1lLAor CQkucG0JCT0gJmVoY2lfb21hcF9wbV9vcHMsCiAJCS5vZl9tYXRjaF90YWJsZSA9IG9tYXBfZWhj aV9kdF9pZHMsCiAJfQogfTsK