From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH i-g-t v3 2/5] igt_kms: Add helpers for watching for sysfs hotplug events Date: Mon, 16 Jan 2017 14:26:50 -0500 Message-ID: <20170116192653.4740-3-lyude@redhat.com> References: <20170116192653.4740-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 223896E4CF for ; Mon, 16 Jan 2017 19:27:09 +0000 (UTC) Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BFF3A81229 for ; Mon, 16 Jan 2017 19:27:09 +0000 (UTC) In-Reply-To: <20170116192653.4740-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBhZGRzIHNvbWUgYmFzaWMgaGVscGVycyBmb3IgY29ubmVjdGluZyB0byB1ZGV2IGFuZCB3 YXRjaGluZyBmb3IKc3lzZnMgaG90cGx1ZyBldmVudHMuCgpDYzogVG9tZXUgVml6b3NvIDx0b21l dUB0b21ldXZpem9zby5uZXQ+ClNpZ25lZC1vZmYtYnk6IEx5dWRlIDxseXVkZUByZWRoYXQuY29t PgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBSZW1vdmUgdW51c2VkIGFyZyBmcm9tIGRvY3VtZW50YXRp b24KQ2hhbmdlcyBzaW5jZSB2MjoKLSBNYWtlIHVkZXZfbW9uaXRvciBleHBsaWNpdCBzbyB0aGF0 IHdlIGNhbiB1c2UgdGhpcyBmb3IgZGV0ZWN0aW5nIEZTTXMKICBmcm9tIHRoZSBDaGFtZWxpdW0g aW4gcnBjIGNhbGxzCi0tLQogbGliL2lndF9rbXMuYyB8IDExMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvaWd0X2ttcy5oIHwg ICA3ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwppbmRleCAyYzVhNmU4Li5kZjUwNDUxIDEw MDY0NAotLS0gYS9saWIvaWd0X2ttcy5jCisrKyBiL2xpYi9pZ3Rfa21zLmMKQEAgLTM4LDYgKzM4 LDEwIEBACiAjZWxpZiBIQVZFX1NZU19LRF9ICiAjaW5jbHVkZSA8c3lzL2tkLmg+CiAjZW5kaWYK KyNpZmRlZiBIQVZFX1VERVYKKyNpbmNsdWRlIDxsaWJ1ZGV2Lmg+CisjaW5jbHVkZSA8cG9sbC5o PgorI2VuZGlmCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKQEAgLTI5 MTcsNiArMjkyMSwxMTMgQEAgdm9pZCBpZ3RfcmVzZXRfY29ubmVjdG9ycyh2b2lkKQogCQkJICAg ICAgImRldGVjdCIpOwogfQogCisjaWZkZWYgSEFWRV9VREVWCisKKy8qKgorICogaWd0X3dhdGNo X2hvdHBsdWc6CisgKgorICogQmVnaW4gbW9uaXRvcmluZyB1ZGV2IGZvciBzeXNmcyBob3RwbHVn IGV2ZW50cy4KKyAqCisgKiBSZXR1cm5zOiBhIHVkZXYgbW9uaXRvciBmb3IgZGV0ZWN0aW5nIGhv dHBsdWdzIG9uCisgKi8KK3N0cnVjdCB1ZGV2X21vbml0b3IgKmlndF93YXRjaF9ob3RwbHVnKHZv aWQpCit7CisJc3RydWN0IHVkZXYgKnVkZXY7CisJc3RydWN0IHVkZXZfbW9uaXRvciAqbW9uOwor CWludCByZXQsIGZsYWdzLCBmZDsKKworCXVkZXYgPSB1ZGV2X25ldygpOworCWlndF9hc3NlcnQo dWRldiAhPSBOVUxMKTsKKworCW1vbiA9IHVkZXZfbW9uaXRvcl9uZXdfZnJvbV9uZXRsaW5rKHVk ZXYsICJ1ZGV2Iik7CisJaWd0X2Fzc2VydChtb24gIT0gTlVMTCk7CisKKwlyZXQgPSB1ZGV2X21v bml0b3JfZmlsdGVyX2FkZF9tYXRjaF9zdWJzeXN0ZW1fZGV2dHlwZShtb24sCisJCQkJCQkJICAg ICAgImRybSIsCisJCQkJCQkJICAgICAgImRybV9taW5vciIpOworCWlndF9hc3NlcnRfZXEocmV0 LCAwKTsKKwlyZXQgPSB1ZGV2X21vbml0b3JfZmlsdGVyX3VwZGF0ZShtb24pOworCWlndF9hc3Nl cnRfZXEocmV0LCAwKTsKKwlyZXQgPSB1ZGV2X21vbml0b3JfZW5hYmxlX3JlY2VpdmluZyhtb24p OworCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKKworCS8qIFNldCB0aGUgZmQgZm9yIHVkZXYgYXMg bm9uIGJsb2NraW5nICovCisJZmQgPSB1ZGV2X21vbml0b3JfZ2V0X2ZkKG1vbik7CisJZmxhZ3Mg PSBmY250bChmZCwgRl9HRVRGTCwgMCk7CisJaWd0X2Fzc2VydChmbGFncyk7CisKKwlmbGFncyB8 PSBPX05PTkJMT0NLOworCWlndF9hc3NlcnRfbmVxKGZjbnRsKGZkLCBGX1NFVEZMLCBmbGFncyks IC0xKTsKKworCXJldHVybiBtb247Cit9CisKKy8qKgorICogaWd0X2hvdHBsdWdfZGV0ZWN0ZWQ6 CisgKiBAbW9uOiBBIHVkZXYgbW9uaXRvciBpbml0aWFsaXplZCB3aXRoICNpZ3Rfd2F0Y2hfaG90 cGx1ZworICogQHRpbWVvdXRfc2VjczogSG93IGxvbmcgdG8gd2FpdCBmb3IgYSBob3RwbHVnIGV2 ZW50IHRvIG9jY3VyLgorICoKKyAqIEFzc2VydCB0aGF0IGEgaG90cGx1ZyBldmVudCB3YXMgcmVj ZWl2ZWQgc2luY2Ugd2UgbGFzdCBjaGVja2VkIHRoZSBtb25pdG9yLgorICoKKyAqIFJldHVybnM6 IHRydWUgaWYgYSBzeXNmcyBob3RwbHVnIGV2ZW50IHdhcyByZWNlaXZlZCwgZmFsc2UgaWYgd2Ug dGltZWQgb3V0CisgKi8KK2Jvb2wgaWd0X2hvdHBsdWdfZGV0ZWN0ZWQoc3RydWN0IHVkZXZfbW9u aXRvciAqbW9uLCBpbnQgdGltZW91dF9zZWNzKQoreworCXN0cnVjdCB1ZGV2X2RldmljZSAqZGV2 OworCWNvbnN0IGNoYXIgKmhvdHBsdWdfdmFsOworCXN0cnVjdCBwb2xsZmQgZmQgPSB7CisJCS5m ZCA9IHVkZXZfbW9uaXRvcl9nZXRfZmQobW9uKSwKKwkJLmV2ZW50cyA9IFBPTExJTgorCX07CisJ Ym9vbCBob3RwbHVnX3JlY2VpdmVkID0gZmFsc2U7CisKKwkvKiBHbyB0aHJvdWdoIGFsbCBvZiB0 aGUgZXZlbnRzIHBlbmRpbmcgb24gdGhlIHVkZXYgbW9uaXRvci4gT25jZSB3ZQorCSAqIHJlY2Vp dmUgYSBob3RwbHVnLCB3ZSBjb250aW51ZSBnb2luZyB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBl dmVudHMKKwkgKiBzbyB0aGF0IHJlZHVuZGFudCBob3RwbHVnIGV2ZW50cyBkb24ndCBjaGFuZ2Ug dGhlIHJlc3VsdHMgb2YgZnV0dXJlCisJICogY2hlY2tzCisJICovCisJd2hpbGUgKCFob3RwbHVn X3JlY2VpdmVkICYmIHBvbGwoJmZkLCAxLCB0aW1lb3V0X3NlY3MgKiAxMDAwKSkgeworCQlkZXYg PSB1ZGV2X21vbml0b3JfcmVjZWl2ZV9kZXZpY2UobW9uKTsKKworCQlob3RwbHVnX3ZhbCA9IHVk ZXZfZGV2aWNlX2dldF9wcm9wZXJ0eV92YWx1ZShkZXYsICJIT1RQTFVHIik7CisJCWlmIChob3Rw bHVnX3ZhbCAmJiBhdG9pKGhvdHBsdWdfdmFsKSA9PSAxKQorCQkJaG90cGx1Z19yZWNlaXZlZCA9 IHRydWU7CisKKwkJdWRldl9kZXZpY2VfdW5yZWYoZGV2KTsKKwl9CisKKwlyZXR1cm4gaG90cGx1 Z19yZWNlaXZlZDsKK30KKworLyoqCisgKiBpZ3RfZmx1c2hfaG90cGx1Z3M6CisgKiBAbW9uOiBB IHVkZXYgbW9uaXRvciBpbml0aWFsaXplZCB3aXRoICNpZ3Rfd2F0Y2hfaG90cGx1ZworICoKKyAq IEdldCByaWQgb2YgYW55IHBlbmRpbmcgaG90cGx1ZyBldmVudHMKKyAqLwordm9pZCBpZ3RfZmx1 c2hfaG90cGx1Z3Moc3RydWN0IHVkZXZfbW9uaXRvciAqbW9uKQoreworCXN0cnVjdCB1ZGV2X2Rl dmljZSAqZGV2OworCisJd2hpbGUgKChkZXYgPSB1ZGV2X21vbml0b3JfcmVjZWl2ZV9kZXZpY2Uo bW9uKSkpCisJCXVkZXZfZGV2aWNlX3VucmVmKGRldik7Cit9CisKKy8qKgorICogaWd0X2NsZWFu dXBfaG90cGx1ZzoKKyAqCisgKiBDbGVhbnVwIHRoZSByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5ICNp Z3Rfd2F0Y2hfaG90cGx1ZworICovCit2b2lkIGlndF9jbGVhbnVwX2hvdHBsdWcoc3RydWN0IHVk ZXZfbW9uaXRvciAqbW9uKQoreworCXN0cnVjdCB1ZGV2ICp1ZGV2ID0gdWRldl9tb25pdG9yX2dl dF91ZGV2KG1vbik7CisKKwl1ZGV2X21vbml0b3JfdW5yZWYobW9uKTsKKwltb24gPSBOVUxMOwor CXVkZXZfdW5yZWYodWRldik7Cit9CisjZW5kaWYKKwogLyoqCiAgKiBrbXN0ZXN0X2dldF92Ymxf ZmxhZzoKICAqIEBwaXBlX2lkOiBQaXBlIHRvIGNvbnZlcnQgdG8gZmxhZyByZXByZXNlbnRhdGlv bi4KZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCmluZGV4IDgxYmU3 N2YuLjcyZWQ2YTMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmgKKysrIGIvbGliL2lndF9rbXMu aApAQCAtNTAyLDUgKzUwMiwxMiBAQCB1aW50MzJfdCBrbXN0ZXN0X2dldF92YmxfZmxhZyh1aW50 MzJfdCBwaXBlX2lkKTsKIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGlndF9rbXNfZ2V0X2Jhc2VfZWRp ZCh2b2lkKTsKIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGlndF9rbXNfZ2V0X2FsdF9lZGlkKHZvaWQp OwogCisjaWZkZWYgSEFWRV9VREVWCitzdHJ1Y3QgdWRldl9tb25pdG9yICppZ3Rfd2F0Y2hfaG90 cGx1Zyh2b2lkKTsKK2Jvb2wgaWd0X2hvdHBsdWdfZGV0ZWN0ZWQoc3RydWN0IHVkZXZfbW9uaXRv ciAqbW9uLAorCQkJICBpbnQgdGltZW91dF9zZWNzKTsKK3ZvaWQgaWd0X2ZsdXNoX2hvdHBsdWdz KHN0cnVjdCB1ZGV2X21vbml0b3IgKm1vbik7Cit2b2lkIGlndF9jbGVhbnVwX2hvdHBsdWcoc3Ry dWN0IHVkZXZfbW9uaXRvciAqbW9uKTsKKyNlbmRpZgogCiAjZW5kaWYgLyogX19JR1RfS01TX0hf XyAqLwotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=