From: Lyude Paul Subject: [PATCH v6 08/10] drm/i915: Make intel_dp_mst_atomic_check() idempotent Date: Wed, 11 Apr 2018 15:29:35 -0400 Message-ID: <20180411192951.21997-9-lyude@redhat.com> References: <20180411192951.21997-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180411192951.21997-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: David Airlie , linux-kernel@vger.kernel.org, Manasi Navare , 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 aGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyB8IDc4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1NyBp bnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21z dC5jCmluZGV4IDQwYWY5MzhlMmZlNy4uNzRiOWViZDdiOTk2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9tc3QuYwpAQCAtMzAsNiArMzAsMzggQEAKICNpbmNsdWRlIDxkcm0vZHJtX2NydGNf aGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAKK3N0YXRpYyBpbnQKK2ludGVs X2RwX21zdF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKKwkJCQkgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAor CQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKK3sKKwlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICppbnRlbF9jcnRjX3N0YXRlID0KKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0 YXRlKTsKKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CisJc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfbWdyICptZ3I7CisJaW50IHNsb3RzLCByZXQ7CisKKwlzbG90cyA9IGludGVsX2Ny dGNfc3RhdGUtPmRwX21fbi50dTsKKwlpZiAoc2xvdHMgPD0gMCkKKwkJcmV0dXJuIDA7CisKKwll bmNvZGVyID0gY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyOworCW1nciA9ICZlbmNfdG9fbXN0KGVu Y29kZXIpLT5wcmltYXJ5LT5kcC5tc3RfbWdyOworCisJcmV0ID0gZHJtX2RwX2F0b21pY19yZWxl YXNlX3ZjcGlfc2xvdHMoc3RhdGUsIG1nciwgc2xvdHMpOworCWlmIChyZXQpIHsKKwkJRFJNX0RF QlVHX0tNUygiZmFpbGVkIHJlbGVhc2luZyAlZCB2Y3BpIHNsb3RzOiVkXG4iLAorCQkJICAgICAg c2xvdHMsIHJldCk7CisJfSBlbHNlIHsKKwkJbmV3X2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dl dF9jcnRjX3N0YXRlKHN0YXRlLAorCQkJCQkJCSAgIGNydGNfc3RhdGUtPmNydGMpOworCQl0b19p bnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKS0+ZHBfbV9uLnR1ID0gMDsKKwl9CisKKwly ZXR1cm4gcmV0OworfQorCiBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZywKIAkJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCkBAIC00MSwxMSArNzMsMTUgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvciA9CiAJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmln LT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0 ZSA9CisJCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsICZjb25uZWN0 b3ItPmJhc2UpOworCXN0cnVjdCBkcm1fY3J0YyAqb2xkX2NydGM7CiAJc3RydWN0IGludGVsX2Rw X21zdF90b3BvbG9neV9zdGF0ZSAqbXN0X3N0YXRlOwogCWludCBicHA7CiAJaW50IHNsb3RzOwog CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJaW50IG1zdF9wYm47CisJaW50IHJldDsKIAlib29s IHJlZHVjZV9tX24gPSBkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9kcC0+ZGVzYywKIAkJCQkJICAg RFBfRFBDRF9RVUlSS19MSU1JVEVEX01fTik7CiAKQEAgLTc4LDYgKzExNCwxNyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJbXN0X3BibiA9IGRybV9kcF9jYWxjX3Bibl9tb2RlKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2ssIGJwcCk7CiAJcGlwZV9jb25maWctPnBibiA9IG1zdF9wYm47CiAKKwkvKiBGcmVl IGFueSBWQ1BJIGFsbG9jYXRpb25zIG9uIHRoaXMgY29ubmVjdG9yIGZyb20gdGhlIHByZXZpb3Vz CisJICogc3RhdGUgKi8KKwlvbGRfY3J0YyA9IG9sZF9jb25uX3N0YXRlLT5jcnRjOworCWlmIChv bGRfY3J0YykgeworCQlyZXQgPSBpbnRlbF9kcF9tc3RfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90 cygKKwkJICAgIHN0YXRlLCBkcm1fYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgb2xk X2NydGMpLAorCQkgICAgb2xkX2Nvbm5fc3RhdGUpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJl dDsKKwl9CisKIAlzbG90cyA9IGRybV9kcF9hdG9taWNfZmluZF92Y3BpX3Nsb3RzKHN0YXRlLCAm aW50ZWxfZHAtPm1zdF9tZ3IsCiAJCQkJCSAgICAgIGNvbm5lY3Rvci0+cG9ydCwgbXN0X3Bibik7 CiAJaWYgKHNsb3RzIDwgMCkgewpAQCAtMTA3LDMxICsxNTQsMjAgQEAgc3RhdGljIGludCBpbnRl bF9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiB7 CiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gbmV3X2Nvbm5fc3RhdGUtPnN0YXRl OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKLQlzdHJ1Y3Qg ZHJtX2NydGMgKm9sZF9jcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK LQlpbnQgc2xvdHMsIHJldCA9IDA7CisJaW50IHJldCA9IDA7CiAKIAlvbGRfY29ubl9zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Ci0J b2xkX2NydGMgPSBvbGRfY29ubl9zdGF0ZS0+Y3J0YzsKLQlpZiAoIW9sZF9jcnRjKQotCQlyZXR1 cm4gcmV0OwogCi0JY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0 YXRlLCBvbGRfY3J0Yyk7Ci0Jc2xvdHMgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUp LT5kcF9tX24udHU7Ci0JaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3Rh dGUpICYmIHNsb3RzID4gMCkgewotCQlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1n cjsKLQkJc3RydWN0IGRybV9lbmNvZGVyICpvbGRfZW5jb2RlcjsKLQotCQlvbGRfZW5jb2RlciA9 IG9sZF9jb25uX3N0YXRlLT5iZXN0X2VuY29kZXI7Ci0JCW1nciA9ICZlbmNfdG9fbXN0KG9sZF9l bmNvZGVyKS0+cHJpbWFyeS0+ZHAubXN0X21ncjsKKwkvKiBPbmx5IGZyZWUgVkNQSSBoZXJlIGlm IHdlJ3JlIG5vdCBnb2luZyB0byBiZSBkZXRhY2hpbmcgdGhlCisJICogY29ubmVjdG9yJ3MgY3Vy cmVudCBDUlRDLCBzaW5jZSBubyBjb25maWcgd2lsbCBiZSBjb21wdXRlZAorCSAqLworCWlmIChu ZXdfY29ubl9zdGF0ZS0+Y3J0YyB8fCAhb2xkX2Nvbm5fc3RhdGUtPmNydGMpCisJCXJldHVybiBy ZXQ7CiAKLQkJcmV0ID0gZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMoc3RhdGUsIG1n ciwgc2xvdHMpOwotCQlpZiAocmV0KQotCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHJlbGVhc2lu ZyAlZCB2Y3BpIHNsb3RzOiVkXG4iLCBzbG90cywgcmV0KTsKLQkJZWxzZQotCQkJdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+ZHBfbV9uLnR1ID0gMDsKLQl9Ci0JcmV0dXJuIHJldDsK KwlyZXR1cm4gaW50ZWxfZHBfbXN0X2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMoCisJICAgIHN0 YXRlLAorCSAgICBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgb2xkX2Nvbm5f c3RhdGUtPmNydGMpLAorCSAgICBvbGRfY29ubl9zdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGlu dGVsX21zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotLSAKMi4x NC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK