From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 15/17] drm/i915: Refactor the hpd irq handling functions Date: Thu, 27 Aug 2015 23:56:10 +0300 Message-ID: <1440708972-17112-16-git-send-email-ville.syrjala@linux.intel.com> References: <1440708972-17112-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id EE7B46EE57 for ; Thu, 27 Aug 2015 13:57:16 -0700 (PDT) In-Reply-To: <1440708972-17112-1-git-send-email-ville.syrjala@linux.intel.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkEg bG90IG9mIHRoZSBocGQgaXJxIGhhbmRsaW5nIGlzIGR1cGxpY2F0ZWQgY29kZSwgc28gcmVmYWN0 b3IgaXQgYSBiaXQKYnkgb2JzZXJ2aW5nIHRoYXQgaW4gc2V2ZXJhbCBwbGFjZXMgdGhlIG9ubHkg ZGlmZmVyZW5jZSBpcyB0aGUgaHBkW10KYXJyYXkuIFNvIHB1bGwgdGhlIGNvZGUgdG8gYSBmZXcg ZnVuY3Rpb25zIGFuZCBwYXNzIGluIHRoZSBocGRbXSBhcnJheQpmcm9tIHRoZSBjYWxsZXIuIEFu b3RoZXIgb3B0aW9uIHdvdWxkIGJlIHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBhcnJheQp0byB1 c2Ugd2l0aGluIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcywgYnV0IHNvbWVob3cgcGFzc2luZyBp dCBpbiBmZWx0Cm5pY2VyLgoKRnVydGhlciBjb2RlIHJlZHVjdGlvbiBjb3VsZCBiZSBhY2hpZXZl ZCBieSBwYXNzaW5nIGluIHRoZSBob3RwbHVnCnJlZ2lzdGVyIG9mZnNldCwgYW5kIHRoZSBsb25n IHB1bHNlIGRldGVjdGlvbiBmdW5jdGlvbiBwb2ludGVyLiBCdXQgdGhhdApkaWRuJ3QgZmVlbCBh cyBnb29kIGZvciBzb21lIHJlYXNvbiwgc28gSSBsZWZ0IGl0IGF0IHRoZSBtaWRkbGUgZ3JvdW5k LgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIHwgMTEyICsrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0OSBp bnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRl eCBmN2YxOGE5Li5hN2M0ZWZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTE3NDIsMjMg KzE3NDIsMzAgQEAgc3RhdGljIGlycXJldHVybl90IGNoZXJyeXZpZXdfaXJxX2hhbmRsZXIoaW50 IGlycSwgdm9pZCAqYXJnKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIGlieF9ocGRf aXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGhvdHBsdWdfdHJpZ2dlciwK KwkJCQljb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10pCit7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXUzMiBkaWdfaG90cGx1Z19yZWcsIHBp bl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKKworCWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVB RChQQ0hfUE9SVF9IT1RQTFVHKTsKKwlJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBMVUcsIGRpZ19o b3RwbHVnX3JlZyk7CisKKwlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNr LCBob3RwbHVnX3RyaWdnZXIsCisJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwKKwkJCSAgIHBj aF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOworCisJaW50ZWxfaHBkX2lycV9oYW5kbGVyKGRl diwgcGluX21hc2ssIGxvbmdfbWFzayk7Cit9CisKIHN0YXRpYyB2b2lkIGlieF9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgcGNoX2lpcikKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCWludCBwaXBlOwogCXUz MiBob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0hPVFBMVUdfTUFTSzsKIAotCWlmICho b3RwbHVnX3RyaWdnZXIpIHsKLQkJdTMyIGRpZ19ob3RwbHVnX3JlZywgcGluX21hc2sgPSAwLCBs b25nX21hc2sgPSAwOwotCi0JCWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9I T1RQTFVHKTsKLQkJSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHLCBkaWdfaG90cGx1Z19yZWcp OwotCi0JCWludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdf dHJpZ2dlciwKLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZF9pYngsCi0JCQkJICAgcGNoX3Bv cnRfaG90cGx1Z19sb25nX2RldGVjdCk7Ci0JCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXYsIHBp bl9tYXNrLCBsb25nX21hc2spOwotCX0KKwlpZiAoaG90cGx1Z190cmlnZ2VyKQorCQlpYnhfaHBk X2lycV9oYW5kbGVyKGRldiwgaG90cGx1Z190cmlnZ2VyLCBocGRfaWJ4KTsKIAogCWlmIChwY2hf aWlyICYgU0RFX0FVRElPX1BPV0VSX01BU0spIHsKIAkJaW50IHBvcnQgPSBmZnMoKHBjaF9paXIg JiBTREVfQVVESU9fUE9XRVJfTUFTSykgPj4KQEAgLTE4NTEsMTkgKzE4NTgsOCBAQCBzdGF0aWMg dm9pZCBjcHRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHBjaF9paXIp CiAJaW50IHBpcGU7CiAJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9UUExV R19NQVNLX0NQVDsKIAotCWlmIChob3RwbHVnX3RyaWdnZXIpIHsKLQkJdTMyIGRpZ19ob3RwbHVn X3JlZywgcGluX21hc2sgPSAwLCBsb25nX21hc2sgPSAwOwotCi0JCWRpZ19ob3RwbHVnX3JlZyA9 IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHKTsKLQkJSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQ TFVHLCBkaWdfaG90cGx1Z19yZWcpOwotCi0JCWludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ss ICZsb25nX21hc2ssCi0JCQkJICAgaG90cGx1Z190cmlnZ2VyLAotCQkJCSAgIGRpZ19ob3RwbHVn X3JlZywgaHBkX2NwdCwKLQkJCQkgICBwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKLQot CQlpbnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKLQl9CisJ aWYgKGhvdHBsdWdfdHJpZ2dlcikKKwkJaWJ4X2hwZF9pcnFfaGFuZGxlcihkZXYsIGhvdHBsdWdf dHJpZ2dlciwgaHBkX2NwdCk7CiAKIAlpZiAocGNoX2lpciAmIFNERV9BVURJT19QT1dFUl9NQVNL X0NQVCkgewogCQlpbnQgcG9ydCA9IGZmcygocGNoX2lpciAmIFNERV9BVURJT19QT1dFUl9NQVNL X0NQVCkgPj4KQEAgLTE5MzEsMjMgKzE5MjcsMzAgQEAgc3RhdGljIHZvaWQgc3B0X2lycV9oYW5k bGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBwY2hfaWlyKQogCQlnbWJ1c19pcnFfaGFu ZGxlcihkZXYpOwogfQogCitzdGF0aWMgdm9pZCBpbGtfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHUzMiBob3RwbHVnX3RyaWdnZXIsCisJCQkJY29uc3QgdTMyIGhwZFtI UERfTlVNX1BJTlNdKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKKwl1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzayA9IDAsIGxvbmdfbWFz ayA9IDA7CisKKwlkaWdfaG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoRElHSVRBTF9QT1JUX0hPVFBM VUdfQ05UUkwpOworCUk5MTVfV1JJVEUoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwsIGRpZ19o b3RwbHVnX3JlZyk7CisKKwlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNr LCBob3RwbHVnX3RyaWdnZXIsCisJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwKKwkJCSAgIGls a19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOworCisJaW50ZWxfaHBkX2lycV9oYW5kbGVyKGRl diwgcGluX21hc2ssIGxvbmdfbWFzayk7Cit9CisKIHN0YXRpYyB2b2lkIGlsa19kaXNwbGF5X2ly cV9oYW5kbGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBkZV9paXIpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAllbnVtIHBp cGUgcGlwZTsKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gZGVfaWlyICYgREVfRFBfQV9IT1RQTFVH OwogCi0JaWYgKGhvdHBsdWdfdHJpZ2dlcikgewotCQl1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5f bWFzayA9IDAsIGxvbmdfbWFzayA9IDA7Ci0KLQkJZGlnX2hvdHBsdWdfcmVnID0gSTkxNV9SRUFE KERJR0lUQUxfUE9SVF9IT1RQTFVHX0NOVFJMKTsKLQkJSTkxNV9XUklURShESUdJVEFMX1BPUlRf SE9UUExVR19DTlRSTCwgZGlnX2hvdHBsdWdfcmVnKTsKLQotCQlpbnRlbF9nZXRfaHBkX3BpbnMo JnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCi0JCQkJICAgZGlnX2hvdHBs dWdfcmVnLCBocGRfaWxrLAotCQkJCSAgIGlsa19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwot CQlpbnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKLQl9CisJ aWYgKGhvdHBsdWdfdHJpZ2dlcikKKwkJaWxrX2hwZF9pcnFfaGFuZGxlcihkZXYsIGhvdHBsdWdf dHJpZ2dlciwgaHBkX2lsayk7CiAKIAlpZiAoZGVfaWlyICYgREVfQVVYX0NIQU5ORUxfQSkKIAkJ ZHBfYXV4X2lycV9oYW5kbGVyKGRldik7CkBAIC0xOTk5LDE3ICsyMDAyLDggQEAgc3RhdGljIHZv aWQgaXZiX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGRl X2lpcikKIAllbnVtIHBpcGUgcGlwZTsKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gZGVfaWlyICYg REVfRFBfQV9IT1RQTFVHX0lWQjsKIAotCWlmIChob3RwbHVnX3RyaWdnZXIpIHsKLQkJdTMyIGRp Z19ob3RwbHVnX3JlZywgcGluX21hc2sgPSAwLCBsb25nX21hc2sgPSAwOwotCi0JCWRpZ19ob3Rw bHVnX3JlZyA9IEk5MTVfUkVBRChESUdJVEFMX1BPUlRfSE9UUExVR19DTlRSTCk7Ci0JCUk5MTVf V1JJVEUoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwsIGRpZ19ob3RwbHVnX3JlZyk7Ci0KLQkJ aW50ZWxfZ2V0X2hwZF9waW5zKCZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2Vy LAotCQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX2l2YiwKLQkJCQkgICBpbGtfcG9ydF9ob3Rw bHVnX2xvbmdfZGV0ZWN0KTsKLQkJaW50ZWxfaHBkX2lycV9oYW5kbGVyKGRldiwgcGluX21hc2ss IGxvbmdfbWFzayk7Ci0JfQorCWlmIChob3RwbHVnX3RyaWdnZXIpCisJCWlsa19ocGRfaXJxX2hh bmRsZXIoZGV2LCBob3RwbHVnX3RyaWdnZXIsIGhwZF9pdmIpOwogCiAJaWYgKGRlX2lpciAmIERF X0VSUl9JTlRfSVZCKQogCQlpdmJfZXJyX2ludF9oYW5kbGVyKGRldik7CkBAIC0yMTIyLDcgKzIx MTYsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXJvbmxha2VfaXJxX2hhbmRsZXIoaW50IGlycSwg dm9pZCAqYXJnKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX2hh bmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGhvdHBsdWdfdHJpZ2dlcikKK3N0YXRp YyB2b2lkIGJ4dF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGhv dHBsdWdfdHJpZ2dlciwKKwkJCQljb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10pCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXUzMiBkaWdf aG90cGx1Z19yZWcsIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKQEAgLTIxMzEsOCArMjEy Niw5IEBAIHN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdTMyIGhvdHBsdWdfdHJpZ2dlcikKIAlJOTE1X1dSSVRFKEJYVF9IT1RQTFVHX0NUTCwg ZGlnX2hvdHBsdWdfcmVnKTsKIAogCWludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ssICZsb25n X21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKLQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX2J4dCwK KwkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLAogCQkJICAgYnh0X3BvcnRfaG90cGx1Z19sb25n X2RldGVjdCk7CisKIAlpbnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2LCBwaW5fbWFzaywgbG9uZ19t YXNrKTsKIH0KIApAQCAtMjE5MiwyNiArMjE4OCwxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2Vu OF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCQlJOTE1X1dSSVRFKEdFTjhfREVf UE9SVF9JSVIsIHRtcCk7CiAJCQlyZXQgPSBJUlFfSEFORExFRDsKIAotCQkJaWYgKElTX0JST0FE V0VMTChkZXYpICYmIGhvdHBsdWdfdHJpZ2dlcikgewotCQkJCXUzMiBkaWdfaG90cGx1Z19yZWcs IHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKLQotCQkJCWRpZ19ob3RwbHVnX3JlZyA9IEk5 MTVfUkVBRChESUdJVEFMX1BPUlRfSE9UUExVR19DTlRSTCk7Ci0JCQkJSTkxNV9XUklURShESUdJ VEFMX1BPUlRfSE9UUExVR19DTlRSTCwgZGlnX2hvdHBsdWdfcmVnKTsKLQotCQkJCWludGVsX2dl dF9ocGRfcGlucygmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKLQkJCQkJ CSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX2JkdywKLQkJCQkJCSAgIGlsa19wb3J0X2hvdHBsdWdf bG9uZ19kZXRlY3QpOwotCQkJCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXYsIHBpbl9tYXNrLCBs b25nX21hc2spOwotCQkJCWZvdW5kID0gdHJ1ZTsKLQkJCX0KLQogCQkJaWYgKHRtcCAmIGF1eF9t YXNrKSB7CiAJCQkJZHBfYXV4X2lycV9oYW5kbGVyKGRldik7CiAJCQkJZm91bmQgPSB0cnVlOwog CQkJfQogCi0JCQlpZiAoSVNfQlJPWFRPTihkZXYpICYmIGhvdHBsdWdfdHJpZ2dlcikgewotCQkJ CWJ4dF9ocGRfaXJxX2hhbmRsZXIoZGV2LCBob3RwbHVnX3RyaWdnZXIpOworCQkJaWYgKGhvdHBs dWdfdHJpZ2dlcikgeworCQkJCWlmIChJU19CUk9YVE9OKGRldikpCisJCQkJCWJ4dF9ocGRfaXJx X2hhbmRsZXIoZGV2LCBob3RwbHVnX3RyaWdnZXIsIGhwZF9ieHQpOworCQkJCWVsc2UKKwkJCQkJ aWxrX2hwZF9pcnFfaGFuZGxlcihkZXYsIGhvdHBsdWdfdHJpZ2dlciwgaHBkX2Jkdyk7CiAJCQkJ Zm91bmQgPSB0cnVlOwogCQkJfQogCi0tIAoyLjQuNgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK