From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/2] drm/i915/gen8: Tidy display interrupt processing Date: Tue, 12 Jan 2016 16:04:06 +0000 Message-ID: <1452614647-13973-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E5376E693 for ; Tue, 12 Jan 2016 08:04:51 -0800 (PST) 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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCk9uZSBidWdm aXggYW5kIGEgZmV3IHRpZHktdXBzOgoKICogUGlwZSBmYXVsdCBsb2dnaW5nIHdhcyBicm9rZW4g b24gR2VuOSsuCiAqIFJlbW92ZWQgc29tZSB1bm5lY2Vzc2FyeSBsb2NhbCB2YXJpYWJsZXMuCiAq IFJlbW92ZWQgdW5uZWNlc3NhcnkgaW5pdGlhbGl6ZXJzLgogKiBEZWNyZWFzZWQgcGlwZSBpaXIg YmxvY2sgaW5kZW50YXRpb24gbGV2ZWwuCiAqIEdyb3VwZWQgdmFyaWFibGUgaW5pdGlhbGl6YXRp b24gY2xvc2UgdG8gdXNlIHNpdGVzLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2 cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jIHwgMTMxICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwppbmRleCBmMDRkNzk5MTUzY2EuLjc5NzJjZWVlNjA5NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCkBAIC0yMjY4LDExICsyMjY4LDkgQEAgc3RhdGljIGlycXJldHVybl90IGdl bjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKLQl1MzIgbWFzdGVyX2N0bDsKKwl1MzIgbWFzdGVyX2N0bCwgaWlyOwogCWly cXJldHVybl90IHJldCA9IElSUV9OT05FOwotCXVpbnQzMl90IHRtcCA9IDA7CiAJZW51bSBwaXBl IHBpcGU7Ci0JdTMyIGF1eF9tYXNrID0gR0VOOF9BVVhfQ0hBTk5FTF9BOwogCiAJaWYgKCFpbnRl bF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQogCQlyZXR1cm4gSVJRX05PTkU7CkBAIC0yMjgwLDEw ICsyMjc4LDYgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwg dm9pZCAqYXJnKQogCS8qIElSUXMgYXJlIHN5bmNlZCBkdXJpbmcgcnVudGltZV9zdXNwZW5kLCB3 ZSBkb24ndCByZXF1aXJlIGEgd2FrZXJlZiAqLwogCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0 cyhkZXZfcHJpdik7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KQotCQlh dXhfbWFzayB8PSAgR0VOOV9BVVhfQ0hBTk5FTF9CIHwgR0VOOV9BVVhfQ0hBTk5FTF9DIHwKLQkJ CUdFTjlfQVVYX0NIQU5ORUxfRDsKLQogCW1hc3Rlcl9jdGwgPSBJOTE1X1JFQURfRlcoR0VOOF9N QVNURVJfSVJRKTsKIAltYXN0ZXJfY3RsICY9IH5HRU44X01BU1RFUl9JUlFfQ09OVFJPTDsKIAlp ZiAoIW1hc3Rlcl9jdGwpCkBAIC0yMjk2LDExICsyMjkwLDExIEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBnZW44X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAlyZXQgPSBnZW44X2d0X2ly cV9oYW5kbGVyKGRldl9wcml2LCBtYXN0ZXJfY3RsKTsKIAogCWlmIChtYXN0ZXJfY3RsICYgR0VO OF9ERV9NSVNDX0lSUSkgewotCQl0bXAgPSBJOTE1X1JFQUQoR0VOOF9ERV9NSVNDX0lJUik7Ci0J CWlmICh0bXApIHsKLQkJCUk5MTVfV1JJVEUoR0VOOF9ERV9NSVNDX0lJUiwgdG1wKTsKKwkJaWly ID0gSTkxNV9SRUFEKEdFTjhfREVfTUlTQ19JSVIpOworCQlpZiAoaWlyKSB7CisJCQlJOTE1X1dS SVRFKEdFTjhfREVfTUlTQ19JSVIsIGlpcik7CiAJCQlyZXQgPSBJUlFfSEFORExFRDsKLQkJCWlm ICh0bXAgJiBHRU44X0RFX01JU0NfR1NFKQorCQkJaWYgKGlpciAmIEdFTjhfREVfTUlTQ19HU0Up CiAJCQkJaW50ZWxfb3ByZWdpb25fYXNsZV9pbnRyKGRldik7CiAJCQllbHNlCiAJCQkJRFJNX0VS Uk9SKCJVbmV4cGVjdGVkIERFIE1pc2MgaW50ZXJydXB0XG4iKTsKQEAgLTIzMTAsMzMgKzIzMDQs NDAgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAq YXJnKQogCX0KIAogCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9ERV9QT1JUX0lSUSkgewotCQl0bXAg PSBJOTE1X1JFQUQoR0VOOF9ERV9QT1JUX0lJUik7Ci0JCWlmICh0bXApIHsKKwkJaWlyID0gSTkx NV9SRUFEKEdFTjhfREVfUE9SVF9JSVIpOworCQlpZiAoaWlyKSB7CisJCQl1MzIgdG1wX21hc2s7 CiAJCQlib29sIGZvdW5kID0gZmFsc2U7Ci0JCQl1MzIgaG90cGx1Z190cmlnZ2VyID0gMDsKLQot CQkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQotCQkJCWhvdHBsdWdfdHJpZ2dlciA9IHRtcCAm IEJYVF9ERV9QT1JUX0hPVFBMVUdfTUFTSzsKLQkJCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZf cHJpdikpCi0JCQkJaG90cGx1Z190cmlnZ2VyID0gdG1wICYgR0VOOF9QT1JUX0RQX0FfSE9UUExV RzsKIAotCQkJSTkxNV9XUklURShHRU44X0RFX1BPUlRfSUlSLCB0bXApOworCQkJSTkxNV9XUklU RShHRU44X0RFX1BPUlRfSUlSLCBpaXIpOwogCQkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKLQkJCWlm ICh0bXAgJiBhdXhfbWFzaykgeworCQkJdG1wX21hc2sgPSBHRU44X0FVWF9DSEFOTkVMX0E7CisJ CQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KQorCQkJCXRtcF9tYXNrIHw9IEdF TjlfQVVYX0NIQU5ORUxfQiB8CisJCQkJCSAgICBHRU45X0FVWF9DSEFOTkVMX0MgfAorCQkJCQkg ICAgR0VOOV9BVVhfQ0hBTk5FTF9EOworCisJCQlpZiAoaWlyICYgdG1wX21hc2spIHsKIAkJCQlk cF9hdXhfaXJxX2hhbmRsZXIoZGV2KTsKIAkJCQlmb3VuZCA9IHRydWU7CiAJCQl9CiAKLQkJCWlm IChob3RwbHVnX3RyaWdnZXIpIHsKLQkJCQlpZiAoSVNfQlJPWFRPTihkZXYpKQotCQkJCQlieHRf aHBkX2lycV9oYW5kbGVyKGRldiwgaG90cGx1Z190cmlnZ2VyLCBocGRfYnh0KTsKLQkJCQllbHNl Ci0JCQkJCWlsa19ocGRfaXJxX2hhbmRsZXIoZGV2LCBob3RwbHVnX3RyaWdnZXIsIGhwZF9iZHcp OwotCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgeworCQkJ CXRtcF9tYXNrID0gaWlyICYgQlhUX0RFX1BPUlRfSE9UUExVR19NQVNLOworCQkJCWlmICh0bXBf bWFzaykgeworCQkJCQlieHRfaHBkX2lycV9oYW5kbGVyKGRldiwgdG1wX21hc2ssIGhwZF9ieHQp OworCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJfQorCQkJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKSB7CisJCQkJdG1wX21hc2sgPSBpaXIgJiBHRU44X1BPUlRfRFBfQV9IT1RQTFVH OworCQkJCWlmICh0bXBfbWFzaykgeworCQkJCQlpbGtfaHBkX2lycV9oYW5kbGVyKGRldiwgdG1w X21hc2ssIGhwZF9iZHcpOworCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJfQogCQkJfQogCi0JCQlp ZiAoSVNfQlJPWFRPTihkZXYpICYmICh0bXAgJiBCWFRfREVfUE9SVF9HTUJVUykpIHsKKwkJCWlm IChJU19CUk9YVE9OKGRldikgJiYgKGlpciAmIEJYVF9ERV9QT1JUX0dNQlVTKSkgewogCQkJCWdt YnVzX2lycV9oYW5kbGVyKGRldik7CiAJCQkJZm91bmQgPSB0cnVlOwogCQkJfQpAQCAtMjM0OSw0 OSArMjM1MCw1MSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICphcmcpCiAJfQogCiAJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkgewotCQl1 aW50MzJfdCBwaXBlX2lpciwgZmxpcF9kb25lID0gMCwgZmF1bHRfZXJyb3JzID0gMDsKKwkJdTMy IGZsaXBfZG9uZSwgZmF1bHRfZXJyb3JzOwogCiAJCWlmICghKG1hc3Rlcl9jdGwgJiBHRU44X0RF X1BJUEVfSVJRKHBpcGUpKSkKIAkJCWNvbnRpbnVlOwogCi0JCXBpcGVfaWlyID0gSTkxNV9SRUFE KEdFTjhfREVfUElQRV9JSVIocGlwZSkpOwotCQlpZiAocGlwZV9paXIpIHsKLQkJCXJldCA9IElS UV9IQU5ETEVEOwotCQkJSTkxNV9XUklURShHRU44X0RFX1BJUEVfSUlSKHBpcGUpLCBwaXBlX2lp cik7CisJCWlpciA9IEk5MTVfUkVBRChHRU44X0RFX1BJUEVfSUlSKHBpcGUpKTsKKwkJaWYgKCFp aXIpIHsKKwkJCURSTV9FUlJPUigiVGhlIG1hc3RlciBjb250cm9sIGludGVycnVwdCBsaWVkIChE RSBQSVBFKSFcbiIpOworCQkJY29udGludWU7CisJCX0KIAotCQkJaWYgKHBpcGVfaWlyICYgR0VO OF9QSVBFX1ZCTEFOSyAmJgotCQkJICAgIGludGVsX3BpcGVfaGFuZGxlX3ZibGFuayhkZXYsIHBp cGUpKQotCQkJCWludGVsX2NoZWNrX3BhZ2VfZmxpcChkZXYsIHBpcGUpOworCQlyZXQgPSBJUlFf SEFORExFRDsKKwkJSTkxNV9XUklURShHRU44X0RFX1BJUEVfSUlSKHBpcGUpLCBpaXIpOwogCi0J CQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KQotCQkJCWZsaXBfZG9uZSA9IHBp cGVfaWlyICYgR0VOOV9QSVBFX1BMQU5FMV9GTElQX0RPTkU7Ci0JCQllbHNlCi0JCQkJZmxpcF9k b25lID0gcGlwZV9paXIgJiBHRU44X1BJUEVfUFJJTUFSWV9GTElQX0RPTkU7CisJCWlmIChpaXIg JiBHRU44X1BJUEVfVkJMQU5LICYmCisJCSAgICBpbnRlbF9waXBlX2hhbmRsZV92YmxhbmsoZGV2 LCBwaXBlKSkKKwkJCWludGVsX2NoZWNrX3BhZ2VfZmxpcChkZXYsIHBpcGUpOwogCi0JCQlpZiAo ZmxpcF9kb25lKSB7Ci0JCQkJaW50ZWxfcHJlcGFyZV9wYWdlX2ZsaXAoZGV2LCBwaXBlKTsKLQkJ CQlpbnRlbF9maW5pc2hfcGFnZV9mbGlwX3BsYW5lKGRldiwgcGlwZSk7Ci0JCQl9CisJCWZsaXBf ZG9uZSA9IGlpcjsKKwkJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOSkKKwkJCWZs aXBfZG9uZSAmPSBHRU45X1BJUEVfUExBTkUxX0ZMSVBfRE9ORTsKKwkJZWxzZQorCQkJZmxpcF9k b25lICY9IEdFTjhfUElQRV9QUklNQVJZX0ZMSVBfRE9ORTsKIAotCQkJaWYgKHBpcGVfaWlyICYg R0VOOF9QSVBFX0NEQ0xLX0NSQ19ET05FKQotCQkJCWhzd19waXBlX2NyY19pcnFfaGFuZGxlcihk ZXYsIHBpcGUpOworCQlpZiAoZmxpcF9kb25lKSB7CisJCQlpbnRlbF9wcmVwYXJlX3BhZ2VfZmxp cChkZXYsIHBpcGUpOworCQkJaW50ZWxfZmluaXNoX3BhZ2VfZmxpcF9wbGFuZShkZXYsIHBpcGUp OworCQl9CiAKLQkJCWlmIChwaXBlX2lpciAmIEdFTjhfUElQRV9GSUZPX1VOREVSUlVOKQotCQkJ CWludGVsX2NwdV9maWZvX3VuZGVycnVuX2lycV9oYW5kbGVyKGRldl9wcml2LAotCQkJCQkJCQkg ICAgcGlwZSk7CisJCWlmIChpaXIgJiBHRU44X1BJUEVfQ0RDTEtfQ1JDX0RPTkUpCisJCQloc3df cGlwZV9jcmNfaXJxX2hhbmRsZXIoZGV2LCBwaXBlKTsKIAorCQlpZiAoaWlyICYgR0VOOF9QSVBF X0ZJRk9fVU5ERVJSVU4pCisJCQlpbnRlbF9jcHVfZmlmb191bmRlcnJ1bl9pcnFfaGFuZGxlcihk ZXZfcHJpdiwgcGlwZSk7CiAKLQkJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDkp Ci0JCQkJZmF1bHRfZXJyb3JzID0gcGlwZV9paXIgJiBHRU45X0RFX1BJUEVfSVJRX0ZBVUxUX0VS Uk9SUzsKLQkJCWVsc2UKLQkJCQlmYXVsdF9lcnJvcnMgPSBwaXBlX2lpciAmIEdFTjhfREVfUElQ RV9JUlFfRkFVTFRfRVJST1JTOworCQlmYXVsdF9lcnJvcnMgPSBpaXI7CisJCWlmIChJTlRFTF9J TkZPKGRldl9wcml2KS0+Z2VuID49IDkpCisJCQlmYXVsdF9lcnJvcnMgJj0gR0VOOV9ERV9QSVBF X0lSUV9GQVVMVF9FUlJPUlM7CisJCWVsc2UKKwkJCWZhdWx0X2Vycm9ycyAmPSBHRU44X0RFX1BJ UEVfSVJRX0ZBVUxUX0VSUk9SUzsKIAotCQkJaWYgKGZhdWx0X2Vycm9ycykKLQkJCQlEUk1fRVJS T1IoIkZhdWx0IGVycm9ycyBvbiBwaXBlICVjXG46IDB4JTA4eCIsCi0JCQkJCSAgcGlwZV9uYW1l KHBpcGUpLAotCQkJCQkgIHBpcGVfaWlyICYgR0VOOF9ERV9QSVBFX0lSUV9GQVVMVF9FUlJPUlMp OwotCQl9IGVsc2UKLQkJCURSTV9FUlJPUigiVGhlIG1hc3RlciBjb250cm9sIGludGVycnVwdCBs aWVkIChERSBQSVBFKSFcbiIpOworCQlpZiAoZmF1bHRfZXJyb3JzKQorCQkJRFJNX0VSUk9SKCJG YXVsdCBlcnJvcnMgb24gcGlwZSAlY1xuOiAweCUwOHgiLAorCQkJCSAgcGlwZV9uYW1lKHBpcGUp LAorCQkJCSAgZmF1bHRfZXJyb3JzKTsKIAl9CiAKIAlpZiAoSEFTX1BDSF9TUExJVChkZXYpICYm ICFIQVNfUENIX05PUChkZXYpICYmCkBAIC0yNDAxLDE1ICsyNDA0LDE1IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBnZW44X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAkJICogc2NoZW1l IGFsc28gY2xvc2VkIHRoZSBTREUgaW50ZXJydXB0IGhhbmRsaW5nIHJhY2Ugd2UndmUgc2Vlbgog CQkgKiBvbiBvbGRlciBwY2gtc3BsaXQgcGxhdGZvcm1zLiBCdXQgdGhpcyBuZWVkcyB0ZXN0aW5n LgogCQkgKi8KLQkJdTMyIHBjaF9paXIgPSBJOTE1X1JFQUQoU0RFSUlSKTsKLQkJaWYgKHBjaF9p aXIpIHsKLQkJCUk5MTVfV1JJVEUoU0RFSUlSLCBwY2hfaWlyKTsKKwkJaWlyID0gSTkxNV9SRUFE KFNERUlJUik7CisJCWlmIChpaXIpIHsKKwkJCUk5MTVfV1JJVEUoU0RFSUlSLCBpaXIpOwogCQkJ cmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkJCWlmIChIQVNfUENIX1NQVChkZXZfcHJpdikpCi0JCQkJ c3B0X2lycV9oYW5kbGVyKGRldiwgcGNoX2lpcik7CisJCQkJc3B0X2lycV9oYW5kbGVyKGRldiwg aWlyKTsKIAkJCWVsc2UKLQkJCQljcHRfaXJxX2hhbmRsZXIoZGV2LCBwY2hfaWlyKTsKKwkJCQlj cHRfaXJxX2hhbmRsZXIoZGV2LCBpaXIpOwogCQl9IGVsc2UgewogCQkJLyoKIAkJCSAqIExpa2Ug b24gcHJldmlvdXMgUENIIHRoZXJlIHNlZW1zIHRvIGJlIHNvbWV0aGluZwotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==