From: Lyude Paul Subject: [PATCH v7 08/10] drm/i915: Make intel_dp_mst_atomic_check() idempotent Date: Wed, 11 Apr 2018 18:54:45 -0400 Message-ID: <20180411225501.26751-9-lyude@redhat.com> References: <20180411225501.26751-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180411225501.26751-1-lyude@redhat.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: David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org VGhlIGN1cnJlbnQgd2F5IG9mIGhhbmRsaW5nIGNoYW5naW5nIFZDUEkgYWxsb2NhdGlvbnMgZG9l c24ndCBtYWtlIGEKd2hvbGUgdG9uIG9mIHNlbnNlLiBTaW5jZSBkcm1fYXRvbWljX2hlbHBlcl9j aGVja19tb2Rlc2V0KCkgY2FuIGJlCmNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3aGljaCBtZWFucyB0 aGF0IGludGVsX2RwX21zdF9hdG9taWNfY2hlY2soKSBjYW4KYWxzbyBiZSBjYWxsZWQgbXVsdGlw bGUgdGltZXMuIEhvd2V2ZXIsIHNpbmNlIHdlIG1ha2UgdGhlIHNpbGx5IG1pc3Rha2UKb2YgdHJ5 aW5nIHRvIGZyZWUgVkNQSSBzbG90cyBiYXNlZCBvZmYgdGhlIC9uZXcvIGF0b21pYyBzdGF0ZSBp bnN0ZWFkIG9mCnRoZSBvbGQgYXRvbWljIHN0YXRlLCB3ZSdsbCBlbmQgdXAgcG90ZW50aWFsbHkg ZG91YmxlIGZyZWVpbmcgdGhlIHZjcGkKc2xvdHMgZm9yIHRoZSBwb3J0cy4KClRoaXMgYWxzbyBo YXMgYW5vdGhlciB1bmludGVuZGVkIGNvbnNlcXVlbmNlIHRoYXQgY2FtZSBiYWNrIHVwIHdoaWxl CmltcGxlbWVudGluZyBNU1QgZmFsbGJhY2sgcmV0cmFpbmluZzogaWYgYSBtb2Rlc2V0IGlzIGZv cmNlZCBvbiBhCmNvbm5lY3RvciB0aGF0J3MgYWxyZWFkeSBwYXJ0IG9mIHRoZSBzdGF0ZSwgYnV0 IGl0J3MgYXRvbWljX2NoZWNrKCkgaGFzCmFscmVhZHkgYmVlbiBydW4gb25jZSBhbmQgZG9lc24n dCBnZXQgcnVuIGFnYWluLCB3ZSdsbCBlbmQgdXAgbm90CmZyZWVpbmcgdGhlIFZDUEkgYWxsb2Nh dGlvbnMgb24gdGhlIGNvbm5lY3RvciBhdCBhbGwuCgpUaGUgZWFzaWVzdCB3YXkgdG8gc29sdmUg dGhpcyBpcyB0byBiZSBjbGV2ZXIgYW5kLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKY29ubmVjdG9y cyB0aGF0IGFyZSBiZWluZyBkaXNhYmxlZCBhbmQgdGh1cyB3aWxsIG5ldmVyIGhhdmUKY29tcHV0 ZV9jb25maWcoKSByYW4gb24gdGhlbSwgbW92ZSB2Y3BpIGZyZWVpbmcgb3V0IG9mIHRoZSBhdG9t aWMgY2hlY2sKYW5kIGludG8gY29tcHV0ZV9jb25maWcoKS4KCkNjOiBNYW5hc2kgTmF2YXJlIDxt YW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVk aGF0LmNvbT4KClY3OgogLSBGaXggQ0hFQ0tQQVRDSCBlcnJvcnMKU2lnbmVkLW9mZi1ieTogTHl1 ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcF9tc3QuYyB8IDg0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCmluZGV4IDE5ZGUwYjVhN2E0MC4uMzFiMzc3MjJjZDg5IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwpAQCAtMzAsNiArMzAsMzggQEAKICNpbmNs dWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAK K3N0YXRpYyBpbnQKK2ludGVsX2RwX21zdF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICAgICAgc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwor CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRjX3N0YXRlID0KKwkJdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CisJ c3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3I7CisJaW50IHNsb3RzLCByZXQ7CisK KwlzbG90cyA9IGludGVsX2NydGNfc3RhdGUtPmRwX21fbi50dTsKKwlpZiAoc2xvdHMgPD0gMCkK KwkJcmV0dXJuIDA7CisKKwllbmNvZGVyID0gY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyOworCW1n ciA9ICZlbmNfdG9fbXN0KGVuY29kZXIpLT5wcmltYXJ5LT5kcC5tc3RfbWdyOworCisJcmV0ID0g ZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMoc3RhdGUsIG1nciwgc2xvdHMpOworCWlm IChyZXQpIHsKKwkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHJlbGVhc2luZyAlZCB2Y3BpIHNsb3Rz OiVkXG4iLAorCQkJICAgICAgc2xvdHMsIHJldCk7CisJfSBlbHNlIHsKKwkJbmV3X2NydGNfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLAorCQkJCQkJCSAgIGNydGNfc3Rh dGUtPmNydGMpOworCQl0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKS0+ZHBfbV9u LnR1ID0gMDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgYm9vbCBpbnRlbF9kcF9t c3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCkBAIC00NCwxMCArNzYsMTQgQEAgc3RhdGljIGJvb2wg aW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICptc3Rfc3RhdGUgPQogCQlkcm1f YXRvbWljX2RwX21zdF9nZXRfdG9wb2xvZ3lfc3RhdGUoc3RhdGUsICZpbnRlbF9kcC0+bXN0X21n cik7CiAJc3RydWN0IGludGVsX2RwX21zdF90b3BvbG9neV9zdGF0ZSAqaW50ZWxfbXN0X3N0YXRl OworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSA9CisJCWRybV9h dG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsICZjb25uZWN0b3ItPmJhc2UpOwor CXN0cnVjdCBkcm1fY3J0YyAqb2xkX2NydGM7CiAJaW50IGJwcDsKIAlpbnQgc2xvdHM7CiAJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgbXN0X3BibjsKKwlpbnQgcmV0OwogCWJvb2wgcmVk dWNlX21fbiA9IGRybV9kcF9oYXNfcXVpcmsoJmludGVsX2RwLT5kZXNjLAogCQkJCQkgICBEUF9E UENEX1FVSVJLX0xJTUlURURfTV9OKTsKIApAQCAtODAsNiArMTE2LDIxIEBAIHN0YXRpYyBib29s IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAltc3RfcGJuID0gZHJtX2RwX2NhbGNfcGJuX21vZGUoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jaywgYnBwKTsKIAlwaXBlX2NvbmZpZy0+cGJuID0gbXN0X3BibjsKIAorCS8qIEZyZWUgYW55 IFZDUEkgYWxsb2NhdGlvbnMgb24gdGhpcyBjb25uZWN0b3IgZnJvbSB0aGUgcHJldmlvdXMKKwkg KiBzdGF0ZQorCSAqLworCW9sZF9jcnRjID0gb2xkX2Nvbm5fc3RhdGUtPmNydGM7CisJaWYgKG9s ZF9jcnRjKSB7CisJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQorCQkJ ZHJtX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIG9sZF9jcnRjKTsKKworCQlyZXQg PSBpbnRlbF9kcF9tc3RfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cyhzdGF0ZSwKKwkJCQkJCQkg ICAgIG9sZF9jcnRjX3N0YXRlLAorCQkJCQkJCSAgICAgb2xkX2Nvbm5fc3RhdGUpOworCQlpZiAo cmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAlzbG90cyA9IGRybV9kcF9hdG9taWNfZmluZF92 Y3BpX3Nsb3RzKHN0YXRlLCAmaW50ZWxfZHAtPm1zdF9tZ3IsCiAJCQkJCSAgICAgIGNvbm5lY3Rv ci0+cG9ydCwgbXN0X3Bibik7CiAJaWYgKHNsb3RzIDwgMCkgewpAQCAtMTA5LDMxICsxNjAsMjIg QEAgc3RhdGljIGludCBpbnRlbF9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCiB7CiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gbmV3 X2Nvbm5fc3RhdGUtPnN0YXRlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29u bl9zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKm9sZF9jcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZTsKLQlpbnQgc2xvdHMsIHJldCA9IDA7CisJc3RydWN0IGRybV9jcnRj X3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKKwlpbnQgcmV0ID0gMDsKIAogCW9sZF9jb25uX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yKTsK LQlvbGRfY3J0YyA9IG9sZF9jb25uX3N0YXRlLT5jcnRjOwotCWlmICghb2xkX2NydGMpCi0JCXJl dHVybiByZXQ7CiAKLQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo c3RhdGUsIG9sZF9jcnRjKTsKLQlzbG90cyA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0 ZSktPmRwX21fbi50dTsKLQlpZiAoZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19z dGF0ZSkgJiYgc2xvdHMgPiAwKSB7Ci0JCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAq bWdyOwotCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKm9sZF9lbmNvZGVyOwotCi0JCW9sZF9lbmNvZGVy ID0gb2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKLQkJbWdyID0gJmVuY190b19tc3Qob2xk X2VuY29kZXIpLT5wcmltYXJ5LT5kcC5tc3RfbWdyOworCS8qIE9ubHkgZnJlZSBWQ1BJIGhlcmUg aWYgd2UncmUgbm90IGdvaW5nIHRvIGJlIGRldGFjaGluZyB0aGUKKwkgKiBjb25uZWN0b3IncyBj dXJyZW50IENSVEMsIHNpbmNlIG5vIGNvbmZpZyB3aWxsIGJlIGNvbXB1dGVkCisJICovCisJaWYg KG5ld19jb25uX3N0YXRlLT5jcnRjIHx8ICFvbGRfY29ubl9zdGF0ZS0+Y3J0YykKKwkJcmV0dXJu IHJldDsKIAotCQlyZXQgPSBkcm1fZHBfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cyhzdGF0ZSwg bWdyLCBzbG90cyk7Ci0JCWlmIChyZXQpCi0JCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgcmVsZWFz aW5nICVkIHZjcGkgc2xvdHM6JWRcbiIsIHNsb3RzLCByZXQpOwotCQllbHNlCi0JCQl0b19pbnRl bF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLT5kcF9tX24udHUgPSAwOwotCX0KLQlyZXR1cm4gcmV0 OworCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUs CisJCQkJCQkgICAgICAgb2xkX2Nvbm5fc3RhdGUtPmNydGMpOworCXJldHVybiBpbnRlbF9kcF9t c3RfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cyhzdGF0ZSwKKwkJCQkJCSAgICAgIG5ld19jcnRj X3N0YXRlLAorCQkJCQkJICAgICAgb2xkX2Nvbm5fc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBp bnRlbF9tc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKLS0gCjIu MTQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==