From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 29/37] drm/i915: Fill different pages of the GTT Date: Wed, 11 Jan 2017 21:09:29 +0000 Message-ID: <20170111210937.29252-30-chris@chris-wilson.co.uk> References: <20170111210937.29252-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4AA486EA74 for ; Wed, 11 Jan 2017 21:10:15 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id c85so820606wmi.1 for ; Wed, 11 Jan 2017 13:10:15 -0800 (PST) In-Reply-To: <20170111210937.29252-1-chris@chris-wilson.co.uk> 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 RXhlcmNpc2UgZmlsbGluZyBkaWZmZXJlbnQgcGFnZXMgb2YgdGhlIEdUVAoKU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jIHwgMTMwICsrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKaW5kZXggOGVkODhmNDM4 ZWVmLi42OGY3YmZiNzUwMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV9nZW1fZ3R0LmMKQEAgLTIzMSw2ICsyMzEsNjUgQEAgc3RhdGljIGludCBmaWxsX2hvbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGlj IGludCB3YWxrX2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCSAgICAgc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCSAgICAgdTY0IGhvbGVfc3RhcnQsIHU2NCBo b2xlX2VuZCkKK3sKKwlJOTE1X1NFTEZURVNUX1RJTUVPVVQoZW5kX3RpbWUpOworCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdTY0IGFk ZHI7CisJaW50IGVycjsKKworCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwo aTkxNSwgUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9i aik7CisKKwl2bWEgPSB2bWFfbG9va3VwKG9iaiwgdm0pOworCWlmIChJU19FUlIodm1hKSkgewor CQllcnIgPSBQVFJfRVJSKHZtYSk7CisJCWdvdG8gZXJyOworCX0KKworCWZvciAoYWRkciA9IGhv bGVfc3RhcnQ7IGFkZHIgPCBob2xlX2VuZDsgYWRkciArPSBQQUdFX1NJWkUpIHsKKwkJY29uZF9y ZXNjaGVkKCk7CisKKwkJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwKKwkJCQkgICBhZGRy IHwgUElOX09GRlNFVF9GSVhFRCB8IFBJTl9VU0VSKTsKKwkJaWYgKGVycikgeworCQkJcHJfZXJy KCJXYWxrIGJpbmQgZmFpbGVkIGF0ICVsbHggd2l0aCBlcnI9JWRcbiIsCisJCQkgICAgICAgYWRk ciwgZXJyKTsKKwkJCWJyZWFrOworCQl9CisJCWk5MTVfdm1hX3VucGluKHZtYSk7CisKKwkJaWYg KCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkgfHwKKwkJICAgIGk5MTVfdm1hX21p c3BsYWNlZCh2bWEsIDAsIDAsIGFkZHIgfCBQSU5fT0ZGU0VUX0ZJWEVEKSkgeworCQkJcHJfZXJy KCJXYWxrIGluY29ycmVjdCBhdCAlbGx4XG4iLCBhZGRyKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJ CQlicmVhazsKKwkJfQorCisJCWVyciA9IGk5MTVfdm1hX3VuYmluZCh2bWEpOworCQlpZiAoZXJy KSB7CisJCQlwcl9lcnIoIldhbGsgdW5iaW5kIGZhaWxlZCBhdCAlbGx4IHdpdGggZXJyPSVkXG4i LAorCQkJICAgICAgIGFkZHIsIGVycik7CisJCQlicmVhazsKKwkJfQorCisJCWlmICh0aW1lX2Fm dGVyKGppZmZpZXMsIGVuZF90aW1lKSkgeworCQkJcHJfd2FybigiV2FsayB0aW1lZCBvdXQgYXQg JWxseFxuIiwgYWRkcik7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghaTkxNV92bWFfaXNf Z2d0dCh2bWEpKQorCQlpOTE1X3ZtYV9jbG9zZSh2bWEpOworZXJyOgorCWk5MTVfZ2VtX29iamVj dF9wdXQob2JqKTsKKwlyZXR1cm4gZXJyOworfQorCiBzdGF0aWMgaW50IGlndF9wcGd0dF9maWxs KHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7 CkBAIC0yNjQsNiArMzIzLDM5IEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X2ZpbGwodm9pZCAqYXJn KQogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X3BwZ3R0X3dhbGsodm9pZCAqYXJn KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZzsKKwlzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGU7CisJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0OworCWludCBlcnI7 CisKKwlpZiAoIVVTRVNfRlVMTF9QUEdUVChkZXZfcHJpdikpCisJCXJldHVybiAwOworCisJZmls ZSA9IGZha2VfZmlsZShkZXZfcHJpdik7CisJaWYgKElTX0VSUihmaWxlKSkKKwkJcmV0dXJuIFBU Ul9FUlIoZmlsZSk7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7 CisJcHBndHQgPSBpOTE1X3BwZ3R0X2NyZWF0ZShkZXZfcHJpdiwgZmlsZS0+ZHJpdmVyX3ByaXYs ICJtb2NrIik7CisJaWYgKElTX0VSUihwcGd0dCkpIHsKKwkJZXJyID0gUFRSX0VSUihwcGd0dCk7 CisJCWdvdG8gZXJyX3VubG9jazsKKwl9CisJR0VNX0JVR19PTihwcGd0dC0+YmFzZS50b3RhbCAm IH5QQUdFX01BU0spOworCisJZXJyID0gd2Fsa19ob2xlKGRldl9wcml2LCAmcHBndHQtPmJhc2Us IDAsIHBwZ3R0LT5iYXNlLnRvdGFsKTsKKworCWk5MTVfcHBndHRfY2xvc2UoJnBwZ3R0LT5iYXNl KTsKKwlpOTE1X3BwZ3R0X3B1dChwcGd0dCk7CitlcnJfdW5sb2NrOgorCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJZmFrZV9maWxlX2ZyZWUoZGV2X3ByaXYs IGZpbGUpOworCXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyBpbnQgaWd0X2dndHRfZmlsbCh2b2lk ICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CkBAIC0zMDAs MTEgKzM5Miw0OSBAQCBzdGF0aWMgaW50IGlndF9nZ3R0X2ZpbGwodm9pZCAqYXJnKQogCXJldHVy biBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaWd0X2dndHRfd2Fsayh2b2lkICphcmcpCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0 dCA9ICZpOTE1LT5nZ3R0OworCXU2NCBob2xlX3N0YXJ0ID0gVTY0X01BWCwgaG9sZV9lbmQgPSAw LCBob2xlX3NpemUgPSAwOworCXU2NCB0aGlzX3N0YXJ0LCB0aGlzX2VuZDsKKwlzdHJ1Y3QgZHJt X21tX25vZGUgKm5vZGU7CisJaW50IGVycjsKKworCUdFTV9CVUdfT04oZ2d0dC0+YmFzZS50b3Rh bCAmIH5QQUdFX01BU0spOworCisJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7 CisJZHJtX21tX2Zvcl9lYWNoX2hvbGUobm9kZSwgJmdndHQtPmJhc2UubW0sIHRoaXNfc3RhcnQs IHRoaXNfZW5kKSB7CisJCXU2NCB0aGlzX3NpemU7CisKKwkJaWYgKGdndHQtPmJhc2UubW0uY29s b3JfYWRqdXN0KQorCQkJZ2d0dC0+YmFzZS4gbW0uY29sb3JfYWRqdXN0KG5vZGUsIDAsCisJCQkJ CQkgICAgJnRoaXNfc3RhcnQsICZ0aGlzX2VuZCk7CisKKwkJdGhpc19zaXplID0gdGhpc19lbmQg LSB0aGlzX3N0YXJ0OworCQlpZiAodGhpc19zaXplID4gaG9sZV9zaXplKSB7CisJCQlob2xlX3Np emUgPSB0aGlzX3NpemU7CisJCQlob2xlX3N0YXJ0ID0gdGhpc19zdGFydDsKKwkJCWhvbGVfZW5k ID0gdGhpc19lbmQ7CisJCX0KKwl9CisJcHJfaW5mbygiRm91bmQgR0dUVCBob2xlIFslbGx4LCAl bGx4XSwgc2l6ZSAlbGx4XG4iLAorCQlob2xlX3N0YXJ0LCBob2xlX2VuZCwgaG9sZV9zaXplKTsK KwlHRU1fQlVHX09OKGhvbGVfc3RhcnQgPj0gaG9sZV9lbmQpOworCisJZXJyID0gd2Fsa19ob2xl KGk5MTUsICZnZ3R0LT5iYXNlLCBob2xlX3N0YXJ0LCBob2xlX2VuZCk7CisJbXV0ZXhfdW5sb2Nr KCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKworCXJldHVybiBlcnI7Cit9CisKIGludCBpOTE1 X2dlbV9ndHRfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7 CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJU1VCVEVT VChpZ3RfcHBndHRfYWxsb2MpLAorCQlTVUJURVNUKGlndF9wcGd0dF93YWxrKSwKIAkJU1VCVEVT VChpZ3RfcHBndHRfZmlsbCksCisJCVNVQlRFU1QoaWd0X2dndHRfd2FsayksCiAJCVNVQlRFU1Qo aWd0X2dndHRfZmlsbCksCiAJfTsKIAotLSAKMi4xMS4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK