From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 3/7] drm/amdgpu/virtual_dce: clean up interrupt handling Date: Fri, 30 Sep 2016 13:08:44 -0400 Message-ID: <1475255328-21598-3-git-send-email-alexander.deucher@amd.com> References: <1475255328-21598-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1475255328-21598-1-git-send-email-alexander.deucher-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Alex Deucher V2UgaGFuZGxlIHRoZSB2aXJ0dWFsIGludGVycnVwdHMgZnJvbSBhIHRpbWVyIHNvIG5vCm5lZWQg dG8gdHJ5IGFuIGxvb2sgbGlrZSB3ZSBhcmUgaGFuZGxpbmcgSVYgcmluZyBldmVudHMuCgpTaWdu ZWQtb2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYyB8IDEwOSArKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwg NTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv ZGNlX3ZpcnR1YWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMK aW5kZXggODE2MzYyMi4uMjllMGNlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3ZpcnR1YWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf dmlydHVhbC5jCkBAIC0zOSw5ICszOSw2IEBACiAKIHN0YXRpYyB2b2lkIGRjZV92aXJ0dWFsX3Nl dF9kaXNwbGF5X2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHN0YXRpYyB2b2lk IGRjZV92aXJ0dWFsX3NldF9pcnFfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwot c3RhdGljIGludCBkY2VfdmlydHVhbF9wYWdlZmxpcF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCi0JCQkJICBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNvdXJjZSwKLQkJCQkgIHN0cnVj dCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KTsKIAogLyoqCiAgKiBkY2VfdmlydHVhbF92Ymxhbmtf d2FpdCAtIHZibGFuayB3YWl0IGFzaWMgY2FsbGJhY2suCkBAIC02NTksMTQgKzY1Niw2NCBAQCBz dGF0aWMgdm9pZCBkY2VfdmlydHVhbF9zZXRfZGlzcGxheV9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAkJYWRldi0+bW9kZV9pbmZvLmZ1bmNzID0gJmRjZV92aXJ0dWFsX2Rpc3Bs YXlfZnVuY3M7CiB9CiAKK3N0YXRpYyBpbnQgZGNlX3ZpcnR1YWxfcGFnZWZsaXAoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJdW5zaWduZWQgY3J0Y19pZCkKK3sKKwl1bnNpZ25lZCBs b25nIGZsYWdzOworCXN0cnVjdCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGM7CisJc3RydWN0IGFt ZGdwdV9mbGlwX3dvcmsgKndvcmtzOworCisJYW1kZ3B1X2NydGMgPSBhZGV2LT5tb2RlX2luZm8u Y3J0Y3NbY3J0Y19pZF07CisKKwlpZiAoY3J0Y19pZCA+PSBhZGV2LT5tb2RlX2luZm8ubnVtX2Ny dGMpIHsKKwkJRFJNX0VSUk9SKCJpbnZhbGlkIHBhZ2VmbGlwIGNydGMgJWRcbiIsIGNydGNfaWQp OworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBJUlEgY291bGQgb2NjdXIgd2hlbiBpbiBp bml0aWFsIHN0YWdlICovCisJaWYgKGFtZGdwdV9jcnRjID09IE5VTEwpCisJCXJldHVybiAwOwor CisJc3Bpbl9sb2NrX2lycXNhdmUoJmFkZXYtPmRkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKKwl3 b3JrcyA9IGFtZGdwdV9jcnRjLT5wZmxpcF93b3JrczsKKwlpZiAoYW1kZ3B1X2NydGMtPnBmbGlw X3N0YXR1cyAhPSBBTURHUFVfRkxJUF9TVUJNSVRURUQpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigi YW1kZ3B1X2NydGMtPnBmbGlwX3N0YXR1cyA9ICVkICE9ICIKKwkJCSJBTURHUFVfRkxJUF9TVUJN SVRURUQoJWQpXG4iLAorCQkJYW1kZ3B1X2NydGMtPnBmbGlwX3N0YXR1cywKKwkJCUFNREdQVV9G TElQX1NVQk1JVFRFRCk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPmRkZXYtPmV2 ZW50X2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogcGFnZSBmbGlwIGNvbXBs ZXRlZC4gY2xlYW4gdXAgKi8KKwlhbWRncHVfY3J0Yy0+cGZsaXBfc3RhdHVzID0gQU1ER1BVX0ZM SVBfTk9ORTsKKwlhbWRncHVfY3J0Yy0+cGZsaXBfd29ya3MgPSBOVUxMOworCisJLyogd2FrZXVw IHVzZXJzYXBjZSAqLworCWlmICh3b3Jrcy0+ZXZlbnQpCisJCWRybV9jcnRjX3NlbmRfdmJsYW5r X2V2ZW50KCZhbWRncHVfY3J0Yy0+YmFzZSwgd29ya3MtPmV2ZW50KTsKKworCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmFkZXYtPmRkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKKworCWRybV9jcnRj X3ZibGFua19wdXQoJmFtZGdwdV9jcnRjLT5iYXNlKTsKKwlzY2hlZHVsZV93b3JrKCZ3b3Jrcy0+ dW5waW5fd29yayk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0 YXJ0IGRjZV92aXJ0dWFsX3ZibGFua190aW1lcl9oYW5kbGUoc3RydWN0IGhydGltZXIgKnZibGFu a190aW1lcikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X21vZGVfaW5mbyAqbW9kZV9pbmZvID0gY29udGFp bmVyX29mKHZibGFua190aW1lciwgc3RydWN0IGFtZGdwdV9tb2RlX2luZm8gLHZibGFua190aW1l cik7Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBjb250YWluZXJfb2YobW9kZV9pbmZv LCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAsbW9kZV9pbmZvKTsKKwlzdHJ1Y3QgYW1kZ3B1X21vZGVf aW5mbyAqbW9kZV9pbmZvID0KKwkJY29udGFpbmVyX29mKHZibGFua190aW1lciwgc3RydWN0IGFt ZGdwdV9tb2RlX2luZm8gLCB2YmxhbmtfdGltZXIpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0KKwkJY29udGFpbmVyX29mKG1vZGVfaW5mbywgc3RydWN0IGFtZGdwdV9kZXZpY2UgLCBt b2RlX2luZm8pOwogCXVuc2lnbmVkIGNydGMgPSAwOworCiAJZHJtX2hhbmRsZV92YmxhbmsoYWRl di0+ZGRldiwgY3J0Yyk7Ci0JZGNlX3ZpcnR1YWxfcGFnZWZsaXBfaXJxKGFkZXYsIE5VTEwsIE5V TEwpOwotCWhydGltZXJfc3RhcnQodmJsYW5rX3RpbWVyLCBrdGltZV9zZXQoMCwgRENFX1ZJUlRV QUxfVkJMQU5LX1BFUklPRCksIEhSVElNRVJfTU9ERV9SRUwpOworCWRjZV92aXJ0dWFsX3BhZ2Vm bGlwKGFkZXYsIGNydGMpOworCWhydGltZXJfc3RhcnQodmJsYW5rX3RpbWVyLCBrdGltZV9zZXQo MCwgRENFX1ZJUlRVQUxfVkJMQU5LX1BFUklPRCksCisJCSAgICAgIEhSVElNRVJfTU9ERV9SRUwp OworCiAJcmV0dXJuIEhSVElNRVJfTk9SRVNUQVJUOwogfQogCkBAIC03MTAsNTQgKzc1Nyw2IEBA IHN0YXRpYyBpbnQgZGNlX3ZpcnR1YWxfc2V0X2NydGNfaXJxX3N0YXRlKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRjZV92aXJ0dWFsX3Bh Z2VmbGlwX2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLQkJCQkgIHN0cnVjdCBhbWRn cHVfaXJxX3NyYyAqc291cmNlLAotCQkJCSAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkp Ci17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBjcnRjX2lkID0gMDsKLQlzdHJ1 Y3QgYW1kZ3B1X2NydGMgKmFtZGdwdV9jcnRjOwotCXN0cnVjdCBhbWRncHVfZmxpcF93b3JrICp3 b3JrczsKLQotCWNydGNfaWQgPSAwOwotCWFtZGdwdV9jcnRjID0gYWRldi0+bW9kZV9pbmZvLmNy dGNzW2NydGNfaWRdOwotCi0JaWYgKGNydGNfaWQgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9jcnRj KSB7Ci0JCURSTV9FUlJPUigiaW52YWxpZCBwYWdlZmxpcCBjcnRjICVkXG4iLCBjcnRjX2lkKTsK LQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogSVJRIGNvdWxkIG9jY3VyIHdoZW4gaW4gaW5p dGlhbCBzdGFnZSAqLwotCWlmIChhbWRncHVfY3J0YyA9PSBOVUxMKQotCQlyZXR1cm4gMDsKLQot CXNwaW5fbG9ja19pcnFzYXZlKCZhZGV2LT5kZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0Jd29y a3MgPSBhbWRncHVfY3J0Yy0+cGZsaXBfd29ya3M7Ci0JaWYgKGFtZGdwdV9jcnRjLT5wZmxpcF9z dGF0dXMgIT0gQU1ER1BVX0ZMSVBfU1VCTUlUVEVEKSB7Ci0JCURSTV9ERUJVR19EUklWRVIoImFt ZGdwdV9jcnRjLT5wZmxpcF9zdGF0dXMgPSAlZCAhPSAiCi0JCQkiQU1ER1BVX0ZMSVBfU1VCTUlU VEVEKCVkKVxuIiwKLQkJCWFtZGdwdV9jcnRjLT5wZmxpcF9zdGF0dXMsCi0JCQlBTURHUFVfRkxJ UF9TVUJNSVRURUQpOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGV2LT5kZGV2LT5ldmVu dF9sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAwOwotCX0KLQotCS8qIHBhZ2UgZmxpcCBjb21wbGV0 ZWQuIGNsZWFuIHVwICovCi0JYW1kZ3B1X2NydGMtPnBmbGlwX3N0YXR1cyA9IEFNREdQVV9GTElQ X05PTkU7Ci0JYW1kZ3B1X2NydGMtPnBmbGlwX3dvcmtzID0gTlVMTDsKLQotCS8qIHdha2V1cCB1 c2Vyc2FwY2UgKi8KLQlpZiAod29ya3MtPmV2ZW50KQotCQlkcm1fY3J0Y19zZW5kX3ZibGFua19l dmVudCgmYW1kZ3B1X2NydGMtPmJhc2UsIHdvcmtzLT5ldmVudCk7Ci0KLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZhZGV2LT5kZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0KLQlkcm1fY3J0Y192 YmxhbmtfcHV0KCZhbWRncHVfY3J0Yy0+YmFzZSk7Ci0Jc2NoZWR1bGVfd29yaygmd29ya3MtPnVu cGluX3dvcmspOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1 X2lycV9zcmNfZnVuY3MgZGNlX3ZpcnR1YWxfY3J0Y19pcnFfZnVuY3MgPSB7CiAJLnNldCA9IGRj ZV92aXJ0dWFsX3NldF9jcnRjX2lycV9zdGF0ZSwKIAkucHJvY2VzcyA9IE5VTEwsCi0tIAoyLjUu NQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdm eCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==