From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v3 01/28] drm/i915: Ensure OLS & PLR are always in sync Date: Mon, 24 Nov 2014 18:49:23 +0000 Message-ID: <1416854990-1920-2-git-send-email-John.C.Harrison@Intel.com> References: <1416854990-1920-1-git-send-email-John.C.Harrison@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 CB9FE6EE15 for ; Mon, 24 Nov 2014 10:50:14 -0800 (PST) In-Reply-To: <1416854990-1920-1-git-send-email-John.C.Harrison@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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZSBhaW0g aXMgdG8gcmVwbGFjZSBzZXFubyB2YWx1ZXMgd2l0aCByZXF1ZXN0IHN0cnVjdHVyZXMuIEEgc3Rl cCBhbG9uZyB0aGUgd2F5CmlzIHRvIHN3aXRjaCB0byB1c2luZyB0aGUgUExSIGluIHByZWZlcmVu Y2UgdG8gdGhlIE9MUy4gVGhhdCByZXF1aXJlcyB0aGUgUExSIHRvCm9ubHkgYmUgdmFsaWQgd2hl biBhbmQgb25seSB3aGVuIHRoZSBPTFMgaXMgYWxzbyB2YWxpZC4gSS5lLiwgdGhlIHR3byBtdXN0 IGJlCmtlcHQgaW4gbG9jayBzdGVwLiBUaGVuLCBjb2RlIHdoaWNoIHdhcyB1c2luZyB0aGUgT0xT IGNhbiBiZSBzYWZlbHkgc3dpdGNoZWQKb3ZlciB0byB1c2luZyB0aGUgUExSIGluc3RlYWQuCgpG b3I6IFZJWi00Mzc3ClNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNv bkBJbnRlbC5jb20+ClJldmlld2VkLWJ5OiBUaG9tYXMgRGFuaWVsIDxUaG9tYXMuRGFuaWVsQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAg IDU1ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgMjkgKysrKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFu Z2VkLCA1NCBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCmluZGV4IGU1ODgzNzYuLjk4YTRiMTE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwpAQCAtODc5LDM3ICs4NzksNDggQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19hbGxvY19z ZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY3R4KQogeworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsK IAlpbnQgcmV0OwogCi0JaWYgKHJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pCi0JCXJldHVy biAwOworCS8qIFhYWDogVGhlIGFpbSBpcyB0byByZXBsYWNlIHNlcW5vIHZhbHVlcyB3aXRoIHJl cXVlc3Qgc3RydWN0dXJlcy4KKwkgKiBBIHN0ZXAgYWxvbmcgdGhlIHdheSBpcyB0byBzd2l0Y2gg dG8gdXNpbmcgdGhlIFBMUiBpbiBwcmVmZXJlbmNlCisJICogdG8gdGhlIE9MUy4gVGhhdCByZXF1 aXJlcyB0aGUgUExSIHRvIG9ubHkgYmUgdmFsaWQgd2hlbiB0aGUgT0xTIGlzCisJICogYWxzbyB2 YWxpZC4gSS5lLiwgdGhlIHR3byBtdXN0IGJlIGtlcHQgaW4gc3RlcC4gKi8KIAotCWlmIChyaW5n LT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0ID09IE5VTEwpIHsKLQkJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OworCWlmIChyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5v KSB7CisJCVdBUk5fT04ocmluZy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdCA9PSBOVUxMKTsK KwkJcmV0dXJuIDA7CisJfQorCVdBUk5fT04ocmluZy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVz dCAhPSBOVUxMKTsKIAotCQlyZXF1ZXN0ID0ga21hbGxvYyhzaXplb2YoKnJlcXVlc3QpLCBHRlBf S0VSTkVMKTsKLQkJaWYgKHJlcXVlc3QgPT0gTlVMTCkKLQkJCXJldHVybiAtRU5PTUVNOworCXJl cXVlc3QgPSBrbWFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9LRVJORUwpOworCWlmIChyZXF1 ZXN0ID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOwogCi0JCWlmIChjdHggIT0gcmluZy0+ZGVm YXVsdF9jb250ZXh0KSB7Ci0JCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X3BpbihyaW5nLCBjdHgp OwotCQkJaWYgKHJldCkgewotCQkJCWtmcmVlKHJlcXVlc3QpOwotCQkJCXJldHVybiByZXQ7Ci0J CQl9CisJaWYgKGN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKKwkJcmV0ID0gaW50ZWxf bHJfY29udGV4dF9waW4ocmluZywgY3R4KTsKKwkJaWYgKHJldCkgeworCQkJa2ZyZWUocmVxdWVz dCk7CisJCQlyZXR1cm4gcmV0OwogCQl9CisJfQogCi0JCS8qIEhvbGQgYSByZWZlcmVuY2UgdG8g dGhlIGNvbnRleHQgdGhpcyByZXF1ZXN0IGJlbG9uZ3MgdG8KLQkJICogKHdlIHdpbGwgbmVlZCBp dCB3aGVuIHRoZSB0aW1lIGNvbWVzIHRvIGVtaXQvcmV0aXJlIHRoZQotCQkgKiByZXF1ZXN0KS4K LQkJICovCi0JCXJlcXVlc3QtPmN0eCA9IGN0eDsKLQkJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVu Y2UocmVxdWVzdC0+Y3R4KTsKLQotCQlyaW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0ID0g cmVxdWVzdDsKKwlyZXQgPSBpOTE1X2dlbV9nZXRfc2Vxbm8ocmluZy0+ZGV2LCAmcmluZy0+b3V0 c3RhbmRpbmdfbGF6eV9zZXFubyk7CisJaWYgKHJldCkgeworCQlpbnRlbF9scl9jb250ZXh0X3Vu cGluKHJpbmcsIGN0eCk7CisJCWtmcmVlKHJlcXVlc3QpOworCQlyZXR1cm4gcmV0OwogCX0KIAot CXJldHVybiBpOTE1X2dlbV9nZXRfc2Vxbm8ocmluZy0+ZGV2LCAmcmluZy0+b3V0c3RhbmRpbmdf bGF6eV9zZXFubyk7CisJLyogSG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dCB0aGlzIHJl cXVlc3QgYmVsb25ncyB0bworCSAqICh3ZSB3aWxsIG5lZWQgaXQgd2hlbiB0aGUgdGltZSBjb21l cyB0byBlbWl0L3JldGlyZSB0aGUKKwkgKiByZXF1ZXN0KS4KKwkgKi8KKwlyZXF1ZXN0LT5jdHgg PSBjdHg7CisJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UocmVxdWVzdC0+Y3R4KTsKKworCXJp bmctPnByZWFsbG9jYXRlZF9sYXp5X3JlcXVlc3QgPSByZXF1ZXN0OworCXJldHVybiAwOwogfQog CiBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X3JlcXVlc3Qoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5k ZXggMWQwMWI1MS4uOWZlMTMwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwpAQCAtMjAyNCwyMCArMjAyNCwzMyBAQCBpbnQgaW50ZWxfcmluZ19pZGxlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpCiBzdGF0aWMgaW50CiBpbnRlbF9yaW5nX2FsbG9jX3NlcW5v KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiB7Ci0JaWYgKHJpbmctPm91dHN0YW5kaW5n X2xhenlfc2Vxbm8pCisJaW50IHJldDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3Q7CisKKwkvKiBYWFg6IFRoZSBhaW0gaXMgdG8gcmVwbGFjZSBzZXFubyB2YWx1ZXMgd2l0 aCByZXF1ZXN0IHN0cnVjdHVyZXMuCisJICogQSBzdGVwIGFsb25nIHRoZSB3YXkgaXMgdG8gc3dp dGNoIHRvIHVzaW5nIHRoZSBQTFIgaW4gcHJlZmVyZW5jZQorCSAqIHRvIHRoZSBPTFMuIFRoYXQg cmVxdWlyZXMgdGhlIFBMUiB0byBvbmx5IGJlIHZhbGlkIHdoZW4gdGhlIE9MUworCSAqIGlzIGFs c28gdmFsaWQuIEkuZS4sIHRoZSB0d28gbXVzdCBiZSBrZXB0IGluIHN0ZXAuICovCisKKwlpZiAo cmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubykgeworCQlXQVJOX09OKHJpbmctPnByZWFsbG9j YXRlZF9sYXp5X3JlcXVlc3QgPT0gTlVMTCk7CiAJCXJldHVybiAwOworCX0KIAotCWlmIChyaW5n LT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0ID09IE5VTEwpIHsKLQkJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OworCVdBUk5fT04ocmluZy0+cHJlYWxsb2NhdGVkX2xhenlf cmVxdWVzdCAhPSBOVUxMKTsKIAotCQlyZXF1ZXN0ID0ga21hbGxvYyhzaXplb2YoKnJlcXVlc3Qp LCBHRlBfS0VSTkVMKTsKLQkJaWYgKHJlcXVlc3QgPT0gTlVMTCkKLQkJCXJldHVybiAtRU5PTUVN OworCXJlcXVlc3QgPSBrbWFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9LRVJORUwpOworCWlm IChyZXF1ZXN0ID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOwogCi0JCXJpbmctPnByZWFsbG9j YXRlZF9sYXp5X3JlcXVlc3QgPSByZXF1ZXN0OworCXJldCA9IGk5MTVfZ2VtX2dldF9zZXFubyhy aW5nLT5kZXYsICZyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vKTsKKwlpZiAocmV0KSB7CisJ CWtmcmVlKHJlcXVlc3QpOworCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldHVybiBpOTE1X2dlbV9n ZXRfc2Vxbm8ocmluZy0+ZGV2LCAmcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubyk7CisJcmlu Zy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdCA9IHJlcXVlc3Q7CisJcmV0dXJuIDA7CiB9CiAK IHN0YXRpYyBpbnQgX19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKLS0gCjEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==