From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 39/42] drm/i915: Support modeset across multiple pipes Date: Mon, 11 May 2015 16:25:15 +0200 Message-ID: <1431354318-11995-40-git-send-email-maarten.lankhorst@linux.intel.com> References: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTP id 333C26E3F4 for ; Mon, 11 May 2015 07:25:46 -0700 (PDT) In-Reply-To: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xp dmVpcmFAaW50ZWwuY29tPgoKQ29tcHV0ZSBuZXcgcGlwZV9jb25maWdzIGZvciBhbGwgY3J0Y3Mg aW4gdGhlIGF0b21pYyBzdGF0ZS4gVGhlIGNvbW1pdApwYXJ0IG9mIHRoZSBtb2RlIHNldCAoX19p bnRlbF9zZXRfbW9kZSgpKSBpcyBhbHJlYWR5IGVuYWJsZWQgdG8gc3VwcG9ydAptdWx0aXBsZSBw aXBlcywgdGhlIG9ubHkgdGhpbmcgbWlzc2luZyB3YXMgY2FsY3VsYXRpbmcgYSBuZXcgcGlwZV9j b25maWcKZm9yIGV2ZXJ5IGNydGMuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8 bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEwOCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAwMmU0NDQzODRkYzAuLjQ1MDMx NDAwOGVkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtODIsOCArODIs NyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogc3RhdGljIHZvaWQgaXJvbmxha2VfcGNoX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwog Ci1zdGF0aWMgaW50IGludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCSAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKK3N0YXRpYyBpbnQgaW50ZWxfc2V0X21v ZGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIHN0YXRpYyBpbnQgaW50ZWxfZnJh bWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppZmIsCiAJCQkJICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9j bWQsCkBAIC01ODgzLDcgKzU4ODIsNyBAQCB2b2lkIGludGVsX2NydGNfY29udHJvbChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQogCQlnb3RvIGVycjsKIAl9CiAKLQlyZXQgPSBp bnRlbF9zZXRfbW9kZShjcnRjLCBzdGF0ZSk7CisJcmV0ID0gaW50ZWxfc2V0X21vZGUoc3RhdGUp OwogCWlmICghcmV0KQogCQlyZXR1cm47CiAKQEAgLTk2NzgsNyArOTY3Nyw3IEBAIHJldHJ5Ogog CiAJZHJtX21vZGVfY29weSgmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLCBtb2RlKTsKIAotCWlmIChp bnRlbF9zZXRfbW9kZShjcnRjLCBzdGF0ZSkpIHsKKwlpZiAoaW50ZWxfc2V0X21vZGUoc3RhdGUp KSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBzZXQgbW9kZSBvbiBsb2FkLWRldGVjdCBw aXBlXG4iKTsKIAkJaWYgKG9sZC0+cmVsZWFzZV9mYikKIAkJCW9sZC0+cmVsZWFzZV9mYi0+ZnVu Y3MtPmRlc3Ryb3kob2xkLT5yZWxlYXNlX2ZiKTsKQEAgLTk3NDYsNyArOTc0NSw3IEBAIHZvaWQg aW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCiAJCWlmIChyZXQpCiAJCQlnb3RvIGZhaWw7CiAKLQkJcmV0ID0gaW50ZWxfc2V0X21v ZGUoY3J0Yywgc3RhdGUpOworCQlyZXQgPSBpbnRlbF9zZXRfbW9kZShzdGF0ZSk7CiAJCWlmIChy ZXQpCiAJCQlnb3RvIGZhaWw7CiAKQEAgLTExMjI5LDkgKzExMjI4LDEwIEBAIGNsZWFyX2ludGVs X2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRp YyBpbnQKIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjLAot CQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKKwkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQogeworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWc7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwpAQCAtMTEyMzksNiArMTEyMzksMTEgQEAgaW50 ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaW50IGk7CiAJ Ym9vbCByZXRyeSA9IHRydWU7CiAKKwljcnRjX3N0YXRlID0gc3RhdGUtPmNydGNfc3RhdGVzW2Ry bV9jcnRjX2luZGV4KGNydGMpXTsKKwlpZiAoV0FSTl9PTighY3J0Y19zdGF0ZSkpCisJCXJldHVy biAtRUlOVkFMOworCisJcGlwZV9jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3Rh dGUpOwogCS8qCiAJICogWFhYOiBBZGQgYWxsIGNvbm5lY3RvcnMgdG8gbWFrZSB0aGUgY3J0YyBz dGF0ZSBtYXRjaCB0aGUgZW5jb2RlcnMuCiAJICovCkBAIC0xMTk1OCw0NSArMTE5NjMsMzUgQEAg c3RhdGljIHZvaWQgdXBkYXRlX3NjYW5saW5lX29mZnNldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIAkJY3J0Yy0+c2NhbmxpbmVfb2Zmc2V0ID0gMTsKIH0KIAotc3RhdGljIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICoKLWludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9j cnRjICpjcnRjLAotCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0 aWMgaW50CitpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWc7Ci0J aW50IHJldCA9IDA7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZTsKKwlpbnQgcmV0LCBpOwogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfbW9kZXNldChzdGF0ZS0+ZGV2LCBzdGF0ZSk7CiAJaWYgKHJldCkKLQkJcmV0dXJu IEVSUl9QVFIocmV0KTsKLQotCS8qCi0JICogTm90ZSB0aGlzIG5lZWRzIGNoYW5nZXMgd2hlbiB3 ZSBzdGFydCB0cmFja2luZyBtdWx0aXBsZSBtb2RlcwotCSAqIGFuZCBjcnRjcy4gIEF0IHRoYXQg cG9pbnQgd2UnbGwgbmVlZCB0byBjb21wdXRlIHRoZSB3aG9sZSBjb25maWcKLQkgKiAoaS5lLiBv bmUgcGlwZV9jb25maWcgZm9yIGVhY2ggY3J0YykgcmF0aGVyIHRoYW4ganVzdCB0aGUgb25lCi0J ICogZm9yIHRoaXMgY3J0Yy4KLQkgKi8KLQlwaXBlX2NvbmZpZyA9IGludGVsX2F0b21pY19nZXRf Y3J0Y19zdGF0ZShzdGF0ZSwgdG9faW50ZWxfY3J0YyhjcnRjKSk7Ci0JaWYgKElTX0VSUihwaXBl X2NvbmZpZykpCi0JCXJldHVybiBwaXBlX2NvbmZpZzsKKwkJcmV0dXJuIHJldDsKIAotCWlmICgh cGlwZV9jb25maWctPmJhc2UuZW5hYmxlICYmCi0JICAgIFdBUk5fT04ocGlwZV9jb25maWctPmJh c2UuYWN0aXZlKSkKLQkJcGlwZV9jb25maWctPmJhc2UuYWN0aXZlID0gZmFsc2U7CisJZm9yX2Vh Y2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgeworCQlpZiAoIWNy dGNfc3RhdGUtPmVuYWJsZSAmJgorCQkgICAgV0FSTl9PTihjcnRjX3N0YXRlLT5hY3RpdmUpKQor CQkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7CiAKLQlpZiAoIXBpcGVfY29uZmlnLT5iYXNl LmFjdGl2ZSkKLQkJZ290byBkb25lOworCQlpZiAoIWNydGNfc3RhdGUtPmFjdGl2ZSkKKwkJCWNv bnRpbnVlOwogCi0JcmV0ID0gaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhjcnRjLCBzdGF0ZSwg cGlwZV9jb25maWcpOwotCWlmIChyZXQpCi0JCXJldHVybiBFUlJfUFRSKHJldCk7CisJCXJldCA9 IGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoY3J0Yywgc3RhdGUpOworCQlpZiAocmV0KQorCQkJ cmV0dXJuIHJldDsKIAotCWludGVsX2R1bXBfcGlwZV9jb25maWcodG9faW50ZWxfY3J0YyhjcnRj KSwgcGlwZV9jb25maWcsICJbbW9kZXNldF0iKTsKLWRvbmU6Ci0JcmV0ID0gZHJtX2F0b21pY19o ZWxwZXJfY2hlY2tfcGxhbmVzKHN0YXRlLT5kZXYsIHN0YXRlKTsKLQlpZiAocmV0KQotCQlyZXR1 cm4gRVJSX1BUUihyZXQpOworCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHRvX2ludGVsX2NydGMo Y3J0YyksCisJCQkJICAgICAgIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSksCisJCQkJ ICAgICAgICJbbW9kZXNldF0iKTsKKwl9CiAKLQlyZXR1cm4gcGlwZV9jb25maWc7CisJcmV0dXJu IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcyhzdGF0ZS0+ZGV2LCBzdGF0ZSk7CiB9CiAK IHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9zZXR1cF9wbGxzKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKQEAgLTEyMzEyLDM3ICsxMjMwNywyNyBAQCBzdGF0aWMgaW50IF9faW50 ZWxfc2V0X21vZGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCXJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IGludGVsX3NldF9tb2RlX3dpdGhfY29uZmlnKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKLQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp CitzdGF0aWMgaW50IGludGVsX3NldF9tb2RlX2NoZWNrZWQoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OwogCWlu dCByZXQ7CiAKLQlyZXQgPSBfX2ludGVsX3NldF9tb2RlKHBpcGVfY29uZmlnLT5iYXNlLnN0YXRl KTsKLQorCXJldCA9IF9faW50ZWxfc2V0X21vZGUoc3RhdGUpOwogCWlmIChyZXQgPT0gMCkKLQkJ aW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShjcnRjLT5kZXYpOworCQlpbnRlbF9tb2Rlc2V0X2No ZWNrX3N0YXRlKGRldik7CiAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGludGVsX3Nl dF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQorc3RhdGljIGludCBpbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnOwot CWludCByZXQgPSAwOwotCi0JcGlwZV9jb25maWcgPSBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29u ZmlnKGNydGMsIHN0YXRlKTsKLQlpZiAoSVNfRVJSKHBpcGVfY29uZmlnKSkgewotCQlyZXQgPSBQ VFJfRVJSKHBpcGVfY29uZmlnKTsKLQkJZ290byBvdXQ7Ci0JfQorCWludCByZXQ7CiAKLQlyZXQg PSBpbnRlbF9zZXRfbW9kZV93aXRoX2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7CisJcmV0ID0g aW50ZWxfbW9kZXNldF9jb21wdXRlX2NvbmZpZyhzdGF0ZSk7CiAJaWYgKHJldCkKLQkJZ290byBv dXQ7CisJCXJldHVybiByZXQ7CiAKLW91dDoKLQlyZXR1cm4gcmV0OworCXJldHVybiBpbnRlbF9z ZXRfbW9kZV9jaGVja2VkKHN0YXRlKTsKIH0KIAogdm9pZCBpbnRlbF9jcnRjX3Jlc3RvcmVfbW9k ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCkBAIC0xMjQwNyw3ICsxMjM5Miw3IEBAIHZvaWQgaW50 ZWxfY3J0Y19yZXN0b3JlX21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWludGVsX21vZGVz ZXRfc2V0dXBfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMsICZjcnRjLT5tb2RlLAogCQkJCQljcnRj LT5wcmltYXJ5LT5mYiwgY3J0Yy0+eCwgY3J0Yy0+eSk7CiAKLQlyZXQgPSBpbnRlbF9zZXRfbW9k ZShjcnRjLCBzdGF0ZSk7CisJcmV0ID0gaW50ZWxfc2V0X21vZGUoc3RhdGUpOwogCWlmIChyZXQp CiAJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiB9CkBAIC0xMjU1Nyw3ICsxMjU0Miw2 IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQg KnNldCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwogCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSA9IE5VTEw7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln OwogCWludCByZXQ7CiAKIAlCVUdfT04oIXNldCk7CkBAIC0xMjU4OCwxNSArMTI1NzIsMTMgQEAg c3RhdGljIGludCBpbnRlbF9jcnRjX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0 KQogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0JcGlwZV9jb25maWcgPSBpbnRlbF9tb2Rlc2V0 X2NvbXB1dGVfY29uZmlnKHNldC0+Y3J0Yywgc3RhdGUpOwotCWlmIChJU19FUlIocGlwZV9jb25m aWcpKSB7Ci0JCXJldCA9IFBUUl9FUlIocGlwZV9jb25maWcpOworCXJldCA9IGludGVsX21vZGVz ZXRfY29tcHV0ZV9jb25maWcoc3RhdGUpOworCWlmIChyZXQpCiAJCWdvdG8gb3V0OwotCX0KIAog CWludGVsX3VwZGF0ZV9waXBlX3NpemUodG9faW50ZWxfY3J0YyhzZXQtPmNydGMpKTsKIAotCXJl dCA9IGludGVsX3NldF9tb2RlX3dpdGhfY29uZmlnKHNldC0+Y3J0YywgcGlwZV9jb25maWcpOwor CXJldCA9IGludGVsX3NldF9tb2RlX2NoZWNrZWQoc3RhdGUpOwogCWlmIChyZXQpIHsKIAkJRFJN X0RFQlVHX0tNUygiZmFpbGVkIHRvIHNldCBtb2RlIG9uIFtDUlRDOiVkXSwgZXJyID0gJWRcbiIs CiAJCQkgICAgICBzZXQtPmNydGMtPmJhc2UuaWQsIHJldCk7Ci0tIAoyLjEuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK