From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH xf86-video-amdgpu 1/3] modesetting: Use helper to fetch drmModeProperty(Blob)s Date: Thu, 22 Feb 2018 18:52:51 +0100 Message-ID: <20180222175253.13842-1-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogRGFuaWVsIE1hcnRpbiA8Y29uc3VtZS5ub2lzZUBnbWFpbC5jb20+CgpSZXBsYWNlIHRo ZSB2YXJpb3VzIGxvb3BzIHRvIGxvb2t1cCBkcm1Nb2RlUHJvcGVydHkoQmxvYilzIGJ5CmludHJv ZHVjaW5nIGhlbHBlciBmdW5jdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgTWFydGluIDxj b25zdW1lLm5vaXNlQGdtYWlsLmNvbT4KCihQb3J0ZWQgZnJvbSB4c2VydmVyIGNvbW1pdCBmNDQ5 MzVjZGI3MzIxYWYyNDJjZTlmMjQyOTc1ZjA5NjgwN2I5N2Y3KQoKU2lnbmVkLW9mZi1ieTogTWlj aGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+Ci0tLQogc3JjL2RybW1vZGVfZGlz cGxheS5jIHwgMTI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RybW1vZGVfZGlzcGxheS5jIGIvc3JjL2RybW1vZGVfZGlzcGxh eS5jCmluZGV4IGRiNGYxNWMyMy4uOThkMjAzOWQwIDEwMDY0NAotLS0gYS9zcmMvZHJtbW9kZV9k aXNwbGF5LmMKKysrIGIvc3JjL2RybW1vZGVfZGlzcGxheS5jCkBAIC0xNDAyLDYgKzE0MDIsNTEg QEAgZHJtbW9kZV9vdXRwdXRfbW9kZV92YWxpZCh4Zjg2T3V0cHV0UHRyIG91dHB1dCwgRGlzcGxh eU1vZGVQdHIgcE1vZGVzKQogCXJldHVybiBNT0RFX09LOwogfQogCitzdGF0aWMgaW50Citrb3V0 cHV0X2dldF9wcm9wX2lkeChpbnQgZmQsIGRybU1vZGVDb25uZWN0b3JQdHIga291dHB1dCwKKyAg ICAgICAgaW50IHR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgaW50IGlkeCA9IC0xOwor CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrb3V0cHV0LT5jb3VudF9wcm9wczsgaSsrKSB7Cisg ICAgICAgIGRybU1vZGVQcm9wZXJ0eVB0ciBwcm9wID0gZHJtTW9kZUdldFByb3BlcnR5KGZkLCBr b3V0cHV0LT5wcm9wc1tpXSk7CisKKyAgICAgICAgaWYgKCFwcm9wKQorICAgICAgICAgICAgY29u dGludWU7CisKKyAgICAgICAgaWYgKGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3AsIHR5cGUpICYm ICFzdHJjbXAocHJvcC0+bmFtZSwgbmFtZSkpCisgICAgICAgICAgICBpZHggPSBpOworCisgICAg ICAgIGRybU1vZGVGcmVlUHJvcGVydHkocHJvcCk7CisKKyAgICAgICAgaWYgKGlkeCA+IC0xKQor ICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGlkeDsKK30KKworc3RhdGlj IGludAora291dHB1dF9nZXRfcHJvcF9pZChpbnQgZmQsIGRybU1vZGVDb25uZWN0b3JQdHIga291 dHB1dCwKKyAgICAgICAgaW50IHR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgaW50IGlk eCA9IGtvdXRwdXRfZ2V0X3Byb3BfaWR4KGZkLCBrb3V0cHV0LCB0eXBlLCBuYW1lKTsKKworICAg IHJldHVybiAoaWR4ID4gLTEpID8ga291dHB1dC0+cHJvcHNbaWR4XSA6IC0xOworfQorCitzdGF0 aWMgZHJtTW9kZVByb3BlcnR5QmxvYlB0cgora291dHB1dF9nZXRfcHJvcF9ibG9iKGludCBmZCwg ZHJtTW9kZUNvbm5lY3RvclB0ciBrb3V0cHV0LCBjb25zdCBjaGFyICpuYW1lKQoreworICAgIGRy bU1vZGVQcm9wZXJ0eUJsb2JQdHIgYmxvYiA9IE5VTEw7CisgICAgaW50IGlkeCA9IGtvdXRwdXRf Z2V0X3Byb3BfaWR4KGZkLCBrb3V0cHV0LCBEUk1fTU9ERV9QUk9QX0JMT0IsIG5hbWUpOworCisg ICAgaWYgKGlkeCA+IC0xKQorICAgICAgICBibG9iID0gZHJtTW9kZUdldFByb3BlcnR5QmxvYihm ZCwga291dHB1dC0+cHJvcF92YWx1ZXNbaWR4XSk7CisKKyAgICByZXR1cm4gYmxvYjsKK30KKwog c3RhdGljIERpc3BsYXlNb2RlUHRyIGRybW1vZGVfb3V0cHV0X2dldF9tb2Rlcyh4Zjg2T3V0cHV0 UHRyIG91dHB1dCkKIHsKIAlkcm1tb2RlX291dHB1dF9wcml2YXRlX3B0ciBkcm1tb2RlX291dHB1 dCA9IG91dHB1dC0+ZHJpdmVyX3ByaXZhdGU7CkBAIC0xNDA5LDI5ICsxNDU0LDE2IEBAIHN0YXRp YyBEaXNwbGF5TW9kZVB0ciBkcm1tb2RlX291dHB1dF9nZXRfbW9kZXMoeGY4Nk91dHB1dFB0ciBv dXRwdXQpCiAJQU1ER1BVRW50UHRyIHBBTURHUFVFbnQgPSBBTURHUFVFbnRQcml2KG91dHB1dC0+ c2Nybik7CiAJaW50IGk7CiAJRGlzcGxheU1vZGVQdHIgTW9kZXMgPSBOVUxMLCBNb2RlOwotCWRy bU1vZGVQcm9wZXJ0eVB0ciBwcm9wczsKIAl4Zjg2TW9uUHRyIG1vbiA9IE5VTEw7CiAKIAlpZiAo IWtvdXRwdXQpCiAJCXJldHVybiBOVUxMOwogCisJZHJtTW9kZUZyZWVQcm9wZXJ0eUJsb2IoZHJt bW9kZV9vdXRwdXQtPmVkaWRfYmxvYik7CisKIAkvKiBsb29rIGZvciBhbiBFRElEIHByb3BlcnR5 ICovCi0JZm9yIChpID0gMDsgaSA8IGtvdXRwdXQtPmNvdW50X3Byb3BzOyBpKyspIHsKLQkJcHJv cHMgPSBkcm1Nb2RlR2V0UHJvcGVydHkocEFNREdQVUVudC0+ZmQsIGtvdXRwdXQtPnByb3BzW2ld KTsKLQkJaWYgKHByb3BzICYmIChwcm9wcy0+ZmxhZ3MgJiBEUk1fTU9ERV9QUk9QX0JMT0IpKSB7 Ci0JCQlpZiAoIXN0cmNtcChwcm9wcy0+bmFtZSwgIkVESUQiKSkgewotCQkJCWlmIChkcm1tb2Rl X291dHB1dC0+ZWRpZF9ibG9iKQotCQkJCQlkcm1Nb2RlRnJlZVByb3BlcnR5QmxvYgotCQkJCQkg ICAgKGRybW1vZGVfb3V0cHV0LT5lZGlkX2Jsb2IpOwotCQkJCWRybW1vZGVfb3V0cHV0LT5lZGlk X2Jsb2IgPQotCQkJCSAgICBkcm1Nb2RlR2V0UHJvcGVydHlCbG9iKHBBTURHUFVFbnQtPmZkLAot CQkJCQkJCSAgIGtvdXRwdXQtPnByb3BfdmFsdWVzCi0JCQkJCQkJICAgW2ldKTsKLQkJCX0KLQkJ fQotCQlpZiAocHJvcHMpCi0JCQlkcm1Nb2RlRnJlZVByb3BlcnR5KHByb3BzKTsKLQl9CisJZHJt bW9kZV9vdXRwdXQtPmVkaWRfYmxvYiA9CisJCWtvdXRwdXRfZ2V0X3Byb3BfYmxvYihwQU1ER1BV RW50LT5mZCwga291dHB1dCwgIkVESUQiKTsKIAogCWlmIChkcm1tb2RlX291dHB1dC0+ZWRpZF9i bG9iKSB7CiAJCW1vbiA9IHhmODZJbnRlcnByZXRFRElEKG91dHB1dC0+c2Nybi0+c2NybkluZGV4 LApAQCAtMTg3NSw3ICsxOTA3LDYgQEAgZHJtbW9kZV9vdXRwdXRfaW5pdChTY3JuSW5mb1B0ciBw U2NybiwgZHJtbW9kZV9wdHIgZHJtbW9kZSwgZHJtTW9kZVJlc1B0ciBtb2RlX3IKIAlkcm1Nb2Rl Q29ubmVjdG9yUHRyIGtvdXRwdXQ7CiAJZHJtTW9kZUVuY29kZXJQdHIgKmtlbmNvZGVycyA9IE5V TEw7CiAJZHJtbW9kZV9vdXRwdXRfcHJpdmF0ZV9wdHIgZHJtbW9kZV9vdXRwdXQ7Ci0JZHJtTW9k ZVByb3BlcnR5UHRyIHByb3BzOwogCWRybU1vZGVQcm9wZXJ0eUJsb2JQdHIgcGF0aF9ibG9iID0g TlVMTDsKIAljaGFyIG5hbWVbMzJdOwogCWludCBpOwpAQCAtMTg4NywxNyArMTkxOCw3IEBAIGRy bW1vZGVfb3V0cHV0X2luaXQoU2NybkluZm9QdHIgcFNjcm4sIGRybW1vZGVfcHRyIGRybW1vZGUs IGRybU1vZGVSZXNQdHIgbW9kZV9yCiAJaWYgKCFrb3V0cHV0KQogCQlyZXR1cm4gMDsKIAotCWZv ciAoaSA9IDA7IGkgPCBrb3V0cHV0LT5jb3VudF9wcm9wczsgaSsrKSB7Ci0JCXByb3BzID0gZHJt TW9kZUdldFByb3BlcnR5KHBBTURHUFVFbnQtPmZkLCBrb3V0cHV0LT5wcm9wc1tpXSk7Ci0JCWlm IChwcm9wcyAmJiAocHJvcHMtPmZsYWdzICYgRFJNX01PREVfUFJPUF9CTE9CKSkgewotCQkJaWYg KCFzdHJjbXAocHJvcHMtPm5hbWUsICJQQVRIIikpIHsKLQkJCQlwYXRoX2Jsb2IgPSBkcm1Nb2Rl R2V0UHJvcGVydHlCbG9iKHBBTURHUFVFbnQtPmZkLCBrb3V0cHV0LT5wcm9wX3ZhbHVlc1tpXSk7 Ci0JCQkJZHJtTW9kZUZyZWVQcm9wZXJ0eShwcm9wcyk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0K LQkJZHJtTW9kZUZyZWVQcm9wZXJ0eShwcm9wcyk7Ci0JfQorCXBhdGhfYmxvYiA9IGtvdXRwdXRf Z2V0X3Byb3BfYmxvYihwQU1ER1BVRW50LT5mZCwga291dHB1dCwgIlBBVEgiKTsKIAogCWtlbmNv ZGVycyA9IGNhbGxvYyhzaXplb2YoZHJtTW9kZUVuY29kZXJQdHIpLCBrb3V0cHV0LT5jb3VudF9l bmNvZGVycyk7CiAJaWYgKCFrZW5jb2RlcnMpIHsKQEAgLTE5ODEsMTggKzIwMDIsOSBAQCBkcm1t b2RlX291dHB1dF9pbml0KFNjcm5JbmZvUHRyIHBTY3JuLCBkcm1tb2RlX3B0ciBkcm1tb2RlLCBk cm1Nb2RlUmVzUHRyIG1vZGVfcgogCS8qIHdvcmsgb3V0IHRoZSBwb3NzaWJsZSBjbG9uZXMgbGF0 ZXIgKi8KIAlvdXRwdXQtPnBvc3NpYmxlX2Nsb25lcyA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwg a291dHB1dC0+Y291bnRfcHJvcHM7IGkrKykgewotCQlwcm9wcyA9IGRybU1vZGVHZXRQcm9wZXJ0 eShwQU1ER1BVRW50LT5mZCwga291dHB1dC0+cHJvcHNbaV0pOwotCQlpZiAocHJvcHMgJiYgKHBy b3BzLT5mbGFncyAmIERSTV9NT0RFX1BST1BfRU5VTSkpIHsKLQkJCWlmICghc3RyY21wKHByb3Bz LT5uYW1lLCAiRFBNUyIpKSB7Ci0JCQkJZHJtbW9kZV9vdXRwdXQtPmRwbXNfZW51bV9pZCA9Ci0J CQkJICAgIGtvdXRwdXQtPnByb3BzW2ldOwotCQkJCWRybU1vZGVGcmVlUHJvcGVydHkocHJvcHMp OwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JCWRybU1vZGVGcmVlUHJvcGVydHkocHJvcHMpOwot CX0KKwlkcm1tb2RlX291dHB1dC0+ZHBtc19lbnVtX2lkID0KKwkJa291dHB1dF9nZXRfcHJvcF9p ZChwQU1ER1BVRW50LT5mZCwga291dHB1dCwgRFJNX01PREVfUFJPUF9FTlVNLAorCQkJCSAgICAi RFBNUyIpOwogCiAJaWYgKGR5bmFtaWMpIHsKIAkJb3V0cHV0LT5yYW5kcl9vdXRwdXQgPSBSUk91 dHB1dENyZWF0ZSh4Zjg2U2NyblRvU2NyZWVuKHBTY3JuKSwgb3V0cHV0LT5uYW1lLCBzdHJsZW4o b3V0cHV0LT5uYW1lKSwgb3V0cHV0KTsKQEAgLTI2OTMsNyArMjcwNSw3IEBAIGFtZGdwdV9tb2Rl X2hvdHBsdWcoU2NybkluZm9QdHIgc2NybiwgZHJtbW9kZV9wdHIgZHJtbW9kZSkKIAkJeGY4Nk91 dHB1dFB0ciBvdXRwdXQgPSBjb25maWctPm91dHB1dFtpXTsKIAkJeGY4NkNydGNQdHIgY3J0YyA9 IG91dHB1dC0+Y3J0YzsKIAkJZHJtbW9kZV9vdXRwdXRfcHJpdmF0ZV9wdHIgZHJtbW9kZV9vdXRw dXQgPSBvdXRwdXQtPmRyaXZlcl9wcml2YXRlOwotCQl1aW50MzJfdCBjb25faWQ7CisJCXVpbnQz Ml90IGNvbl9pZCwgaWR4OwogCQlkcm1Nb2RlQ29ubmVjdG9yUHRyIGtvdXRwdXQ7CiAKIAkJaWYg KCFjcnRjIHx8ICFkcm1tb2RlX291dHB1dC0+bW9kZV9vdXRwdXQpCkBAIC0yNzA0LDIyICsyNzE2 LDIyIEBAIGFtZGdwdV9tb2RlX2hvdHBsdWcoU2NybkluZm9QdHIgc2NybiwgZHJtbW9kZV9wdHIg ZHJtbW9kZSkKIAkJICogbG9vayBmb3IgdGhlIGxpbmstc3RhdHVzIHByb3BlcnR5CiAJCSAqLwog CQlrb3V0cHV0ID0gZHJtTW9kZUdldENvbm5lY3RvckN1cnJlbnQocEFNREdQVUVudC0+ZmQsIGNv bl9pZCk7Ci0JCWZvciAoaiA9IDA7IGtvdXRwdXQgJiYgaiA8IGtvdXRwdXQtPmNvdW50X3Byb3Bz OyBqKyspIHsKLQkJCWRybU1vZGVQcm9wZXJ0eVB0ciBwcm9wczsKLQkJCXByb3BzID0gZHJtTW9k ZUdldFByb3BlcnR5KHBBTURHUFVFbnQtPmZkLCBrb3V0cHV0LT5wcm9wc1tqXSk7Ci0JCQlpZiAo cHJvcHMgJiYgcHJvcHMtPmZsYWdzICYgRFJNX01PREVfUFJPUF9FTlVNICYmCi0JCQkgICAgIXN0 cmNtcChwcm9wcy0+bmFtZSwgImxpbmstc3RhdHVzIikgJiYKLQkJCSAgICBrb3V0cHV0LT5wcm9w X3ZhbHVlc1tqXSA9PSBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQpIHsKLQkJCQkvKiB0aGUgY29u bmVjdG9yIGdvdCBhIGxpbmsgZmFpbHVyZSwgcmUtc2V0IHRoZSBjdXJyZW50IG1vZGUgKi8KLQkJ CQlkcm1tb2RlX3NldF9tb2RlX21ham9yKGNydGMsICZjcnRjLT5tb2RlLCBjcnRjLT5yb3RhdGlv biwKLQkJCQkJCSAgICAgICBjcnRjLT54LCBjcnRjLT55KTsKLQotCQkJCXhmODZEcnZNc2coc2Ny bi0+c2NybkluZGV4LCBYX1dBUk5JTkcsCi0JCQkJCSAgICJob3RwbHVnIGV2ZW50OiBjb25uZWN0 b3IgJXUncyBsaW5rLXN0YXRlIGlzIEJBRCwgIgotCQkJCQkgICAidHJpZWQgcmVzZXR0aW5nIHRo ZSBjdXJyZW50IG1vZGUuIFlvdSBtYXkgYmUgbGVmdCAiCi0JCQkJCSAgICJ3aXRoIGEgYmxhY2sg c2NyZWVuIGlmIHRoaXMgZmFpbHMuLi5cbiIsIGNvbl9pZCk7Ci0JCQl9Ci0JCQlkcm1Nb2RlRnJl ZVByb3BlcnR5KHByb3BzKTsKKwkJaWYgKCFrb3V0cHV0KQorCQkJY29udGludWU7CisKKwkJaWR4 ID0ga291dHB1dF9nZXRfcHJvcF9pZHgocEFNREdQVUVudC0+ZmQsIGtvdXRwdXQsCisJCQkJCSAg IERSTV9NT0RFX1BST1BfRU5VTSwgImxpbmstc3RhdHVzIik7CisKKwkJaWYgKChpZHggPiAtMSkg JiYKKwkJICAgIChrb3V0cHV0LT5wcm9wX3ZhbHVlc1tpZHhdID09IERSTV9NT0RFX0xJTktfU1RB VFVTX0JBRCkpIHsKKwkJCS8qIHRoZSBjb25uZWN0b3IgZ290IGEgbGluayBmYWlsdXJlLCByZS1z ZXQgdGhlIGN1cnJlbnQgbW9kZSAqLworCQkJZHJtbW9kZV9zZXRfbW9kZV9tYWpvcihjcnRjLCAm Y3J0Yy0+bW9kZSwgY3J0Yy0+cm90YXRpb24sCisJCQkJCSAgICAgICBjcnRjLT54LCBjcnRjLT55 KTsKKworCQkJeGY4NkRydk1zZyhzY3JuLT5zY3JuSW5kZXgsIFhfV0FSTklORywKKwkJCQkgICAi aG90cGx1ZyBldmVudDogY29ubmVjdG9yICV1J3MgbGluay1zdGF0ZSBpcyBCQUQsICIKKwkJCQkg ICAidHJpZWQgcmVzZXR0aW5nIHRoZSBjdXJyZW50IG1vZGUuIFlvdSBtYXkgYmUgbGVmdCIKKwkJ CQkgICAid2l0aCBhIGJsYWNrIHNjcmVlbiBpZiB0aGlzIGZhaWxzLi4uXG4iLCBjb25faWQpOwog CQl9CiAJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGtvdXRwdXQpOwogCX0KLS0gCjIuMTYuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==