From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 2/6] drm/amdgpu: add basic PRT support Date: Wed, 8 Feb 2017 16:04:05 +0100 Message-ID: <1486566249-3332-3-git-send-email-deathsimple@vodafone.de> References: <1486566249-3332-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1486566249-3332-1-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> 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 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKRnV0dXJl IGhhcmR3YXJlIGdlbmVyYXRpb25zIGNhbiBoYW5kbGUgUFJUIGZsYWdzIG9uIGEgcGVyIHBhZ2Ug YmFzaXMsCmJ1dCBjdXJyZW50IGhhcmR3YXJlIGNhbiBvbmx5IHR1cm4gaXQgb24gZ2xvYmFsbHku CgpBZGQgdGhlIGJhc2ljIGhhbmRsaW5nIGZvciBib3RoLCBhIGdsb2JhbCBjYWxsYmFjayB0byBl bmFibGUvZGlzYWJsZQp0cmlnZ2VyZWQgYnkgc2V0dGluZyBhIHBlciBtYXBwaW5nIGZsYWcuCgpT aWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgfCAgIDIgKwogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgfCAxMDEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u aCB8ICAgNiArKwogMyBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDQwMmE4OTUuLjM0YTk3 MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCkBAIC0yOTYsNiArMjk2LDggQEAg c3RydWN0IGFtZGdwdV9nYXJ0X2Z1bmNzIHsKIAkJCSAgIHVpbnQzMl90IGdwdV9wYWdlX2lkeCwg LyogcHRlL3BkZSB0byB1cGRhdGUgKi8KIAkJCSAgIHVpbnQ2NF90IGFkZHIsIC8qIGFkZHIgdG8g d3JpdGUgaW50byBwdGUvcGRlICovCiAJCQkgICB1aW50MzJfdCBmbGFncyk7IC8qIGFjY2VzcyBm bGFncyAqLworCS8qIGVuYWJsZS9kaXNhYmxlIFBSVCBzdXBwb3J0ICovCisJdm9pZCAoKnNldF9w cnQpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGVuYWJsZSk7CiB9OwogCiAvKiBw cm92aWRlZCBieSB0aGUgaWggYmxvY2sgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmMKaW5kZXggNjRmMDRjNy4uYmMzMjIzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMKQEAgLTY5LDYgKzY5LDEyIEBAIHN0cnVjdCBhbWRncHVfcHRlX3VwZGF0ZV9w YXJhbXMgewogCWJvb2wgc2hhZG93OwogfTsKIAorLyogSGVscGVyIHRvIGRpc2FibGUgcGFydGlh bCByZXNpZGVudCB0ZXh0dXJlIGZlYXR1cmUgZnJvbSBhIGZlbmNlIGNhbGxiYWNrICovCitzdHJ1 Y3QgYW1kZ3B1X3BydF9jYiB7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7CisJc3RydWN0 IGZlbmNlX2NiIGNiOworfTsKKwogLyoqCiAgKiBhbWRncHVfdm1fbnVtX3BkZSAtIHJldHVybiB0 aGUgbnVtYmVyIG9mIHBhZ2UgZGlyZWN0b3J5IGVudHJpZXMKICAqCkBAIC05ODksMTEgKzk5NSw4 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAogCQlnb3RvIGVycm9yX2ZyZWU7CiAKIAlhbWRncHVfYm9fZmVuY2Uodm0t PnBhZ2VfZGlyZWN0b3J5LCBmLCB0cnVlKTsKLQlpZiAoZmVuY2UpIHsKLQkJZmVuY2VfcHV0KCpm ZW5jZSk7Ci0JCSpmZW5jZSA9IGZlbmNlX2dldChmKTsKLQl9Ci0JZmVuY2VfcHV0KGYpOworCWZl bmNlX3B1dCgqZmVuY2UpOworCSpmZW5jZSA9IGY7CiAJcmV0dXJuIDA7CiAKIGVycm9yX2ZyZWU6 CkBAIC0xMTc3LDYgKzExODAsNjEgQEAgaW50IGFtZGdwdV92bV9ib191cGRhdGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiB9CiAKIC8qKgorICogYW1kZ3B1X3ZtX3VwZGF0ZV9wcnRfc3Rh dGUgLSB1cGRhdGUgdGhlIGdsb2JhbCBQUlQgc3RhdGUKKyAqLworc3RhdGljIHZvaWQgYW1kZ3B1 X3ZtX3VwZGF0ZV9wcnRfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJdW5z aWduZWQgbG9uZyBmbGFnczsKKwlib29sIGVuYWJsZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZh ZGV2LT52bV9tYW5hZ2VyLnBydF9sb2NrLCBmbGFncyk7CisJZW5hYmxlID0gISFhdG9taWNfcmVh ZCgmYWRldi0+dm1fbWFuYWdlci5udW1fcHJ0X21hcHBpbmdzKTsKKwlhZGV2LT5nYXJ0LmdhcnRf ZnVuY3MtPnNldF9wcnQoYWRldiwgZW5hYmxlKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZh ZGV2LT52bV9tYW5hZ2VyLnBydF9sb2NrLCBmbGFncyk7Cit9CisKKy8qKgorICogYW1kZ3B1X3Zt X3BydCAtIGNhbGxiYWNrIGZvciB1cGRhdGluZyB0aGUgUFJUIHN0YXR1cworICovCitzdGF0aWMg dm9pZCBhbWRncHVfdm1fcHJ0X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9j YiAqX2NiKQoreworCXN0cnVjdCBhbWRncHVfcHJ0X2NiICpjYiA9IGNvbnRhaW5lcl9vZihfY2Is IHN0cnVjdCBhbWRncHVfcHJ0X2NiLCBjYik7CisKKwlhbWRncHVfdm1fdXBkYXRlX3BydF9zdGF0 ZShjYi0+YWRldik7CisJa2ZyZWUoY2IpOworfQorCisvKioKKyAqIGFtZGdwdV92bV9mcmVlX21h cHBpbmcgLSBmcmVlIGEgbWFwcGluZworICoKKyAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50 ZXIKKyAqIEB2bTogcmVxdWVzdGVkIHZtCisgKiBAbWFwcGluZzogbWFwcGluZyB0byBiZSBmcmVl ZAorICogQGZlbmNlOiBmZW5jZSBvZiB0aGUgdW5tYXAgb3BlcmF0aW9uCisgKgorICogRnJlZSBh IG1hcHBpbmcgYW5kIG1ha2Ugc3VyZSB3ZSBkZWNyZWFzZSB0aGUgUFJUIHVzYWdlIGNvdW50IGlm IGFwcGxpY2FibGUuCisgKi8KK3N0YXRpYyB2b2lkIGFtZGdwdV92bV9mcmVlX21hcHBpbmcoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgc3RydWN0IGFtZGdwdV92bSAqdm0sCisJ CQkJICAgc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptYXBwaW5nLAorCQkJCSAgIHN0cnVj dCBmZW5jZSAqZmVuY2UpCit7CisJaWYgKChtYXBwaW5nLT5mbGFncyAmIEFNREdQVV9QVEVfUFJU KSAmJgorCSAgICBhdG9taWNfZGVjX3JldHVybigmYWRldi0+dm1fbWFuYWdlci5udW1fcHJ0X21h cHBpbmdzKSA9PSAwKSB7CisJCXN0cnVjdCBhbWRncHVfcHJ0X2NiICpjYiA9IGttYWxsb2Moc2l6 ZW9mKHN0cnVjdCBhbWRncHVfcHJ0X2NiKSwKKwkJCQkJCSAgIEdGUF9LRVJORUwpOworCisJCWNi LT5hZGV2ID0gYWRldjsKKwkJaWYgKCFmZW5jZSB8fCBmZW5jZV9hZGRfY2FsbGJhY2soZmVuY2Us ICZjYi0+Y2IsCisJCQkJCQkgYW1kZ3B1X3ZtX3BydF9jYikpIHsKKwkJCWFtZGdwdV92bV91cGRh dGVfcHJ0X3N0YXRlKGFkZXYpOworCQkJa2ZyZWUoY2IpOworCQl9CisJfQorCWtmcmVlKG1hcHBp bmcpOworfQorCisvKioKICAqIGFtZGdwdV92bV9jbGVhcl9mcmVlZCAtIGNsZWFyIGZyZWVkIEJP cyBpbiB0aGUgUFQKICAqCiAgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCkBAIC0xMTkx LDYgKzEyNDksNyBAQCBpbnQgYW1kZ3B1X3ZtX2NsZWFyX2ZyZWVkKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAogCQkJICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1 X2JvX3ZhX21hcHBpbmcgKm1hcHBpbmc7CisJc3RydWN0IGZlbmNlICpmZW5jZSA9IE5VTEw7CiAJ aW50IHI7CiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJnZtLT5mcmVlZCkpIHsKQEAgLTExOTksMTIg KzEyNTgsMTUgQEAgaW50IGFtZGdwdV92bV9jbGVhcl9mcmVlZChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKIAkJbGlzdF9kZWwoJm1hcHBpbmctPmxpc3QpOwogCiAJCXIgPSBhbWRncHVfdm1f Ym9fc3BsaXRfbWFwcGluZyhhZGV2LCBOVUxMLCAwLCBOVUxMLCB2bSwgbWFwcGluZywKLQkJCQkJ ICAgICAgIDAsIDAsIE5VTEwpOwotCQlrZnJlZShtYXBwaW5nKTsKLQkJaWYgKHIpCisJCQkJCSAg ICAgICAwLCAwLCAmZmVuY2UpOworCQlhbWRncHVfdm1fZnJlZV9tYXBwaW5nKGFkZXYsIHZtLCBt YXBwaW5nLCBmZW5jZSk7CisJCWlmIChyKSB7CisJCQlmZW5jZV9wdXQoZmVuY2UpOwogCQkJcmV0 dXJuIHI7CisJCX0KIAogCX0KKwlmZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiAwOwogCiB9CkBA IC0xMzE0LDYgKzEzNzYsMTUgQEAgaW50IGFtZGdwdV92bV9ib19tYXAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCiAJICAgIHNpemUgPT0gMCB8fCBzaXplICYgQU1ER1BVX0dQVV9QQUdFX01B U0spCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKGZsYWdzICYgQU1ER1BVX1BURV9QUlQpIHsK KwkJLyogQ2hlY2sgaWYgd2UgaGF2ZSBQUlQgaGFyZHdhcmUgc3VwcG9ydCAqLworCQlpZiAoIWFk ZXYtPmdhcnQuZ2FydF9mdW5jcy0+c2V0X3BydCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlm IChhdG9taWNfaW5jX3JldHVybigmYWRldi0+dm1fbWFuYWdlci5udW1fcHJ0X21hcHBpbmdzKSA9 PSAxKQorCQkJYW1kZ3B1X3ZtX3VwZGF0ZV9wcnRfc3RhdGUoYWRldik7CisJfQorCiAJLyogbWFr ZSBzdXJlIG9iamVjdCBmaXQgYXQgdGhpcyBvZmZzZXQgKi8KIAllYWRkciA9IHNhZGRyICsgc2l6 ZSAtIDE7CiAJaWYgKHNhZGRyID49IGVhZGRyIHx8CkBAIC0xNDAwLDcgKzE0NzEsNyBAQCBpbnQg YW1kZ3B1X3ZtX2JvX21hcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlsaXN0X2RlbCgm bWFwcGluZy0+bGlzdCk7CiAJaW50ZXJ2YWxfdHJlZV9yZW1vdmUoJm1hcHBpbmctPml0LCAmdm0t PnZhKTsKIAl0cmFjZV9hbWRncHVfdm1fYm9fdW5tYXAoYm9fdmEsIG1hcHBpbmcpOwotCWtmcmVl KG1hcHBpbmcpOworCWFtZGdwdV92bV9mcmVlX21hcHBpbmcoYWRldiwgdm0sIG1hcHBpbmcsIE5V TEwpOwogCiBlcnJvcjoKIAlyZXR1cm4gcjsKQEAgLTE0NTIsNyArMTUyMyw4IEBAIGludCBhbWRn cHVfdm1fYm9fdW5tYXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJaWYgKHZhbGlkKQog CQlsaXN0X2FkZCgmbWFwcGluZy0+bGlzdCwgJnZtLT5mcmVlZCk7CiAJZWxzZQotCQlrZnJlZSht YXBwaW5nKTsKKwkJYW1kZ3B1X3ZtX2ZyZWVfbWFwcGluZyhhZGV2LCB2bSwgbWFwcGluZywKKwkJ CQkgICAgICAgYm9fdmEtPmxhc3RfcHRfdXBkYXRlKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTQ4 OCw3ICsxNTYwLDggQEAgdm9pZCBhbWRncHVfdm1fYm9fcm12KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShtYXBwaW5nLCBuZXh0LCAmYm9fdmEt PmludmFsaWRzLCBsaXN0KSB7CiAJCWxpc3RfZGVsKCZtYXBwaW5nLT5saXN0KTsKIAkJaW50ZXJ2 YWxfdHJlZV9yZW1vdmUoJm1hcHBpbmctPml0LCAmdm0tPnZhKTsKLQkJa2ZyZWUobWFwcGluZyk7 CisJCWFtZGdwdV92bV9mcmVlX21hcHBpbmcoYWRldiwgdm0sIG1hcHBpbmcsCisJCQkJICAgICAg IGJvX3ZhLT5sYXN0X3B0X3VwZGF0ZSk7CiAJfQogCiAJZmVuY2VfcHV0KGJvX3ZhLT5sYXN0X3B0 X3VwZGF0ZSk7CkBAIC0xNjI1LDkgKzE2OTgsMTMgQEAgdm9pZCBhbWRncHVfdm1fZmluaShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCiAJCWtmcmVlKG1h cHBpbmcpOwogCX0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobWFwcGluZywgdG1wLCAmdm0t PmZyZWVkLCBsaXN0KSB7CisJCWlmIChtYXBwaW5nLT5mbGFncyAmIEFNREdQVV9QVEVfUFJUKQor CQkJY29udGludWU7CisKIAkJbGlzdF9kZWwoJm1hcHBpbmctPmxpc3QpOwogCQlrZnJlZShtYXBw aW5nKTsKIAl9CisJYW1kZ3B1X3ZtX2NsZWFyX2ZyZWVkKGFkZXYsIHZtKTsKIAogCWZvciAoaSA9 IDA7IGkgPCBhbWRncHVfdm1fbnVtX3BkZXMoYWRldik7IGkrKykgewogCQlzdHJ1Y3QgYW1kZ3B1 X2JvICpwdCA9IHZtLT5wYWdlX3RhYmxlc1tpXS5ibzsKQEAgLTE2NzIsNiArMTc0OSw4IEBAIHZv aWQgYW1kZ3B1X3ZtX21hbmFnZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAog CWF0b21pY19zZXQoJmFkZXYtPnZtX21hbmFnZXIudm1fcHRlX25leHRfcmluZywgMCk7CiAJYXRv bWljNjRfc2V0KCZhZGV2LT52bV9tYW5hZ2VyLmNsaWVudF9jb3VudGVyLCAwKTsKKwlzcGluX2xv Y2tfaW5pdCgmYWRldi0+dm1fbWFuYWdlci5wcnRfbG9jayk7CisJYXRvbWljX3NldCgmYWRldi0+ dm1fbWFuYWdlci5udW1fcHJ0X21hcHBpbmdzLCAwKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92bS5oCmluZGV4IDFmOTk3MTUuLjRkMjZlOWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCkBAIC02NSw2ICs2NSw4IEBAIHN0cnVjdCBhbWRn cHVfYm9fbGlzdF9lbnRyeTsKIAogI2RlZmluZSBBTURHUFVfUFRFX0ZSQUcoeCkJKCh4ICYgMHgx ZikgPDwgNykKIAorI2RlZmluZSBBTURHUFVfUFRFX1BSVAkJKDFVTCA8PCA2MykKKwogLyogSG93 IHRvIHByb2dyYW1tIFZNIGZhdWx0IGhhbmRsaW5nICovCiAjZGVmaW5lIEFNREdQVV9WTV9GQVVM VF9TVE9QX05FVkVSCTAKICNkZWZpbmUgQU1ER1BVX1ZNX0ZBVUxUX1NUT1BfRklSU1QJMQpAQCAt MTU5LDYgKzE2MSwxMCBAQCBzdHJ1Y3QgYW1kZ3B1X3ZtX21hbmFnZXIgewogCWF0b21pY190CQkJ CXZtX3B0ZV9uZXh0X3Jpbmc7CiAJLyogY2xpZW50IGlkIGNvdW50ZXIgKi8KIAlhdG9taWM2NF90 CQkJCWNsaWVudF9jb3VudGVyOworCisJLyogcGFydGlhbCByZXNpZGVudCB0ZXh0dXJlIGhhbmRs aW5nICovCisJc3BpbmxvY2tfdAkJCQlwcnRfbG9jazsKKwlhdG9taWNfdAkJCQludW1fcHJ0X21h cHBpbmdzOwogfTsKIAogdm9pZCBhbWRncHVfdm1fbWFuYWdlcl9pbml0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KTsKLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngK