From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 6/8] drm/i915: Routines for inserting OA capture commands in the ringbuffer Date: Mon, 22 Jun 2015 15:20:17 +0530 Message-ID: <1434966619-3979-7-git-send-email-sourab.gupta@intel.com> References: <1434966619-3979-1-git-send-email-sourab.gupta@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 744D56E4B9 for ; Mon, 22 Jun 2015 02:48:51 -0700 (PDT) In-Reply-To: <1434966619-3979-1-git-send-email-sourab.gupta@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 Cc: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBp bnRyb2R1Y2VzIHRoZSByb3V0aW5lcyB3aGljaCBpbnNlcnQgY29tbWFuZHMgZm9yIGNhcHR1cmlu ZyBPQQpzbmFwc2hvdHMsIGludG8gdGhlIHJpbmdidWZmZXIgZm9yIFJDUyBlbmdpbmUuClRoZSBj b21tYW5kIE1JX1JFUE9SVF9QRVJGX0NPVU5UIGNhbiBiZSB1c2VkIHRvIGNhcHR1cmUJc25hcHNo b3RzIG9mIE9BCmNvdW50ZXJzLiBUaGUgcm91dGluZXMgaW50cm9kdWNlZCBpbiB0aGlzIHBhdGNo IGNhbiBiZSBjYWxsZWQgdG8gaW5zZXJ0IHRoZXNlCmNvbW1hbmRzIGF0IGFwcHJvcHJpYXRlIHBv aW50cyBkdXJpbmcgd29ya2xvYWQgc3VibWlzc2lvbgoKU2lnbmVkLW9mZi1ieTogU291cmFiIEd1 cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZG1hLmMgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg fCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMgfCA4NiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDkwIGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCAwNTUzZjIwLi5mMTJmZWFhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKQEAgLTgyMSw2ICs4MjEsNyBAQCBpbnQgaTkxNV9kcml2 ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCS8q IE11c3QgYXQgbGVhc3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgdHJ5aW5nIHRvIHBpbiBhbnkgY29u dGV4dAogCSAqIG90aGVyd2lzZSBpOTE1X29hX2NvbnRleHRfcGluX25vdGlmeSgpIHdpbGwgbG9j ayBhbiB1bi1pbml0aWFsaXplZAogCSAqIHNwaW5sb2NrLCB1cHNldHRpbmcgbG9ja2RlcCBjaGVj a3MgKi8KKwlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnByb2ZpbGVfY21kKTsKIAlpOTE1X29h X3BtdV9yZWdpc3RlcihkZXYpOwogCiAJaW50ZWxfcG1fc2V0dXAoZGV2KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCmluZGV4IDU0NTM4NDIuLjc5OGRhNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMTk4Miw2ICsxOTgyLDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQlzdHJ1 Y3Qgd29ya19zdHJ1Y3Qgd29ya19ldmVudF9zdG9wOwogCQlzdHJ1Y3QgY29tcGxldGlvbiBjb21w bGV0ZTsKIAl9IG9hX3BtdTsKKworCXN0cnVjdCBsaXN0X2hlYWQgcHJvZmlsZV9jbWQ7CiAjZW5k aWYKIAogCS8qIEFic3RyYWN0IHRoZSBzdWJtaXNzaW9uIG1lY2hhbmlzbSAobGVnYWN5IHJpbmdi dWZmZXIgb3IgZXhlY2xpc3RzKSBhd2F5ICovCkBAIC0zMTYyLDYgKzMxNjQsNyBAQCB2b2lkIGk5 MTVfb2FfY29udGV4dF9waW5fbm90aWZ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY29udGV4dCk7CiB2b2lkIGk5MTVfb2FfY29u dGV4dF91bnBpbl9ub3RpZnkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ CSAgc3RydWN0IGludGVsX2NvbnRleHQgKmNvbnRleHQpOwordm9pZCBpOTE1X2luc2VydF9wcm9m aWxpbmdfY21kKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCB1MzIgY3R4X2lkKTsK ICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQKIGk5MTVfb2FfY29udGV4dF9waW5fbm90aWZ5KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9w ZXJmLmMKaW5kZXggNWQ2M2RhYi4uYjAyODUwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9vYV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9w ZXJmLmMKQEAgLTI1LDYgKzI1LDc2IEBAIHN0YXRpYyBpbnQgaHN3X3BlcmZfZm9ybWF0X3NpemVz W10gPSB7CiAJNjQgICAvKiBDNF9COF9IU1cgKi8KIH07CiAKK3N0cnVjdCBkcm1faTkxNV9pbnNl cnRfY21kIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJdm9pZCAoKmluc2VydF9jbWQpKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCB1MzIgY3R4X2lkKTsKK307CisKK3ZvaWQg aTkxNV9pbnNlcnRfcHJvZmlsaW5nX2NtZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiwgdTMyIGN0eF9pZCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1 Zi0+cmluZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYt PmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9pbnNlcnRfY21kICplbnRyeTsKKworCWxp c3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZkZXZfcHJpdi0+cHJvZmlsZV9jbWQsIGxpc3QpCisJ CWVudHJ5LT5pbnNlcnRfY21kKHJpbmdidWYsIGN0eF9pZCk7Cit9CisKK3ZvaWQgaTkxNV9vYV9p bnNlcnRfY21kKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCB1MzIgY3R4X2lkKQor eworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7CisJ c3RydWN0IGRybV9pOTE1X29hX2FzeW5jX25vZGVfaW5mbyAqbm9kZV9pbmZvID0gTlVMTDsKKwlz dHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfcXVldWVfaGVhZGVyICpxdWV1ZV9oZHIgPQorCQkJKHN0 cnVjdCBkcm1faTkxNV9vYV9hc3luY19xdWV1ZV9oZWFkZXIgKikKKwkJCWRldl9wcml2LT5vYV9w bXUub2FfYXN5bmNfYnVmZmVyLmFkZHI7CisJdm9pZCAqZGF0YV9wdHIgPSAodTggKilxdWV1ZV9o ZHIgKyBxdWV1ZV9oZHItPmRhdGFfb2Zmc2V0OworCWludCBkYXRhX3NpemUgPQkocXVldWVfaGRy LT5zaXplX2luX2J5dGVzIC0gcXVldWVfaGRyLT5kYXRhX29mZnNldCk7CisJdTMyIGRhdGFfb2Zm c2V0LCBhZGRyID0gMDsKKwlpbnQgcmV0OworCisJc3RydWN0IGRybV9pOTE1X29hX2FzeW5jX25v ZGUgKm5vZGVzID0gZGF0YV9wdHI7CisJaW50IG51bV9ub2RlcyA9IDA7CisJaW50IGluZGV4ID0g MDsKKworCS8qIE9BIGNvdW50ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCBvbiB0aGUgcmVuZGVyIHJp bmcgKi8KKwlpZiAocmluZy0+aWQgIT0gUkNTKQorCQlyZXR1cm47CisKKwludW1fbm9kZXMgPSBk YXRhX3NpemUgLyBzaXplb2YoKm5vZGVzKTsKKwlpbmRleCA9IHF1ZXVlX2hkci0+bm9kZV9jb3Vu dCAlIG51bV9ub2RlczsKKworCWRhdGFfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IGRybV9pOTE1 X29hX2FzeW5jX25vZGUsIHJlcG9ydF9wZXJmKTsKKworCWFkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQoZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIub2JqKSArCisJCXF1ZXVl X2hkci0+ZGF0YV9vZmZzZXQgKworCQlpbmRleCAqIHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfb2Ff YXN5bmNfbm9kZSkgKworCQlkYXRhX29mZnNldDsKKworCS8qIGFkZHIgc2hvdWxkIGJlIDY0IGJ5 dGUgYWxpZ25lZCAqLworCUJVR19PTihhZGRyICYgMHgzZik7CisKKwlyZXQgPSBpbnRlbF9yaW5n X2JlZ2luKHJpbmcsIDQpOworCWlmIChyZXQpCisJCXJldHVybjsKKworCWludGVsX3JpbmdfZW1p dChyaW5nLCBNSV9SRVBPUlRfUEVSRl9DT1VOVCB8ICgxPDwwKSk7CisJaW50ZWxfcmluZ19lbWl0 KHJpbmcsIGFkZHIgfCBNSV9SRVBPUlRfUEVSRl9DT1VOVF9HR1RUKTsKKwlpbnRlbF9yaW5nX2Vt aXQocmluZywgcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0LT5zZXFubyk7CisJaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOworCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwor CW5vZGVfaW5mbyA9ICZub2Rlc1tpbmRleF0ubm9kZV9pbmZvOworCWk5MTVfZ2VtX3JlcXVlc3Rf YXNzaWduKCZub2RlX2luZm8tPnJlcSwKKwkJCQlyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVl c3QpOworCisJbm9kZV9pbmZvLT5waWQgPSBjdXJyZW50LT5waWQ7CisJbm9kZV9pbmZvLT5jdHhf aWQgPSBjdHhfaWQ7CisJcXVldWVfaGRyLT5ub2RlX2NvdW50Kys7CisJaWYgKHF1ZXVlX2hkci0+ bm9kZV9jb3VudCA+IG51bV9ub2RlcykKKwkJcXVldWVfaGRyLT53cmFwX2NvdW50Kys7Cit9CisK IHN0YXRpYyB2b2lkIGluaXRfb2FfYXN5bmNfYnVmX3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfcXVldWVfaGVhZGVy ICpoZHIgPQpAQCAtODY1LDYgKzkzNSw3IEBAIHZvaWQgaTkxNV9vYV9hc3luY19zdG9wX3dvcmtf Zm4oc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJCWNvbnRhaW5lcl9vZihfX3dvcmssIHR5 cGVvZigqZGV2X3ByaXYpLAogCQkJb2FfcG11LndvcmtfZXZlbnRfc3RvcCk7CiAJc3RydWN0IHBl cmZfZXZlbnQgKmV2ZW50ID0gZGV2X3ByaXYtPm9hX3BtdS5leGNsdXNpdmVfZXZlbnQ7CisJc3Ry dWN0IGRybV9pOTE1X2luc2VydF9jbWQgKmVudHJ5LCAqbmV4dDsKIAlzdHJ1Y3QgZHJtX2k5MTVf b2FfYXN5bmNfcXVldWVfaGVhZGVyICpoZHIgPQogCQkoc3RydWN0IGRybV9pOTE1X29hX2FzeW5j X3F1ZXVlX2hlYWRlciAqKQogCQlkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5hZGRy OwpAQCAtODgyLDYgKzk1MywxMyBAQCB2b2lkIGk5MTVfb2FfYXN5bmNfc3RvcF93b3JrX2ZuKHN0 cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCWlmIChyZXQpCiAJCXJldHVybjsKIAorCWxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwgbmV4dCwgJmRldl9wcml2LT5wcm9maWxlX2NtZCwg bGlzdCkgeworCQlpZiAoZW50cnktPmluc2VydF9jbWQgPT0gaTkxNV9vYV9pbnNlcnRfY21kKSB7 CisJCQlsaXN0X2RlbCgmZW50cnktPmxpc3QpOworCQkJa2ZyZWUoZW50cnkpOworCQl9CisJfQor CiAJZGV2X3ByaXYtPm9hX3BtdS5ldmVudF9hY3RpdmUgPSBmYWxzZTsKIAogCWk5MTVfb2FfYXN5 bmNfd2FpdF9ncHUoZGV2X3ByaXYpOwpAQCAtOTIwLDggKzk5OCwxNCBAQCBzdGF0aWMgdm9pZCBp OTE1X29hX2V2ZW50X3N0YXJ0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCwgaW50IGZsYWdzKQog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCWNvbnRhaW5lcl9vZihldmVu dC0+cG11LCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11LnBtdSk7CiAJdW5zaWduZWQgbG9uZyBs b2NrX2ZsYWdzOworCXN0cnVjdCBkcm1faTkxNV9pbnNlcnRfY21kICplbnRyeTsKIAl1MzIgb2Fz dGF0dXMxLCB0YWlsOwogCisJZW50cnkgPSBremFsbG9jKHNpemVvZigqZW50cnkpLCBHRlBfQVRP TUlDKTsKKwlpZiAoIWVudHJ5KQorCQlyZXR1cm47CisJZW50cnktPmluc2VydF9jbWQgPSBpOTE1 X29hX2luc2VydF9jbWQ7CisKIAlpZiAoZGV2X3ByaXYtPm9hX3BtdS5tZXRyaWNzX3NldCA9PSBJ OTE1X09BX01FVFJJQ1NfU0VUXzNEKSB7CiAJCWNvbmZpZ19vYV9yZWdzKGRldl9wcml2LCBpOTE1 X29hXzNkX211eF9jb25maWdfaHN3LAogCQkJCWk5MTVfb2FfM2RfbXV4X2NvbmZpZ19oc3dfbGVu KTsKQEAgLTk3Niw2ICsxMDYwLDggQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9ldmVudF9zdGFydChz dHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsIGludCBmbGFncykKIAlkZXZfcHJpdi0+b2FfcG11LmV2 ZW50X2FjdGl2ZSA9IHRydWU7CiAJdXBkYXRlX29hY29udHJvbChkZXZfcHJpdik7CiAKKwlsaXN0 X2FkZF90YWlsKCZlbnRyeS0+bGlzdCwgJmRldl9wcml2LT5wcm9maWxlX2NtZCk7CisKIAkvKiBS ZXNldCB0aGUgaGVhZCBwdHIgdG8gZW5zdXJlIHdlIGRvbid0IGZvcndhcmQgcmVwb3J0cyByZWxh dGluZwogCSAqIHRvIGEgcHJldmlvdXMgcGVyZiBldmVudCAqLwogCW9hc3RhdHVzMSA9IEk5MTVf UkVBRChHRU43X09BU1RBVFVTMSk7Ci0tIAoxLjguNS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=