From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 08/42] drm/i915: Implement intel_crtc_toggle using atomic state Date: Mon, 11 May 2015 16:24:44 +0200 Message-ID: <1431354318-11995-9-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 19EB26E3F2 for ; Mon, 11 May 2015 07:25:44 -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 QXNzdW1lIHRoZSBmdW5jdGlvbiBpcyBsb2NrZWQgd2l0aCBkcm1fbW9kZXNldF9sb2NrX2FsbCBm b3Igbm93LgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNzkg KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDUw IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmlu ZGV4IDlkYTk1NWU0ZjM1NS4uYTY4MTY1MDNhMDgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK QEAgLTc5Niw3ICs3OTYsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0X3ZibGFua190aW1lc3RhbXAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUsCiAJCXJldHVybiAtRUlOVkFMOwogCX0K IAotCWlmICghY3J0Yy0+c3RhdGUtPmVuYWJsZSkgeworCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2 ZSkgewogCQlEUk1fREVCVUdfS01TKCJjcnRjICVkIGlzIGRpc2FibGVkXG4iLCBwaXBlKTsKIAkJ cmV0dXJuIC1FQlVTWTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXgg OGMyZmI5NTEwMjliLi5hMjFiMmU1MWMwNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKQEAgLTQ2NTYsNyArNDY1Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfbG9hZF9s dXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWJvb2wgcmVlbmFibGVfaXBzID0gZmFsc2U7CiAK IAkvKiBUaGUgY2xvY2tzIGhhdmUgdG8gYmUgb24gdG8gbG9hZCB0aGUgcGFsZXR0ZS4gKi8KLQlp ZiAoIWNydGMtPnN0YXRlLT5lbmFibGUgfHwgIWludGVsX2NydGMtPmFjdGl2ZSkKKwlpZiAoIWNy dGMtPnN0YXRlLT5hY3RpdmUgfHwgIWludGVsX2NydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwogCiAJ aWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYtPmRldikpIHsKQEAgLTU3NjcsNyArNTc2Nyw3 IEBAIHN0YXRpYyBpbnQgdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkvKiBhZGQgYWxsIGFjdGl2ZSBwaXBlcyB0byB0aGUg c3RhdGUgKi8KIAlmb3JfZWFjaF9jcnRjKHN0YXRlLT5kZXYsIGNydGMpIHsKLQkJaWYgKCFjcnRj LT5zdGF0ZS0+ZW5hYmxlKQorCQlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCQljb250aW51 ZTsKIAogCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7CkBAIC01ODY1LDcgKzU4NjUsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5h YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 CiAJYm9vbCBpc19kc2k7CiAKLQlXQVJOX09OKCFjcnRjLT5zdGF0ZS0+ZW5hYmxlKTsKKwlXQVJO X09OKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpCiAJ CXJldHVybjsKQEAgLTU5NDMsNyArNTk0Myw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFi bGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy OwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAotCVdBUk5fT04oIWNydGMtPnN0YXRl LT5lbmFibGUpOworCVdBUk5fT04oIWNydGMtPnN0YXRlLT5hY3RpdmUpOwogCiAJaWYgKGludGVs X2NydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwpAQCAtNjA1NCwxMCArNjA1NCwxMyBAQCBzdGF0aWMg dm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB2b2lkIGludGVs X2NydGNfY29udHJvbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQogewogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmln ICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWly ZV9jdHggKmN0eCA9IGNvbmZpZy0+YWNxdWlyZV9jdHg7CiAJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCWVudW0gaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW4gZG9tYWluOwotCXVuc2lnbmVkIGxvbmcgZG9tYWluczsKKwlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWc7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCWludCByZXQ7CiAKIAlp ZiAoZW5hYmxlID09IGludGVsX2NydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwpAQCAtNjA2NSwyNCAr NjA2OCw0MCBAQCB2b2lkIGludGVsX2NydGNfY29udHJvbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGJvb2wgZW5hYmxlKQogCWlmIChlbmFibGUgJiYgIWNydGMtPnN0YXRlLT5lbmFibGUpCiAJCXJl dHVybjsKIAotCWNydGMtPnN0YXRlLT5hY3RpdmUgPSBlbmFibGU7Ci0JaWYgKGVuYWJsZSkgewot CQlkb21haW5zID0gZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhjcnRjKTsKLQkJZm9yX2VhY2hfcG93 ZXJfZG9tYWluKGRvbWFpbiwgZG9tYWlucykKLQkJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRl dl9wcml2LCBkb21haW4pOwotCQlpbnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnMgPSBk b21haW5zOworCS8qIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aXRoIGRybV9tb2Rl c2V0X2xvY2tfYWxsIGZvciBub3cgKi8KKwlpZiAoV0FSTl9PTighY3R4KSkKKwkJcmV0dXJuOwor CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmN0eC0+d3dfY3R4KTsKIAotCQlkZXZfcHJpdi0+ZGlzcGxh eS5jcnRjX2VuYWJsZShjcnRjKTsKLQkJaW50ZWxfY3J0Y19lbmFibGVfcGxhbmVzKGNydGMpOwot CX0gZWxzZSB7Ci0JCWludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoY3J0Yyk7Ci0JCWRldl9wcml2 LT5kaXNwbGF5LmNydGNfZGlzYWJsZShjcnRjKTsKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVf YWxsb2MoZGV2KTsKKwlpZiAoV0FSTl9PTighc3RhdGUpKQorCQlyZXR1cm47CiAKLQkJZG9tYWlu cyA9IGludGVsX2NydGMtPmVuYWJsZWRfcG93ZXJfZG9tYWluczsKLQkJZm9yX2VhY2hfcG93ZXJf ZG9tYWluKGRvbWFpbiwgZG9tYWlucykKLQkJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9w cml2LCBkb21haW4pOwotCQlpbnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnMgPSAwOwor CXN0YXRlLT5hY3F1aXJlX2N0eCA9IGN0eDsKKwlzdGF0ZS0+YWxsb3dfbW9kZXNldCA9IHRydWU7 CisKKwlwaXBlX2NvbmZpZyA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50 ZWxfY3J0Yyk7CisJaWYgKElTX0VSUihwaXBlX2NvbmZpZykpIHsKKwkJcmV0ID0gUFRSX0VSUihw aXBlX2NvbmZpZyk7CisJCWdvdG8gZXJyOwogCX0KKwlwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUg PSBlbmFibGU7CisKKwlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0 YXRlLCBjcnRjLT5wcmltYXJ5KTsKKwlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgeworCQlyZXQg PSBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKKwkJZ290byBlcnI7CisJfQorCisJcmV0ID0gaW50ZWxf c2V0X21vZGUoY3J0Yywgc3RhdGUpOworCWlmICghcmV0KQorCQlyZXR1cm47CisKKwlEUk1fRVJS T1IoIkZhaWxlZCB0byB0b2dnbGUgY3J0YyFcbiIpOworCitlcnI6CisJRFJNX0VSUk9SKCJVcGRh dGluZyBjcnRjIGFjdGl2ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKKwlkcm1fYXRvbWljX3N0 YXRlX2ZyZWUoc3RhdGUpOwogfQogCiAvKioKQEAgLTYxNTgsNyArNjE3Nyw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2Nvbm5lY3Rvcl9jaGVja19zdGF0ZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCiAKIAkJCWNydGMgPSBlbmNvZGVyLT5iYXNlLmNydGM7CiAKLQkJCUk5MTVfU1RB VEVfV0FSTighY3J0Yy0+c3RhdGUtPmVuYWJsZSwKKwkJCUk5MTVfU1RBVEVfV0FSTighY3J0Yy0+ c3RhdGUtPmFjdGl2ZSwKIAkJCQkJImNydGMgbm90IGVuYWJsZWRcbiIpOwogCQkJSTkxNV9TVEFU RV9XQVJOKCF0b19pbnRlbF9jcnRjKGNydGMpLT5hY3RpdmUsICJjcnRjIG5vdCBhY3RpdmVcbiIp OwogCQkJSTkxNV9TVEFURV9XQVJOKHBpcGUgIT0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZSwK QEAgLTExNTU0LDcgKzExNTczLDcgQEAgaW50ZWxfbW9kZXNldF91cGRhdGVfc3RhdGUoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlpZiAoIWNydGNfc3RhdGUgfHwgIW5lZWRzX21v ZGVzZXQoY3J0Yy0+c3RhdGUpKQogCQkJY29udGludWU7CiAKLQkJaWYgKGNydGMtPnN0YXRlLT5l bmFibGUpIHsKKwkJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKIAkJCXN0cnVjdCBkcm1fcHJv cGVydHkgKmRwbXNfcHJvcGVydHkgPQogCQkJCWRldi0+bW9kZV9jb25maWcuZHBtc19wcm9wZXJ0 eTsKIApAQCAtMTIwMTgsNyArMTIwMzcsNyBAQCBjaGVja19zaGFyZWRfZHBsbF9zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgICAgIHBsbC0+b24sIGFjdGl2ZSk7CiAKIAkJZm9yX2Vh Y2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKLQkJCWlmIChjcnRjLT5iYXNlLnN0YXRlLT5lbmFi bGUgJiYgaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCisJCQlpZiAoY3J0 Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlICYmIGludGVsX2NydGNfdG9fc2hhcmVkX2RwbGwoY3J0Yykg PT0gcGxsKQogCQkJCWVuYWJsZWRfY3J0Y3MrKzsKIAkJCWlmIChjcnRjLT5hY3RpdmUgJiYgaW50 ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCiAJCQkJYWN0aXZlX2NydGNzKys7 CkBAIC0xMjE4NSw3ICsxMjIwNCw3IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9zZXR1 cF9wbGxzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJZ290byBkb25lOwogCiAJ Zm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlp ZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwgIWNydGNfc3RhdGUtPmVuYWJsZSkKKwkJ aWYgKCFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpIHx8ICFjcnRjX3N0YXRlLT5hY3RpdmUpCiAJ CQljb250aW51ZTsKIAogCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKQEAgLTEy MjY1LDcgKzEyMjg0LDcgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1f Y3J0YyAqbW9kZXNldF9jcnRjLAogCSAqIHBpcGVzOyBoZXJlIHdlIGFzc3VtZSBhIHNpbmdsZSBt b2Rlc2V0X3BpcGUgYW5kIG9ubHkgdHJhY2sgdGhlCiAJICogc2luZ2xlIGNydGMgYW5kIG1vZGUu CiAJICovCi0JaWYgKHBpcGVfY29uZmlnLT5iYXNlLmVuYWJsZSAmJiBuZWVkc19tb2Rlc2V0KCZw aXBlX2NvbmZpZy0+YmFzZSkpIHsKKwlpZiAocGlwZV9jb25maWctPmJhc2UuYWN0aXZlICYmIG5l ZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5iYXNlKSkgewogCQltb2Rlc2V0X2NydGMtPm1vZGUg PSBwaXBlX2NvbmZpZy0+YmFzZS5tb2RlOwogCiAJCS8qCkBAIC0xMjI5MCw3ICsxMjMwOSw3IEBA IHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKm1vZGVzZXRfY3J0 YywKIAogCS8qIE5vdyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0 b3JzIHRoYXQgd2Ugc2V0IHVwLiAqLwogCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNy dGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSB8 fCAhY3J0Yy0+c3RhdGUtPmVuYWJsZSkKKwkJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKQogCQkJ Y29udGludWU7CiAKIAkJdXBkYXRlX3NjYW5saW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGNydGMp KTsKQEAgLTE0NTE2LDcgKzE0NTM1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0 YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkgKiBoYXZlIGFjdGl2ZSBjb25uZWN0b3JzL2Vu Y29kZXJzLiAqLwogCWludGVsX2NydGNfdXBkYXRlX2RwbXMoJmNydGMtPmJhc2UpOwogCi0JaWYg KGNydGMtPmFjdGl2ZSAhPSBjcnRjLT5iYXNlLnN0YXRlLT5lbmFibGUpIHsKKwlpZiAoY3J0Yy0+ YWN0aXZlICE9IGNydGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSkgewogCQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKIAogCQkvKiBUaGlzIGNhbiBoYXBwZW4gZWl0aGVyIGR1ZSB0byBidWdz IGluIHRoZSBnZXRfaHdfc3RhdGUKQEAgLTE0NjY1LDcgKzE0Njg0LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAK IAkJY3J0Yy0+Y29uZmlnLT5xdWlya3MgfD0gUElQRV9DT05GSUdfUVVJUktfSU5IRVJJVEVEX01P REU7CiAKLQkJaWYgKGNydGMtPmFjdGl2ZSkKKwkJaWYgKGNydGMtPmJhc2Uuc3RhdGUtPmFjdGl2 ZSkKIAkJCSpjcnRjX21hc2sgfD0gZHJtX2NydGNfaW5kZXgoJmNydGMtPmJhc2UpOwogCiAJCWNy dGMtPmFjdGl2ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLAotLSAK Mi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==