From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2] drm/i915: Refactor gen2 to gen4 vblank interrupt handling Date: Tue, 19 Feb 2013 23:16:44 +0200 Message-ID: <1361308604-32553-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id DCC77E5E17 for ; Tue, 19 Feb 2013 13:16:52 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBpbmRlbnRhdGlvbiBpcyBnZXR0aW5nIHdheSB0b28gZGVlcC4gUHVsbCB0aGUgdmJsYW5rIGlu dGVydXB0CmhhbmRsaW5nIG91dCB0byBzZXBhcmF0ZSBmdW5jdGlvbnMuCgp2MjogS2VlcCBmbGlw X21hc2sgaGFuZGxpbmcgaW4gdGhlIG1haW4gaXJxIGhhbmRsZXIgYW5kCiAgICBmbGF0dGVuIHtp OHh4LGk5MTV9X2hhbmRsZV92YmxhbmsoKSBldmVuIGZ1cnRoZXIuCgpTaWduZWQtb2ZmLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KdjEgaGVy ZSBodHRwOi8vcGFzdGUuZGViaWFuLm5ldC8yMzU2ODYvCnYyIGJhc2VkIG9uIGlyYyByZXZpZXcu IFRoaXMgaXMgb25seSBjb21waWxlIHRlc3RlZCEKCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jIHwgMTI1ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggfCAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA3 MiBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpp bmRleCAxOGRlNzg4Li4yOTAzN2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTIyMjYs NiArMjIyNiwzNyBAQCBzdGF0aWMgaW50IGk4eHhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRydWUgd2hlbiBh IHBhZ2UgZmxpcCBoYXMgY29tcGxldGVkLgorICovCitzdGF0aWMgYm9vbCBpOHh4X2hhbmRsZV92 Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgICBpbnQgcGlwZSwgdTE2IGlp cikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK Kwl1MTYgZmxpcF9wZW5kaW5nID0gRElTUExBWV9QTEFORV9GTElQX1BFTkRJTkcocGlwZSk7CisK KwlpZiAoIWRybV9oYW5kbGVfdmJsYW5rKGRldiwgcGlwZSkpCisJCXJldHVybiBmYWxzZTsKKwor CWlmICgoaWlyICYgZmxpcF9wZW5kaW5nKSA9PSAwKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpbnRl bF9wcmVwYXJlX3BhZ2VfZmxpcChkZXYsIHBpcGUpOworCisJLyogV2UgZGV0ZWN0IEZsaXBEb25l IGJ5IGxvb2tpbmcgZm9yIHRoZSBjaGFuZ2UgaW4gUGVuZGluZ0ZsaXAgZnJvbSAnMScKKwkgKiB0 byAnMCcgb24gdGhlIGZvbGxvd2luZyB2YmxhbmssIGkuZS4gSUlSIGhhcyB0aGUgUGVuZGluZ2Zs aXAKKwkgKiBhc3NlcnRlZCBmb2xsb3dpbmcgdGhlIE1JX0RJU1BMQVlfRkxJUCwgYnV0IElTUiBp cyBkZWFzc2VydGVkLCBoZW5jZQorCSAqIHRoZSBmbGlwIGlzIGNvbXBsZXRlZCAobm8gbG9uZ2Vy IHBlbmRpbmcpLiBTaW5jZSB0aGlzIGRvZXNuJ3QgcmFpc2UKKwkgKiBhbiBpbnRlcnJ1cHQgcGVy IHNlLCB3ZSB3YXRjaCBmb3IgdGhlIGNoYW5nZSBhdCB2YmxhbmsuCisJICovCisJaWYgKEk5MTVf UkVBRDE2KElTUikgJiBmbGlwX3BlbmRpbmcpCisJCXJldHVybiBmYWxzZTsKKworCWludGVsX2Zp bmlzaF9wYWdlX2ZsaXAoZGV2LCBwaXBlKTsKKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMg aXJxcmV0dXJuX3QgaTh4eF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiB7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7CkBAIC0yMjgx LDI4ICsyMzEyLDEyIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpOHh4X2lycV9oYW5kbGVyKGludCBp cnEsIHZvaWQgKmFyZykKIAkJCW5vdGlmeV9yaW5nKGRldiwgJmRldl9wcml2LT5yaW5nW1JDU10p OwogCiAJCWlmIChwaXBlX3N0YXRzWzBdICYgUElQRV9WQkxBTktfSU5URVJSVVBUX1NUQVRVUyAm JgotCQkgICAgZHJtX2hhbmRsZV92YmxhbmsoZGV2LCAwKSkgewotCQkJaWYgKGlpciAmIEk5MTVf RElTUExBWV9QTEFORV9BX0ZMSVBfUEVORElOR19JTlRFUlJVUFQpIHsKLQkJCQlpbnRlbF9wcmVw YXJlX3BhZ2VfZmxpcChkZXYsIDApOwotCi0JCQkJaWYgKChJOTE1X1JFQUQxNihJU1IpICYgSTkx NV9ESVNQTEFZX1BMQU5FX0FfRkxJUF9QRU5ESU5HX0lOVEVSUlVQVCkgPT0gMCkgewotCQkJCQlp bnRlbF9maW5pc2hfcGFnZV9mbGlwKGRldiwgMCk7Ci0JCQkJCWZsaXBfbWFzayAmPSB+STkxNV9E SVNQTEFZX1BMQU5FX0FfRkxJUF9QRU5ESU5HX0lOVEVSUlVQVDsKLQkJCQl9Ci0JCQl9Ci0JCX0K KwkJICAgIGk4eHhfaGFuZGxlX3ZibGFuayhkZXYsIDAsIGlpcikpCisJCQlmbGlwX21hc2sgJj0g fkRJU1BMQVlfUExBTkVfRkxJUF9QRU5ESU5HKDApOwogCiAJCWlmIChwaXBlX3N0YXRzWzFdICYg UElQRV9WQkxBTktfSU5URVJSVVBUX1NUQVRVUyAmJgotCQkgICAgZHJtX2hhbmRsZV92Ymxhbmso ZGV2LCAxKSkgewotCQkJaWYgKGlpciAmIEk5MTVfRElTUExBWV9QTEFORV9CX0ZMSVBfUEVORElO R19JTlRFUlJVUFQpIHsKLQkJCQlpbnRlbF9wcmVwYXJlX3BhZ2VfZmxpcChkZXYsIDEpOwotCi0J CQkJaWYgKChJOTE1X1JFQUQxNihJU1IpICYgSTkxNV9ESVNQTEFZX1BMQU5FX0JfRkxJUF9QRU5E SU5HX0lOVEVSUlVQVCkgPT0gMCkgewotCQkJCQlpbnRlbF9maW5pc2hfcGFnZV9mbGlwKGRldiwg MSk7Ci0JCQkJCWZsaXBfbWFzayAmPSB+STkxNV9ESVNQTEFZX1BMQU5FX0JfRkxJUF9QRU5ESU5H X0lOVEVSUlVQVDsKLQkJCQl9Ci0JCQl9Ci0JCX0KKwkJICAgIGk4eHhfaGFuZGxlX3ZibGFuayhk ZXYsIDEsIGlpcikpCisJCQlmbGlwX21hc2sgJj0gfkRJU1BMQVlfUExBTkVfRkxJUF9QRU5ESU5H KDEpOwogCiAJCWlpciA9IG5ld19paXI7CiAJfQpAQCAtMjQxOSw2ICsyNDM0LDM3IEBAIHN0YXRp YyB2b2lkIGk5MTVfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIH0K IAorLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIGEgcGFnZSBmbGlwIGhhcyBjb21wbGV0ZWQuCisg Ki8KK3N0YXRpYyBib29sIGk5MTVfaGFuZGxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorCQkJICAgICAgIGludCBwbGFuZSwgaW50IHBpcGUsIHUzMiBpaXIpCit7CisJZHJtX2k5MTVf cHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdTMyIGZsaXBfcGVuZGlu ZyA9IERJU1BMQVlfUExBTkVfRkxJUF9QRU5ESU5HKHBsYW5lKTsKKworCWlmICghZHJtX2hhbmRs ZV92YmxhbmsoZGV2LCBwaXBlKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKChpaXIgJiBmbGlw X3BlbmRpbmcpID09IDApCisJCXJldHVybiBmYWxzZTsKKworCWludGVsX3ByZXBhcmVfcGFnZV9m bGlwKGRldiwgcGxhbmUpOworCisJLyogV2UgZGV0ZWN0IEZsaXBEb25lIGJ5IGxvb2tpbmcgZm9y IHRoZSBjaGFuZ2UgaW4gUGVuZGluZ0ZsaXAgZnJvbSAnMScKKwkgKiB0byAnMCcgb24gdGhlIGZv bGxvd2luZyB2YmxhbmssIGkuZS4gSUlSIGhhcyB0aGUgUGVuZGluZ2ZsaXAKKwkgKiBhc3NlcnRl ZCBmb2xsb3dpbmcgdGhlIE1JX0RJU1BMQVlfRkxJUCwgYnV0IElTUiBpcyBkZWFzc2VydGVkLCBo ZW5jZQorCSAqIHRoZSBmbGlwIGlzIGNvbXBsZXRlZCAobm8gbG9uZ2VyIHBlbmRpbmcpLiBTaW5j ZSB0aGlzIGRvZXNuJ3QgcmFpc2UKKwkgKiBhbiBpbnRlcnJ1cHQgcGVyIHNlLCB3ZSB3YXRjaCBm b3IgdGhlIGNoYW5nZSBhdCB2YmxhbmsuCisJICovCisJaWYgKEk5MTVfUkVBRChJU1IpICYgZmxp cF9wZW5kaW5nKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpbnRlbF9maW5pc2hfcGFnZV9mbGlwKGRl diwgcGlwZSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGlycXJldHVybl90IGk5MTVf aXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSAoc3RydWN0IGRybV9kZXZpY2UgKikgYXJnOwpAQCAtMjQyOCwxMCArMjQ3NCw2IEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBpOTE1X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAl1 MzIgZmxpcF9tYXNrID0KIAkJSTkxNV9ESVNQTEFZX1BMQU5FX0FfRkxJUF9QRU5ESU5HX0lOVEVS UlVQVCB8CiAJCUk5MTVfRElTUExBWV9QTEFORV9CX0ZMSVBfUEVORElOR19JTlRFUlJVUFQ7Ci0J dTMyIGZsaXBbMl0gPSB7Ci0JCUk5MTVfRElTUExBWV9QTEFORV9BX0ZMSVBfUEVORElOR19JTlRF UlJVUFQsCi0JCUk5MTVfRElTUExBWV9QTEFORV9CX0ZMSVBfUEVORElOR19JTlRFUlJVUFQKLQl9 OwogCWludCBwaXBlLCByZXQgPSBJUlFfTk9ORTsKIAogCWF0b21pY19pbmMoJmRldl9wcml2LT5p cnFfcmVjZWl2ZWQpOwpAQCAtMjQ5MywyMyArMjUzNSwxMCBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qg aTkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCQlpbnQgcGxhbmUgPSBwaXBl OwogCQkJaWYgKElTX01PQklMRShkZXYpKQogCQkJCXBsYW5lID0gIXBsYW5lOworCiAJCQlpZiAo cGlwZV9zdGF0c1twaXBlXSAmIFBJUEVfVkJMQU5LX0lOVEVSUlVQVF9TVEFUVVMgJiYKLQkJCSAg ICBkcm1faGFuZGxlX3ZibGFuayhkZXYsIHBpcGUpKSB7Ci0JCQkJaWYgKGlpciAmIGZsaXBbcGxh bmVdKSB7Ci0JCQkJCWludGVsX3ByZXBhcmVfcGFnZV9mbGlwKGRldiwgcGxhbmUpOwotCi0JCQkJ CS8qIFdlIGRldGVjdCBGbGlwRG9uZSBieSBsb29raW5nIGZvciB0aGUgY2hhbmdlIGluIFBlbmRp bmdGbGlwIGZyb20gJzEnCi0JCQkJCSAqIHRvICcwJyBvbiB0aGUgZm9sbG93aW5nIHZibGFuaywg aS5lLiBJSVIgaGFzIHRoZSBQZW5kaW5nZmxpcAotCQkJCQkgKiBhc3NlcnRlZCBmb2xsb3dpbmcg dGhlIE1JX0RJU1BMQVlfRkxJUCwgYnV0IElTUiBpcyBkZWFzc2VydGVkLCBoZW5jZQotCQkJCQkg KiB0aGUgZmxpcCBpcyBjb21wbGV0ZWQgKG5vIGxvbmdlciBwZW5kaW5nKS4gU2luY2UgdGhpcyBk b2Vzbid0IHJhaXNlIGFuCi0JCQkJCSAqIGludGVycnVwdCBwZXIgc2UsIHdlIHdhdGNoIGZvciB0 aGUgY2hhbmdlIGF0IHZibGFuay4KLQkJCQkJICovCi0JCQkJCWlmICgoSTkxNV9SRUFEKElTUikg JiBmbGlwW3BsYW5lXSkgPT0gMCkgewotCQkJCQkJaW50ZWxfZmluaXNoX3BhZ2VfZmxpcChkZXYs IHBpcGUpOwotCQkJCQkJZmxpcF9tYXNrICY9IH5mbGlwW3BsYW5lXTsKLQkJCQkJfQotCQkJCX0K LQkJCX0KKwkJCSAgICBpOTE1X2hhbmRsZV92YmxhbmsoZGV2LCBwbGFuZSwgcGlwZSwgaWlyKSkK KwkJCQlmbGlwX21hc2sgJj0gfkRJU1BMQVlfUExBTkVfRkxJUF9QRU5ESU5HKHBsYW5lKTsKIAog CQkJaWYgKHBpcGVfc3RhdHNbcGlwZV0gJiBQSVBFX0xFR0FDWV9CTENfRVZFTlRfU1RBVFVTKQog CQkJCWJsY19ldmVudCA9IHRydWU7CkBAIC0yNjg2LDEwICsyNzE1LDYgQEAgc3RhdGljIGlycXJl dHVybl90IGk5NjVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCXVuc2lnbmVkIGxv bmcgaXJxZmxhZ3M7CiAJaW50IGlycV9yZWNlaXZlZDsKIAlpbnQgcmV0ID0gSVJRX05PTkUsIHBp cGU7Ci0JdTMyIGZsaXBbMl0gPSB7Ci0JCUk5MTVfRElTUExBWV9QTEFORV9BX0ZMSVBfUEVORElO R19JTlRFUlJVUFQsCi0JCUk5MTVfRElTUExBWV9QTEFORV9CX0ZMSVBfUEVORElOR19JTlRFUlJV UFQKLQl9OwogCXUzMiBmbGlwX21hc2sgPQogCQlJOTE1X0RJU1BMQVlfUExBTkVfQV9GTElQX1BF TkRJTkdfSU5URVJSVVBUIHwKIAkJSTkxNV9ESVNQTEFZX1BMQU5FX0JfRkxJUF9QRU5ESU5HX0lO VEVSUlVQVDsKQEAgLTI3NTgsMTYgKzI3ODMsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTk2NV9p cnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAKIAkJZm9yX2VhY2hfcGlwZShwaXBlKSB7 CiAJCQlpZiAocGlwZV9zdGF0c1twaXBlXSAmIFBJUEVfU1RBUlRfVkJMQU5LX0lOVEVSUlVQVF9T VEFUVVMgJiYKLQkJCSAgICBkcm1faGFuZGxlX3ZibGFuayhkZXYsIHBpcGUpKSB7Ci0JCQkJaWYg KGlpciAmIGZsaXBbcGlwZV0pIHsKLQkJCQkJaW50ZWxfcHJlcGFyZV9wYWdlX2ZsaXAoZGV2LCBw aXBlKTsKLQotCQkJCQlpZiAoKEk5MTVfUkVBRChJU1IpICYgZmxpcFtwaXBlXSkgPT0gMCkgewot CQkJCQkJaW50ZWxfZmluaXNoX3BhZ2VfZmxpcChkZXYsIHBpcGUpOwotCQkJCQkJZmxpcF9tYXNr ICY9IH5mbGlwW3BpcGVdOwotCQkJCQl9Ci0JCQkJfQotCQkJfQorCQkJICAgIGk5MTVfaGFuZGxl X3ZibGFuayhkZXYsIHBpcGUsIHBpcGUsIGlpcikpCisJCQkJZmxpcF9tYXNrICY9IH5ESVNQTEFZ X1BMQU5FX0ZMSVBfUEVORElORyhwaXBlKTsKIAogCQkJaWYgKHBpcGVfc3RhdHNbcGlwZV0gJiBQ SVBFX0xFR0FDWV9CTENfRVZFTlRfU1RBVFVTKQogCQkJCWJsY19ldmVudCA9IHRydWU7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAppbmRleCA1MjdiNjY0Li4xNWE4N2FjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKQEAgLTU5MSw2ICs1OTEsNyBAQAogI2RlZmluZSAgIEk5MTVfVVNFUl9JTlRFUlJV UFQJCQkJKDE8PDEpCiAjZGVmaW5lICAgSTkxNV9BU0xFX0lOVEVSUlVQVAkJCQkoMTw8MCkKICNk ZWZpbmUgICBJOTE1X0JTRF9VU0VSX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgICAoMTw8 MjUpCisjZGVmaW5lICAgRElTUExBWV9QTEFORV9GTElQX1BFTkRJTkcocGxhbmUpICgxPDwoMTEt KHBsYW5lKSkpIC8qIEEgYW5kIEIgb25seSAqLwogI2RlZmluZSBFSVIJCTB4MDIwYjAKICNkZWZp bmUgRU1SCQkweDAyMGI0CiAjZGVmaW5lIEVTUgkJMHgwMjBiOAotLSAKMS43LjEyLjQKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==