From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 4/4] drm: Resurrect atomic rmfb code, v3 Date: Wed, 25 Jan 2017 12:30:47 +0100 Message-ID: <66fc3da5-697b-1613-0a67-a5293209f0dc@linux.intel.com> References: <1481812185-19098-1-git-send-email-maarten.lankhorst@linux.intel.com> <1481812185-19098-5-git-send-email-maarten.lankhorst@linux.intel.com> <20170111161547.lfbt7e6kybimy625@phenom.ffwll.local> <20170124214454.GJ15212@intel.com> <20170125045445.uu2ytrkbupufolbu@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Hellstrom , Daniel Vetter , Matt Roper Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Sinclair Yeh , dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VGhpcyB3YXMgc29tZWhvdyBsb3N0IGJldHdlZW4gdjMgYW5kIHRoZSBtZXJnZWQgdmVyc2lvbiBp biBNYWFydGVuJ3MKcGF0Y2ggbWVyZ2VkIGFzOgoKY29tbWl0IGYyZDU4MGI5YTgxNDk3MzVjYmM0 YjU5YzRhOGRmNjAxNzM2NTgxNDAKQXV0aG9yOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgpEYXRlOiAgIFdlZCBNYXkgNCAxNDozODoyNiAyMDE2 ICswMjAwCgogICAgZHJtL2NvcmU6IERvIG5vdCBwcmVzZXJ2ZSBmcmFtZWJ1ZmZlciBvbiBybWZi LCB2NC4KClRoaXMgaW50cm9kdWNlcyBhIHNsaWdodCBiZWhhdmlvcmFsIGNoYW5nZSB0byBybWZi LiBJbnN0ZWFkIG9mCmRpc2FibGluZyBhIGNydGMgd2hlbiB0aGUgcHJpbWFyeSBwbGFuZSBpcyBk aXNhYmxlZCwgd2UgdHJ5IHRvCnByZXNlcnZlIGl0LgoKQXBhcnQgZnJvbSBvbGQgdmVyc2lvbnMg b2YgdGhlIHZtd2dmeCB4b3JnIGRyaXZlciwgdGhlcmUgaXMKbm90aGluZyBkZXBlbmRpbmcgb24g cm1mYiBkaXNhYmxpbmcgYSBjcnRjLiBTaW5jZSB2bXdnZnggaXMKYSBsZWdhY3kgZHJpdmVyIHdl IGNhbiBzYWZlbHkgb25seSBkaXNhYmxlIHRoZSBwbGFuZSB3aXRoIGF0b21pYy4KCklmIHRoaXMg Y29tbWl0IGlzIHJlamVjdGVkIGJ5IHRoZSBkcml2ZXIgdGhlbiB3ZSB3aWxsIHN0aWxsIGZhbGwK YmFjayB0byB0aGUgb2xkIGJlaGF2aW9yIGFuZCB0dXJuIG9mZiB0aGUgY3J0Yy4KCnYyOgotIFJl bW92ZSBwbGFuZS0+ZmIgYXNzaWdubWVudCwgZG9uZSBieSBkcm1fYXRvbWljX2NsZWFuX29sZF9m Yi4KLSBBZGQgV0FSTl9PTiB3aGVuIGF0b21pY19yZW1vdmVfZmIgZmFpbHMuCi0gQWx3YXlzIGNh bGwgZHJtX2F0b21pY19zdGF0ZV9wdXQuCnYzOgotIFVzZSBkcm1fZHJ2X3VzZXNfYXRvbWljX21v ZGVzZXQKLSBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGZpcnN0IHBsYW5lLWRpc2FibGUtb25s eSBjb21taXQgZmFpbHMKICB3aXRoIC1FSU5WQUwuIFNvbWUgZHJpdmVycyBkbyBub3Qgc3VwcG9y dCB0aGlzLCBmYWxsIGJhY2sgdG8KICBkaXNhYmxpbmcgYWxsIGNydGMncyBpbiB0aGlzIGNhc2Uu CgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KU2ln bmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDEwNiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Y19pbnRlcm5hbC5oIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIu YyAgIHwgICA3ICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCmluZGV4IDcyMzM5MmZjOThjOC4uYzc5YWI4MDQ4NDM1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKQEAgLTIwNTgsNiArMjA1OCwxMTIgQEAgc3RhdGljIHZvaWQgY29tcGxldGVfY3J0Y19z aWduYWxpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlrZnJlZShmZW5jZV9zdGF0ZSk7CiB9 CiAKK2ludCBkcm1fYXRvbWljX3JlbW92ZV9mYihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikK K3sKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4OworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBmYi0+ZGV2OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKKwlpbnQgaSwgcmV0ID0gMDsK Kwl1bnNpZ25lZCBwbGFuZV9tYXNrLCBkaXNhYmxlX2NydGNzID0gZmFsc2U7CisKKwlzdGF0ZSA9 IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKKwlpZiAoIXN0YXRlKQorCQlyZXR1cm4gLUVO T01FTTsKKworCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKKwlzdGF0ZS0+YWNx dWlyZV9jdHggPSAmY3R4OworCityZXRyeToKKwlwbGFuZV9tYXNrID0gMDsKKwlyZXQgPSBkcm1f bW9kZXNldF9sb2NrX2FsbF9jdHgoZGV2LCAmY3R4KTsKKwlpZiAocmV0KQorCQlnb3RvIHVubG9j azsKKworCWRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZGV2KSB7CisJCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlOworCisJCWlmIChwbGFuZS0+c3RhdGUtPmZiICE9IGZiKQor CQkJY29udGludWU7CisKKwkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0 ZShzdGF0ZSwgcGxhbmUpOworCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgeworCQkJcmV0ID0g UFRSX0VSUihwbGFuZV9zdGF0ZSk7CisJCQlnb3RvIHVubG9jazsKKwkJfQorCisJCS8qCisJCSAq IFNvbWUgZHJpdmVycyBkbyBub3Qgc3VwcG9ydCBrZWVwaW5nIGNydGMgYWN0aXZlIHdpdGggdGhl CisJCSAqIHByaW1hcnkgcGxhbmUgZGlzYWJsZWQuIElmIHdlIGZhaWwgdG8gY29tbWl0IHdpdGgg LUVJTlZBTAorCQkgKiB0aGVuIHdlIHdpbGwgdHJ5IHRvIHBlcmZvcm0gdGhlIHNhbWUgY29tbWl0 IGJ1dCB3aXRoIGFsbAorCQkgKiBjcnRjJ3MgZGlzYWJsZWQgZm9yIHByaW1hcnkgcGxhbmVzIGFz IHdlbGwuCisJCSAqLworCQlpZiAoZGlzYWJsZV9jcnRjcyAmJiBwbGFuZV9zdGF0ZS0+Y3J0Yy0+ cHJpbWFyeSA9PSBwbGFuZSkgeworCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl OworCisJCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShz dGF0ZSwgcGxhbmVfc3RhdGUtPmNydGMpOworCisJCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZl Y3RlZF9jb25uZWN0b3JzKHN0YXRlLCBwbGFuZV9zdGF0ZS0+Y3J0Yyk7CisJCQlpZiAocmV0KQor CQkJCWdvdG8gdW5sb2NrOworCisJCQljcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKKwkJCXJl dCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgTlVMTCk7CisJCQlp ZiAocmV0KQorCQkJCWdvdG8gdW5sb2NrOworCQl9CisKKwkJZHJtX2F0b21pY19zZXRfZmJfZm9y X3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKKwkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19m b3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOworCQlpZiAocmV0KQorCQkJZ290byB1bmxvY2s7 CisKKwkJcGxhbmVfbWFzayB8PSBCSVQoZHJtX3BsYW5lX2luZGV4KHBsYW5lKSk7CisKKwkJcGxh bmUtPm9sZF9mYiA9IHBsYW5lLT5mYjsKKwl9CisKKwkvKiBUaGlzIGxpc3QgaXMgb25seSBub3Qg ZW1wdHkgd2hlbiBkaXNhYmxlX2NydGNzIGlzIHNldC4gKi8KKwlmb3JfZWFjaF9jb25uZWN0b3Jf aW5fc3RhdGUoc3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKKwkJcmV0ID0gZHJtX2F0b21p Y19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKGNvbm5fc3RhdGUsIE5VTEwpOworCisJCWlmIChyZXQp CisJCQlnb3RvIHVubG9jazsKKwl9CisKKwlpZiAocGxhbmVfbWFzaykKKwkJcmV0ID0gZHJtX2F0 b21pY19jb21taXQoc3RhdGUpOworCit1bmxvY2s6CisJaWYgKHBsYW5lX21hc2spCisJCWRybV9h dG9taWNfY2xlYW5fb2xkX2ZiKGRldiwgcGxhbmVfbWFzaywgcmV0KTsKKworCWlmIChyZXQgPT0g LUVERUFETEspIHsKKwkJZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKKwkJZ290byByZXRyeTsK Kwl9CisKKwlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7CisKKwlpZiAocmV0ID09IC1FSU5W QUwgJiYgIWRpc2FibGVfY3J0Y3MpIHsKKwkJZGlzYWJsZV9jcnRjcyA9IHRydWU7CisKKwkJc3Rh dGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7CisJCWlmIChzdGF0ZSkgeworCQkJc3Rh dGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKKwkJCWdvdG8gcmV0cnk7CisJCX0KKwkJcmV0ID0gLUVO T01FTTsKKwl9CisKKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOworCWRybV9tb2Rlc2V0 X2FjcXVpcmVfZmluaSgmY3R4KTsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBkcm1fbW9kZV9h dG9taWNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgdm9pZCAqZGF0YSwgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2NydGNfaW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5o CmluZGV4IDcyNGMzMjkxODZkNS4uZDk4YTY4M2QzMWQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aW50ZXJuYWwuaApAQCAtMTg0LDYgKzE4NCw3IEBAIGludCBkcm1fYXRvbWljX2dldF9wcm9wZXJ0 eShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCiAJCQkgICAgc3RydWN0IGRybV9wcm9wZXJ0 eSAqcHJvcGVydHksIHVpbnQ2NF90ICp2YWwpOwogaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdik7CitpbnQgZHJtX2F0b21pY19yZW1vdmVfZmIoc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIpOwogCiAKIC8qIGRybV9wbGFuZS5jICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVy LmMKaW5kZXggNTg4Y2NjM2EyMjE4Li4zNTdiNTIxYmJkYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1l YnVmZmVyLmMKQEAgLTc3Myw2ICs3NzMsMTIgQEAgdm9pZCBkcm1fZnJhbWVidWZmZXJfcmVtb3Zl KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogCSAqIGluIHRoaXMgbWFubmVyLgogCSAqLwog CWlmIChkcm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudChmYikgPiAxKSB7CisJCWlmIChkcm1f ZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSkgeworCQkJaW50IHJldCA9IGRybV9hdG9taWNf cmVtb3ZlX2ZiKGZiKTsKKwkJCVdBUk4ocmV0LCAiYXRvbWljIHJlbW92ZV9mYiBmYWlsZWQgd2l0 aCAlaVxuIiwgcmV0KTsKKwkJCWdvdG8gb3V0OworCQl9CisKIAkJZHJtX21vZGVzZXRfbG9ja19h bGwoZGV2KTsKIAkJLyogcmVtb3ZlIGZyb20gYW55IENSVEMgKi8KIAkJZHJtX2Zvcl9lYWNoX2Ny dGMoY3J0YywgZGV2KSB7CkBAIC03OTAsNiArNzk2LDcgQEAgdm9pZCBkcm1fZnJhbWVidWZmZXJf cmVtb3ZlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogCQlkcm1fbW9kZXNldF91bmxvY2tf YWxsKGRldik7CiAJfQogCitvdXQ6CiAJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsK IH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZSk7Ci0tIAoyLjcuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=