From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 5/7] drm/i915/guc: refactor doorbell management code Date: Mon, 21 Mar 2016 10:16:38 +0000 Message-ID: <1458555400-22859-6-git-send-email-david.s.gordon@intel.com> References: <1458555400-22859-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2AE4D6E28F for ; Mon, 21 Mar 2016 10:16:56 +0000 (UTC) In-Reply-To: <1458555400-22859-1-git-send-email-david.s.gordon@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 RHVyaW5nIGEgaGliZXJuYXRlL3Jlc3VtZSBjeWNsZSwgdGhlIGRyaXZlciwgdGhlIEd1QywgYW5k IHRoZSBkb29yYmVsbApoYXJkd2FyZSBjYW4gZW5kIHVwIGluIGluY29uc2lzdGVudCBzdGF0ZXMu IFRoaXMgcGF0Y2ggcmVmYWN0b3JzIHRoZQpkcml2ZXIncyBoYW5kbGluZyBhbmQgdHJhY2tpbmcg b2YgZG9vcmJlbGxzLCBpbiBwcmVwYXJhdGlvbiBmb3IgYSBsYXRlcgpvbmUgd2hpY2ggd2lsbCBy ZXNvbHZlIHRoZSBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdv cmRvbkBpbnRlbC5jb20+CkNjOiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDg4ICsrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCAy MzQ0YmFmLi42YjMwMjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1 Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jCkBAIC0xNzUsOCArMTc1LDQ4IEBAIHN0YXRpYyBpbnQgaG9zdDJndWNfc2FtcGxlX2Zv cmNld2FrZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAgKiBjbGllbnQgb2JqZWN0IHdoaWNoIGNv bnRhaW5zIHRoZSBwYWdlIGJlaW5nIHVzZWQgZm9yIHRoZSBkb29yYmVsbAogICovCiAKK3N0YXRp YyBpbnQgZ3VjX3VwZGF0ZV9kb29yYmVsbF9pZChzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGll bnQsCisJCQkJICBzdHJ1Y3QgZ3VjX2Rvb3JiZWxsX2luZm8gKmRvb3JiZWxsLAorCQkJCSAgdTE2 IG5ld19pZCkKK3sKKwlzdHJ1Y3Qgc2dfdGFibGUgKnNnID0gY2xpZW50LT5ndWMtPmN0eF9wb29s X29iai0+cGFnZXM7CisJdm9pZCAqZG9vcmJlbGxfYml0bWFwID0gY2xpZW50LT5ndWMtPmRvb3Ji ZWxsX2JpdG1hcDsKKwlzdHJ1Y3QgZ3VjX2NvbnRleHRfZGVzYyBkZXNjOworCXNpemVfdCBsZW47 CisKKwlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCAhPSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCAm JgorCSAgICB0ZXN0X2JpdChjbGllbnQtPmRvb3JiZWxsX2lkLCBkb29yYmVsbF9iaXRtYXApKSB7 CisJCS8qIERlYWN0aXZhdGUgdGhlIG9sZCBkb29yYmVsbCAqLworCQlkb29yYmVsbC0+ZGJfc3Rh dHVzID0gR1VDX0RPT1JCRUxMX0RJU0FCTEVEOworCQkodm9pZClob3N0Mmd1Y19yZWxlYXNlX2Rv b3JiZWxsKGNsaWVudC0+Z3VjLCBjbGllbnQpOworCQljbGVhcl9iaXQoY2xpZW50LT5kb29yYmVs bF9pZCwgZG9vcmJlbGxfYml0bWFwKTsKKwl9CisKKwkvKiBVcGRhdGUgdGhlIEd1QydzIGlkZWEg b2YgdGhlIGRvb3JiZWxsIElEICovCisJbGVuID0gc2dfcGNvcHlfdG9fYnVmZmVyKHNnLT5zZ2ws IHNnLT5uZW50cywgJmRlc2MsIHNpemVvZihkZXNjKSwKKwkJCSAgICAgc2l6ZW9mKGRlc2MpICog Y2xpZW50LT5jdHhfaW5kZXgpOworCWlmIChsZW4gIT0gc2l6ZW9mKGRlc2MpKQorCQlyZXR1cm4g LUVGQVVMVDsKKwlkZXNjLmRiX2lkID0gbmV3X2lkOworCWxlbiA9IHNnX3Bjb3B5X2Zyb21fYnVm ZmVyKHNnLT5zZ2wsIHNnLT5uZW50cywgJmRlc2MsIHNpemVvZihkZXNjKSwKKwkJCSAgICAgc2l6 ZW9mKGRlc2MpICogY2xpZW50LT5jdHhfaW5kZXgpOworCWlmIChsZW4gIT0gc2l6ZW9mKGRlc2Mp KQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBuZXdfaWQ7CisJ aWYgKG5ld19pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkKKwkJcmV0dXJuIDA7CisKKwkv KiBBY3RpdmF0ZSB0aGUgbmV3IGRvb3JiZWxsICovCisJc2V0X2JpdChjbGllbnQtPmRvb3JiZWxs X2lkLCBkb29yYmVsbF9iaXRtYXApOworCWRvb3JiZWxsLT5kYl9zdGF0dXMgPSBHVUNfRE9PUkJF TExfRU5BQkxFRDsKKwlkb29yYmVsbC0+Y29va2llID0gMDsKKwlyZXR1cm4gaG9zdDJndWNfYWxs b2NhdGVfZG9vcmJlbGwoY2xpZW50LT5ndWMsIGNsaWVudCk7Cit9CisKIHN0YXRpYyB2b2lkIGd1 Y19pbml0X2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKLQkJCSAgICAgIHN0cnVjdCBp OTE1X2d1Y19jbGllbnQgKmNsaWVudCkKKwkJCSAgICAgIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQg KmNsaWVudCwKKwkJCSAgICAgIHVpbnQxNl90IGRiX2lkKQogewogCXN0cnVjdCBndWNfZG9vcmJl bGxfaW5mbyAqZG9vcmJlbGw7CiAJdm9pZCAqYmFzZTsKQEAgLTE4NCw4ICsyMjQsNyBAQCBzdGF0 aWMgdm9pZCBndWNfaW5pdF9kb29yYmVsbChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJYmFzZSA9 IGttYXBfYXRvbWljKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjbGllbnQtPmNsaWVudF9vYmos IDApKTsKIAlkb29yYmVsbCA9IGJhc2UgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKIAotCWRv b3JiZWxsLT5kYl9zdGF0dXMgPSAxOwotCWRvb3JiZWxsLT5jb29raWUgPSAwOworCWd1Y191cGRh dGVfZG9vcmJlbGxfaWQoY2xpZW50LCBkb29yYmVsbCwgZGJfaWQpOwogCiAJa3VubWFwX2F0b21p YyhiYXNlKTsKIH0KQEAgLTE5MywyNyArMjMyLDE2IEBAIHN0YXRpYyB2b2lkIGd1Y19pbml0X2Rv b3JiZWxsKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKIHN0YXRpYyB2b2lkIGd1Y19kaXNhYmxlX2Rv b3JiZWxsKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKIAkJCQkgc3RydWN0IGk5MTVfZ3VjX2NsaWVu dCAqY2xpZW50KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190 b19pOTE1KGd1Yyk7CiAJc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkb29yYmVsbDsKIAl2b2lk ICpiYXNlOwotCWk5MTVfcmVnX3QgZHJicmVnID0gR0VOOF9EUkJSRUdMKGNsaWVudC0+ZG9vcmJl bGxfaWQpOwotCWludCB2YWx1ZTsKIAogCWJhc2UgPSBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmpl Y3RfZ2V0X3BhZ2UoY2xpZW50LT5jbGllbnRfb2JqLCAwKSk7CiAJZG9vcmJlbGwgPSBiYXNlICsg Y2xpZW50LT5kb29yYmVsbF9vZmZzZXQ7CiAKLQlkb29yYmVsbC0+ZGJfc3RhdHVzID0gMDsKKwln dWNfdXBkYXRlX2Rvb3JiZWxsX2lkKGNsaWVudCwgZG9vcmJlbGwsIEdVQ19JTlZBTElEX0RPT1JC RUxMX0lEKTsKIAogCWt1bm1hcF9hdG9taWMoYmFzZSk7CiAKLQlJOTE1X1dSSVRFKGRyYnJlZywg STkxNV9SRUFEKGRyYnJlZykgJiB+R0VOOF9EUkJfVkFMSUQpOwotCi0JdmFsdWUgPSBJOTE1X1JF QUQoZHJicmVnKTsKLQlXQVJOX09OKCh2YWx1ZSAmIEdFTjhfRFJCX1ZBTElEKSAhPSAwKTsKLQot CUk5MTVfV1JJVEUoR0VOOF9EUkJSRUdVKGNsaWVudC0+ZG9vcmJlbGxfaWQpLCAwKTsKLQlJOTE1 X1dSSVRFKGRyYnJlZywgMCk7Ci0KIAkvKiBYWFg6IHdhaXQgZm9yIGFueSBpbnRlcnJ1cHRzICov CiAJLyogWFhYOiB3YWl0IGZvciB3b3JrcXVldWUgdG8gZHJhaW4gKi8KIH0KQEAgLTI2MCw3ICsy ODgsNyBAQCBzdGF0aWMgdWludDE2X3QgYXNzaWduX2Rvb3JiZWxsKHN0cnVjdCBpbnRlbF9ndWMg Kmd1YywgdWludDMyX3QgcHJpb3JpdHkpCiAJaWYgKGlkID09IGVuZCkKIAkJaWQgPSBHVUNfSU5W QUxJRF9ET09SQkVMTF9JRDsKIAllbHNlCi0JCWJpdG1hcF9zZXQoZ3VjLT5kb29yYmVsbF9iaXRt YXAsIGlkLCAxKTsKKwkJc2V0X2JpdChpZCwgZ3VjLT5kb29yYmVsbF9iaXRtYXApOwogCiAJRFJN X0RFQlVHX0RSSVZFUigiYXNzaWduZWQgJXMgcHJpb3JpdHkgZG9vcmJlbGwgaWQgMHgleFxuIiwK IAkJCWhpX3ByaSA/ICJoaWdoIiA6ICJub3JtYWwiLCBpZCk7CkBAIC0yNjgsMTEgKzI5Niw2IEBA IHN0YXRpYyB1aW50MTZfdCBhc3NpZ25fZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1 aW50MzJfdCBwcmlvcml0eSkKIAlyZXR1cm4gaWQ7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2Vf ZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1aW50MTZfdCBpZCkKLXsKLQliaXRtYXBf Y2xlYXIoZ3VjLT5kb29yYmVsbF9iaXRtYXAsIGlkLCAxKTsKLX0KLQogLyoKICAqIEluaXRpYWxp c2UgdGhlIHByb2Nlc3MgZGVzY3JpcHRvciBzaGFyZWQgd2l0aCB0aGUgR3VDIGZpcm13YXJlLgog ICovCkBAIC02NjcsMTUgKzY5MCw3IEBAIHN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmICghY2xpZW50KQogCQlyZXR1cm47CiAKLQlpZiAoY2xp ZW50LT5kb29yYmVsbF9pZCAhPSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkgewotCQkvKgotCQkg KiBGaXJzdCBkaXNhYmxlIHRoZSBkb29yYmVsbCwgdGhlbiB0ZWxsIHRoZSBHdUMgd2UndmUKLQkJ ICogZmluaXNoZWQgd2l0aCBpdCwgZmluYWxseSBkZWFsbG9jYXRlIGl0IGluIG91ciBiaXRtYXAK LQkJICovCi0JCWd1Y19kaXNhYmxlX2Rvb3JiZWxsKGd1YywgY2xpZW50KTsKLQkJaG9zdDJndWNf cmVsZWFzZV9kb29yYmVsbChndWMsIGNsaWVudCk7Ci0JCXJlbGVhc2VfZG9vcmJlbGwoZ3VjLCBj bGllbnQtPmRvb3JiZWxsX2lkKTsKLQl9CisJZ3VjX2Rpc2FibGVfZG9vcmJlbGwoZ3VjLCBjbGll bnQpOwogCiAJLyoKIAkgKiBYWFg6IHdhaXQgZm9yIGFueSBvdXRzdGFuZGluZyBzdWJtaXNzaW9u cyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCkBAIC03MTIsNiArNzI3LDcgQEAgc3RhdGljIHN0cnVj dCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJdWludDE2X3QgZGJfaWQ7CiAKIAljbGllbnQgPSBremFs bG9jKHNpemVvZigqY2xpZW50KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGllbnQpCkBAIC03NTAs MjIgKzc2NiwyNCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9h bGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWVsc2UKIAkJY2xpZW50LT5wcm9jX2Rlc2Nf b2Zmc2V0ID0gKEdVQ19EQl9TSVpFIC8gMik7CiAKLQljbGllbnQtPmRvb3JiZWxsX2lkID0gYXNz aWduX2Rvb3JiZWxsKGd1YywgY2xpZW50LT5wcmlvcml0eSk7Ci0JaWYgKGNsaWVudC0+ZG9vcmJl bGxfaWQgPT0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQpCisJZGJfaWQgPSBhc3NpZ25fZG9vcmJl bGwoZ3VjLCBjbGllbnQtPnByaW9yaXR5KTsKKwlpZiAoZGJfaWQgPT0gR1VDX0lOVkFMSURfRE9P UkJFTExfSUQpCiAJCS8qIFhYWDogZXZpY3QgYSBkb29yYmVsbCBpbnN0ZWFkICovCiAJCWdvdG8g ZXJyOwogCiAJZ3VjX2luaXRfcHJvY19kZXNjKGd1YywgY2xpZW50KTsKIAlndWNfaW5pdF9jdHhf ZGVzYyhndWMsIGNsaWVudCk7Ci0JZ3VjX2luaXRfZG9vcmJlbGwoZ3VjLCBjbGllbnQpOworCWd1 Y19pbml0X2Rvb3JiZWxsKGd1YywgY2xpZW50LCBkYl9pZCk7CiAKIAkvKiBYWFg6IEFueSBjYWNo ZSBmbHVzaGVzIG5lZWRlZD8gR2VuZXJhbCBkb21haW4gbWdtdCBjYWxscz8gKi8KIAogCWlmICho b3N0Mmd1Y19hbGxvY2F0ZV9kb29yYmVsbChndWMsIGNsaWVudCkpCiAJCWdvdG8gZXJyOwogCi0J RFJNX0RFQlVHX0RSSVZFUigibmV3IHByaW9yaXR5ICV1IGNsaWVudCAlcDogY3R4X2luZGV4ICV1 IGRiX2lkICV1XG4iLAotCQlwcmlvcml0eSwgY2xpZW50LCBjbGllbnQtPmN0eF9pbmRleCwgY2xp ZW50LT5kb29yYmVsbF9pZCk7CisJRFJNX0RFQlVHX0RSSVZFUigibmV3IHByaW9yaXR5ICV1IGNs aWVudCAlcDogY3R4X2luZGV4ICV1XG4iLAorCQlwcmlvcml0eSwgY2xpZW50LCBjbGllbnQtPmN0 eF9pbmRleCk7CisJRFJNX0RFQlVHX0RSSVZFUigiZG9vcmJlbGwgaWQgJXUsIGNhY2hlbGluZSBv ZmZzZXQgMHgleFxuIiwKKwkJY2xpZW50LT5kb29yYmVsbF9pZCwgY2xpZW50LT5kb29yYmVsbF9v ZmZzZXQpOwogCiAJcmV0dXJuIGNsaWVudDsKIAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=