From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v5 2/4] drm/dp_helper: Retry aux transactions on all errors Date: Wed, 13 Apr 2016 10:58:31 -0400 Message-ID: <1460559513-32280-3-git-send-email-cpaul@redhat.com> References: <87d1pvt9ka.fsf@intel.com> <1460559513-32280-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460559513-32280-1-git-send-email-cpaul@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, dri-devel@lists.freedesktop.org, Jani Nikula , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= Cc: Lyude , open list List-Id: dri-devel@lists.freedesktop.org VGhpcyBpcyBwYXJ0IG9mIGEgcGF0Y2ggc2VyaWVzIHRvIG1pZ3JhdGUgYWxsIG9mIHRoZSB3b3Jr YXJvdW5kcyBmb3IKY29tbW9ubHkgc2VlbiBiZWhhdmlvciBmcm9tIGJhZCBzaW5rcyBpbiBpbnRl bF9kcF9kcGNkX3JlYWRfd2FrZSgpIHRvCmRybSdzIERQIGhlbHBlci4KCldlIGNhbm5vdCByZWx5 IG9uIHNpbmtzIE5BQ0tpbmcgb3IgZGVmZXJyaW5nIHdoZW4gdGhleSBjYW4ndCByZWNlaXZlCnRy YW5zYWN0aW9ucywgbm9yIGNhbiB3ZSByZWx5IG9uIGFueSBvdGhlciBzb3J0IG9mIGNvbnNpc3Rl bnQgZXJyb3IgdG8Ka25vdyB3aGVuIHdlIHNob3VsZCBzdG9wIHJldHJ5aW5nLiBBcyBzdWNoLCB3 ZSBuZWVkIHRvIGp1c3QgcmV0cnkKdW5jb25kaXRpb25hbGx5IG9uIGVycm9ycy4gV2UgYWxzbyBt YWtlIHN1cmUgaGVyZSB0byByZXR1cm4gdGhlIGVycm9yIHdlCmVuY291bnRlcmVkIGR1cmluZyB0 aGUgZmlyc3QgdHJhbnNhY3Rpb24sIHNpbmNlIGl0J3MgcG9zc2libGUgdGhhdApyZXRyeWluZyB0 aGUgdHJhbnNhY3Rpb24gbWlnaHQgcmV0dXJuIGEgZGlmZmVyZW50IGVycm9yIHRoZW4gd2UgaGFk Cm9yaWdpbmFsbHkuCgpUaGlzLCBhbG9uZyB3aXRoIHRoZSBwcmV2aW91cyBwYXRjaCwgd29yayBh cm91bmQgYSB3ZWlyZCBidWcgd2l0aCB0aGUKVGhpbmtQYWQgVDU2MCdzIGFuZCBpdCdzIGRvY2su IFdoZW4gcmVzdW1pbmcgdGhlIGxhcHRvcCwgaXQgYXBwZWFycyB0aGF0CnRoZXJlJ3MgYSBzaG9y dCBwZXJpb2Qgb2YgdGltZSB3aGVyZSB3ZSdyZSB1bmFibGUgdG8gY29tcGxldGUgYW55IGF1eAp0 cmFuc2FjdGlvbnMsIGFzIHRoZXkgYWxsIGltbWVkaWF0ZWx5IHRpbWVvdXQuIFRoZSBvbmx5IG1h Y2hpbmUgSSdtIGFibGUKdG8gcmVwcm9kdWNlIHRoaXMgb24gaXMgdGhlIFQ1NjAgYXMgb3RoZXIg cHJvZHVjdGlvbiBTa3lsYWtlIG1vZGVscyBzZWVtCnRvIGJlIGZpbmUuIFRoZSBwZXJpb2QgZHVy aW5nIHdoaWNoIEFVWCB0cmFuc2FjdGlvbnMgZmFpbCBhcHBlYXJzIHRvIGJlCmFyb3VuZCAyMm1z IGxvbmcuIEFGQUlLLCB0aGUgZG9jayBmb3IgdGhlIFQ1NjAgbmV2ZXIgYWN0dWFsbHkgdHVybnMg b2ZmLAp0aGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgaXQncyBpbiBTU1QgbW9kZSBhdCB0aGUg c3RhcnQgb2YgdGhlIHJlc3VtZQpwcm9jZXNzLCBzbyBpdCdzIHVuY2xlYXIgYXMgdG8gd2h5IGl0 IHdvdWxkIG5lZWQgc28gbXVjaCB0aW1lIHRvIGNvbWUKYmFjayB1cC4KClRoZXJlJ3MgYmVlbiBh IGRpc2N1c3Npb24gb24gdGhpcyBpc3N1ZSBnb2luZyBvbiBmb3IgYSB3aGlsZSBvbiB0aGUKaW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdCBhYm91dCB0aGlzIHRoYXQgaGFzLCBpbiBhZGRpdGlvbiB0byBp bmNsdWRpbmcKZGV2ZWxvcGVycyBmcm9tIEludGVsLCBhbHNvIGhhZCB0aGUgY29ycmVzcG9uZGVu Y2Ugb2Ygb25lIG9mIHRoZQpoYXJkd2FyZSBlbmdpbmVlcnMgZm9yIEludGVsOgoKaHR0cDovL3d3 dy5zcGluaWNzLm5ldC9saXN0cy9pbnRlbC1nZngvbXNnODg4MzEuaHRtbApodHRwOi8vd3d3LnNw aW5pY3MubmV0L2xpc3RzL2ludGVsLWdmeC9tc2c4ODQxMC5odG1sCgpXZSd2ZSBhbHJlYWR5IGxv b2tlZCBpbnRvIGEgY291cGxlIG9mIHBvc3NpYmxlIGV4cGxhbmF0aW9ucyBmb3IgdGhlCnByb2Js ZW06CgotIENhbGxpbmcgaW50ZWxfZHBfbXN0X3Jlc3VtZSgpIGJlZm9yZSByaWdodCBmaXguCiAg aW50ZWxfcnVudGltZV9wbV9lbmFibGVfaW50ZXJydXB0cygpLiBUaGlzIHdhcyB0aGUgZmlyc3Qg Zml4IEkgdHJpZWQsCiAgYW5kIHdoaWxlIGl0IHdvcmtlZCBpdCBkZWZpbml0ZWx5IHdhc24ndCB0 aGUgcmlnaHQgZml4LiBUaGlzIHdvcmtlZAogIGJlY2F1c2UgRFAgYXV4IHRyYW5zYWN0aW9ucyBk b24ndCBhY3R1YWxseSByZXF1aXJlIGludGVycnVwdHMgdG8gd29yazoKCglzdGF0aWMgdWludDMy X3QKCWludGVsX2RwX2F1eF93YWl0X2RvbmUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgYm9v bCBoYXNfYXV4X2lycSkKCXsKCQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7CgkJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKCQlpOTE1X3JlZ190IGNoX2N0bCA9IGlu dGVsX2RwLT5hdXhfY2hfY3RsX3JlZzsKCQl1aW50MzJfdCBzdGF0dXM7CgkJYm9vbCBkb25lOwoK CSNkZWZpbmUgQyAoKChzdGF0dXMgPSBJOTE1X1JFQURfTk9UUkFDRShjaF9jdGwpKSAmIERQX0FV WF9DSF9DVExfU0VORF9CVVNZKSA9PSAwKQoJCWlmIChoYXNfYXV4X2lycSkKCQkJZG9uZSA9IHdh aXRfZXZlbnRfdGltZW91dChkZXZfcHJpdi0+Z21idXNfd2FpdF9xdWV1ZSwgQywKCQkJCQkJICBt c2Vjc190b19qaWZmaWVzX3RpbWVvdXQoMTApKTsKCQllbHNlCgkJCWRvbmUgPSB3YWl0X2Zvcl9h dG9taWMoQywgMTApID09IDA7CgkJaWYgKCFkb25lKQoJCQlEUk1fRVJST1IoImRwIGF1eCBodyBk aWQgbm90IHNpZ25hbCB0aW1lb3V0IChoYXMgaXJxOiAlaSkhXG4iLAoJCQkJICBoYXNfYXV4X2ly cSk7CgkjdW5kZWYgQwoKCQlyZXR1cm4gc3RhdHVzOwoJfQoKICBXaGVuIHRoZXJlJ3Mgbm8gaW50 ZXJydXB0cyBlbmFibGVkLCB3ZSBlbmQgdXAgdGltaW5nIG91dCBvbiB0aGUKICB3YWl0X2V2ZW50 X3RpbWVvdXQoKSBjYWxsLCB3aGljaCBjYXVzZXMgdXMgdG8gY2hlY2sgdGhlIERQIHN0YXR1cwog IHJlZ2lzdGVyIG9uY2UgdG8gc2VlIGlmIHRoZSB0cmFuc2FjdGlvbiB3YXMgc3VjY2Vzc2Z1bCBv ciBub3QuIFNpbmNlCiAgdGhpcyBhZGRzIGEgMTBtcyBkZWxheSB0byBlYWNoIGF1eCB0cmFuc2Fj dGlvbiwgaXQgZW5kcyB1cCBhZGRpbmcgYQogIGxvbmcgZW5vdWdoIGRlbGF5IHRvIHRoZSByZXN1 bWUgcHJvY2VzcyBmb3IgYXV4IHRyYW5zYWN0aW9ucyB0byBiZWNvbWUKICBmdW5jdGlvbmFsIGFn YWluLiBUaGlzIGdhdmUgdXMgdGhlIGlsbHVzaW9uIHRoYXQgZW5hYmxpbmcgaW50ZXJydXB0cwog IGhhZCBzb21ldGhpbmcgdG8gZG8gd2l0aCBtYWtpbmcgdGhpbmdzIHdvcmsgYWdhaW4sIGFuZCBw dXQgbWUgb24gdGhlCiAgd3JvbmcgdHJhY2sgZm9yIGEgd2hpbGUuCgotIEludGVycnVwdHMgb2Nj dXJyaW5nIHdoZW4gd2UgdHJ5IHRvIHBlcmZvcm0gdGhlIGF1eCB0cmFuc2FjdGlvbnMKICByZXF1 aXJlZCB0byBwdXQgdGhlIGRvY2sgYmFjayBpbnRvIE1TVCBtb2RlLiBUaGlzIGlzbid0IHRoZSBw cm9ibGVtLAogIGFzIHRoZSBvbmx5IGludGVycnVwdHMgSSd2ZSBvYnNlcnZlZCB0aGF0IGNvbWUg ZHVyaW5nIHRoaXMgdGltZW91dAogIHBlcmlvZCBhcmUgZnJvbSB0aGUgc25kX2hkYV9pbnRlbCBk cml2ZXIsIGFuZCBkaXNhYmxpbmcgdGhhdCBkcml2ZXIKICBkb2Vzbid0IGFwcGVhciB0byBjaGFu Z2UgdGhlIGJlaGF2aW9yIGF0IGFsbC4KCi0gU2t5bGFrZSdzIFBTUiBibG9jayBjYXVzaW5nIGlz c3VlcyBieSBwZXJmb3JtaW5nIGF1eCB0cmFuc2FjdGlvbnMKICB3aGlsZSB3ZSB0cnkgdG8gYnJp bmcgdGhlIGRvY2sgb3V0IG9mIE1TVCBtb2RlLiBEaXNhYmxpbmcgUFNSIHRocm91Z2gKICBpOTE1 J3MgY29tbWFuZCBsaW5lIG9wdGlvbnMgZG9lc24ndCBzZWVtIHRvIGNoYW5nZSB0aGUgYmVoYXZp b3IKICBlaXRoZXIsIG5vciBkb2VzIHByZXZlbnRpbmcgdGhlIERNQyBmaXJtd2FyZSBmcm9tIGJl aW5nIGxvYWRlZC4KClNpbmNlIHRoaXMgaW52ZXN0aWdhdGlvbiB3ZW50IG9uIGZvciBhYm91dCAy IHdlZWtzLCB3ZSBkZWNpZGVkIGl0IHdvdWxkCmJlIGJldHRlciBmb3IgdGhlIHRpbWUgYmVpbmcg dG8ganVzdCB3b3JrYXJvdW5kIHRoaXMgaXNzdWUgYnkgbWFraW5nCnN1cmUgQVVYIHRyYW5zYWN0 aW9ucyB3YWl0IGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUgYmVmb3JlIHJldHJ5aW5nLgoKU2lnbmVk LW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9kcF9oZWxwZXIuYyB8IDQyICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZHBfaGVscGVyLmMKaW5kZXggN2RkMzMwYS4uNTQwYzNlNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX2hlbHBlci5jCkBAIC0xNzgsOCArMTc4LDggQEAgc3RhdGljIGludCBkcm1fZHBfZHBjZF9h Y2Nlc3Moc3RydWN0IGRybV9kcF9hdXggKmF1eCwgdTggcmVxdWVzdCwKIAkJCSAgICAgIHVuc2ln bmVkIGludCBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGRy bV9kcF9hdXhfbXNnIG1zZzsKLQl1bnNpZ25lZCBpbnQgcmV0cnk7Ci0JaW50IGVyciA9IDA7CisJ dW5zaWduZWQgaW50IHJldHJ5LCBuYXRpdmVfcmVwbHk7CisJaW50IGVyciA9IDAsIHJldCA9IDA7 CiAKIAltZW1zZXQoJm1zZywgMCwgc2l6ZW9mKG1zZykpOwogCW1zZy5hZGRyZXNzID0gb2Zmc2V0 OwpAQCAtMTk2LDM3ICsxOTYsMzkgQEAgc3RhdGljIGludCBkcm1fZHBfZHBjZF9hY2Nlc3Moc3Ry dWN0IGRybV9kcF9hdXggKmF1eCwgdTggcmVxdWVzdCwKIAkgKiBzdWZmaWNpZW50LCBidW1wIHRv IDMyIHdoaWNoIG1ha2VzIERlbGwgNGsgbW9uaXRvcnMgaGFwcGllci4KIAkgKi8KIAlmb3IgKHJl dHJ5ID0gMDsgcmV0cnkgPCAzMjsgcmV0cnkrKykgewotCQlpZiAoZXJyICE9IDAgJiYgZXJyICE9 IC1FVElNRURPVVQpIHsKKwkJaWYgKHJldCAhPSAwICYmIHJldCAhPSAtRVRJTUVET1VUKSB7CiAJ CQl1c2xlZXBfcmFuZ2UoQVVYX1JFVFJZX0lOVEVSVkFMLAogCQkJCSAgICAgQVVYX1JFVFJZX0lO VEVSVkFMICsgMTAwKTsKIAkJfQogCi0JCWVyciA9IGF1eC0+dHJhbnNmZXIoYXV4LCAmbXNnKTsK LQkJaWYgKGVyciA8IDApIHsKLQkJCWlmIChlcnIgPT0gLUVCVVNZKQotCQkJCWNvbnRpbnVlOwot Ci0JCQlnb3RvIHVubG9jazsKLQkJfQorCQlyZXQgPSBhdXgtPnRyYW5zZmVyKGF1eCwgJm1zZyk7 CiAKLQkJc3dpdGNoIChtc2cucmVwbHkgJiBEUF9BVVhfTkFUSVZFX1JFUExZX01BU0spIHsKLQkJ Y2FzZSBEUF9BVVhfTkFUSVZFX1JFUExZX0FDSzoKLQkJCWlmIChlcnIgPCBzaXplKQotCQkJCWVy ciA9IC1FUFJPVE87Ci0JCQlnb3RvIHVubG9jazsKKwkJaWYgKHJldCA+IDApIHsKKwkJCW5hdGl2 ZV9yZXBseSA9IG1zZy5yZXBseSAmIERQX0FVWF9OQVRJVkVfUkVQTFlfTUFTSzsKKwkJCWlmIChu YXRpdmVfcmVwbHkgPT0gRFBfQVVYX05BVElWRV9SRVBMWV9BQ0spIHsKKwkJCQlpZiAocmV0ID09 IHNpemUpCisJCQkJCWdvdG8gdW5sb2NrOwogCi0JCWNhc2UgRFBfQVVYX05BVElWRV9SRVBMWV9O QUNLOgotCQkJZXJyID0gLUVJTzsKLQkJCWdvdG8gdW5sb2NrOworCQkJCXJldCA9IC1FUFJPVE87 CisJCQl9IGVsc2UKKwkJCQlyZXQgPSAtRUlPOwogCQl9CisKKwkJLyoKKwkJICogV2Ugd2FudCB0 aGUgZXJyb3Igd2UgcmV0dXJuIHRvIGJlIHRoZSBlcnJvciB3ZSByZWNlaXZlZCBvbgorCQkgKiB0 aGUgZmlyc3QgdHJhbnNhY3Rpb24sIHNpbmNlIHdlIG1heSBnZXQgYSBkaWZmZXJlbnQgZXJyb3Ig dGhlCisJCSAqIG5leHQgdGltZSB3ZSByZXRyeQorCQkgKi8KKwkJaWYgKCFlcnIpCisJCQllcnIg PSByZXQ7CiAJfQogCiAJRFJNX0RFQlVHX0tNUygidG9vIG1hbnkgcmV0cmllcywgZ2l2aW5nIHVw XG4iKTsKLQllcnIgPSAtRUlPOworCXJldCA9IGVycjsKIAogdW5sb2NrOgogCW11dGV4X3VubG9j aygmYXV4LT5od19tdXRleCk7Ci0JcmV0dXJuIGVycjsKKwlyZXR1cm4gcmV0OwogfQogCiAvKioK LS0gCjIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK