From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH v7 2/2] drm/i915: Simplify i915_reg_read_ioctl Date: Wed, 13 Sep 2017 14:52:55 +0300 Message-ID: <20170913115255.13851-2-joonas.lahtinen@linux.intel.com> References: <20170913115255.13851-1-joonas.lahtinen@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 81D3F6E82E for ; Wed, 13 Sep 2017 11:53:18 +0000 (UTC) In-Reply-To: <20170913115255.13851-1-joonas.lahtinen@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 graphics driver community testing & development Cc: Jani Nikula , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org Q29udmVydCB0byB1c2UgdGhlIGZyZXNobHkgYXZhaWxhYmxlIG1hZGUgSU5URUxfR0VOX01BU0sg Zm9yIGVhc2llcgpncmVwcGluZyBhbmQgaW1wcm92ZSBmdW5jdGlvbiByZWFkYWJpbGl0eSBhbmQg Y2xhcmlmeSB0aGUgVUFCSQpkb2N1bWVudGF0aW9uLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgoK djI6Ci0gTGlmdCBHRU1fQlVHX09OcyBhbmQgdXNlIGlzX3Bvd2VyX29mXzIgKENocmlzKQotIFJl dGFpbiAtRUlOVkFMIG9uIGJhZCBmbGFncyBiZWhhdmlvciAoQ2hyaXMpCgp2MzoKLSBFeHRyYWN0 IGZsYWdzIHdpdGggJ2VudHJ5LT5zaXplIC0gMScgKENocmlzKQoKdjQ6Ci0gQWRkIEdFTV9CVUdf T04gb24gZm9yIGZsYWdzIHZzIGVudHJ5IG9mZnNldCAoQ2hyaXMpCgp2NToKLSBVc2UgJ3UxNicg dG8gbWF0Y2ggJ2Rldl9wcml2JyAoVmlsbGUpCgp2NjoKLSBGaXggY2hlY2twYXRjaC5wbCBlcnJv cnMKClNpZ25lZC1vZmYtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4 LmludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuYyB8IDk1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgIHwgIDYgKystCiAyIGZp bGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggMWIzOGViOTRkNDYxLi45NzUyNWRlMmNlZTQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCkBAIC0xMjkyLDcyICsxMjkyLDY1IEBAIHZv aWQgaW50ZWxfdW5jb3JlX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWludGVsX3VuY29yZV9mb3JjZXdha2VfcmVzZXQoZGV2X3ByaXYsIGZhbHNlKTsKIH0KIAotI2Rl ZmluZSBHRU5fUkFOR0UobCwgaCkgR0VOTUFTSygoaCkgLSAxLCAobCkgLSAxKQotCi1zdGF0aWMg Y29uc3Qgc3RydWN0IHJlZ2lzdGVyX3doaXRlbGlzdCB7Ci0JaTkxNV9yZWdfdCBvZmZzZXRfbGR3 LCBvZmZzZXRfdWR3OwotCXVpbnQzMl90IHNpemU7Ci0JLyogc3VwcG9ydGVkIGdlbnMsIDB4MTAg Zm9yIDQsIDB4MzAgZm9yIDQgYW5kIDUsIGV0Yy4gKi8KLQl1aW50MzJfdCBnZW5fYml0bWFzazsK LX0gd2hpdGVsaXN0W10gPSB7Ci0JeyAub2Zmc2V0X2xkdyA9IFJJTkdfVElNRVNUQU1QKFJFTkRF Ul9SSU5HX0JBU0UpLAotCSAgLm9mZnNldF91ZHcgPSBSSU5HX1RJTUVTVEFNUF9VRFcoUkVOREVS X1JJTkdfQkFTRSksCi0JICAuc2l6ZSA9IDgsIC5nZW5fYml0bWFzayA9IEdFTl9SQU5HRSg0LCAx MCkgfSwKLX07CitzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ193aGl0ZWxpc3QgeworCWk5MTVfcmVn X3Qgb2Zmc2V0X2xkdzsKKwlpOTE1X3JlZ190IG9mZnNldF91ZHc7CisJdTE2IGdlbl9tYXNrOwor CXU4IHNpemU7Cit9IHJlZ19yZWFkX3doaXRlbGlzdFtdID0geyB7CisJLm9mZnNldF9sZHcgPSBS SU5HX1RJTUVTVEFNUChSRU5ERVJfUklOR19CQVNFKSwKKwkub2Zmc2V0X3VkdyA9IFJJTkdfVElN RVNUQU1QX1VEVyhSRU5ERVJfUklOR19CQVNFKSwKKwkuZ2VuX21hc2sgPSBJTlRFTF9HRU5fTUFT Syg0LCAxMCksCisJLnNpemUgPSA4Cit9IH07CiAKIGludCBpOTE1X3JlZ19yZWFkX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQl2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OwogCXN0cnVjdCBkcm1faTkxNV9yZWdfcmVhZCAqcmVnID0gZGF0YTsKLQlzdHJ1Y3QgcmVnaXN0 ZXJfd2hpdGVsaXN0IGNvbnN0ICplbnRyeSA9IHdoaXRlbGlzdDsKLQl1bnNpZ25lZCBzaXplOwot CWk5MTVfcmVnX3Qgb2Zmc2V0X2xkdywgb2Zmc2V0X3VkdzsKLQlpbnQgaSwgcmV0ID0gMDsKLQot CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdoaXRlbGlzdCk7IGkrKywgZW50cnkrKykgewot CQlpZiAoaTkxNV9tbWlvX3JlZ19vZmZzZXQoZW50cnktPm9mZnNldF9sZHcpID09IChyZWctPm9m ZnNldCAmIC1lbnRyeS0+c2l6ZSkgJiYKLQkJICAgIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2Vu X21hc2sgJiBlbnRyeS0+Z2VuX2JpdG1hc2spKQorCXN0cnVjdCByZWdfd2hpdGVsaXN0IGNvbnN0 ICplbnRyeTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJaW50IHJlbWFpbjsKKwlpbnQgcmV0ID0g MDsKKworCWVudHJ5ID0gcmVnX3JlYWRfd2hpdGVsaXN0OworCXJlbWFpbiA9IEFSUkFZX1NJWkUo cmVnX3JlYWRfd2hpdGVsaXN0KTsKKwl3aGlsZSAocmVtYWluKSB7CisJCXUzMiBlbnRyeV9vZmZz ZXQgPSBpOTE1X21taW9fcmVnX29mZnNldChlbnRyeS0+b2Zmc2V0X2xkdyk7CisKKwkJR0VNX0JV R19PTighaXNfcG93ZXJfb2ZfMihlbnRyeS0+c2l6ZSkpOworCQlHRU1fQlVHX09OKGVudHJ5LT5z aXplID4gOCk7CisJCUdFTV9CVUdfT04oZW50cnlfb2Zmc2V0ICYgKGVudHJ5LT5zaXplIC0gMSkp OworCisJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuX21hc2sgJiBlbnRyeS0+Z2VuX21h c2sgJiYKKwkJICAgIGVudHJ5X29mZnNldCA9PSAocmVnLT5vZmZzZXQgJiAtZW50cnktPnNpemUp KQogCQkJYnJlYWs7CisJCWVudHJ5Kys7CisJCXJlbWFpbi0tOwogCX0KIAotCWlmIChpID09IEFS UkFZX1NJWkUod2hpdGVsaXN0KSkKKwlpZiAoIXJlbWFpbikKIAkJcmV0dXJuIC1FSU5WQUw7CiAK LQkvKiBXZSB1c2UgdGhlIGxvdyBiaXRzIHRvIGVuY29kZSBleHRyYSBmbGFncyBhcyB0aGUgcmVn aXN0ZXIgc2hvdWxkCi0JICogYmUgbmF0dXJhbGx5IGFsaWduZWQgKGFuZCB0aG9zZSB0aGF0IGFy ZSBub3Qgc28gYWxpZ25lZCBtZXJlbHkKLQkgKiBsaW1pdCB0aGUgYXZhaWxhYmxlIGZsYWdzIGZv ciB0aGF0IHJlZ2lzdGVyKS4KLQkgKi8KLQlvZmZzZXRfbGR3ID0gZW50cnktPm9mZnNldF9sZHc7 Ci0Jb2Zmc2V0X3VkdyA9IGVudHJ5LT5vZmZzZXRfdWR3OwotCXNpemUgPSBlbnRyeS0+c2l6ZTsK LQlzaXplIHw9IHJlZy0+b2Zmc2V0IF4gaTkxNV9tbWlvX3JlZ19vZmZzZXQob2Zmc2V0X2xkdyk7 CisJZmxhZ3MgPSByZWctPm9mZnNldCAmIChlbnRyeS0+c2l6ZSAtIDEpOwogCiAJaW50ZWxfcnVu dGltZV9wbV9nZXQoZGV2X3ByaXYpOwotCi0Jc3dpdGNoIChzaXplKSB7Ci0JY2FzZSA4IHwgMToK LQkJcmVnLT52YWwgPSBJOTE1X1JFQUQ2NF8yeDMyKG9mZnNldF9sZHcsIG9mZnNldF91ZHcpOwot CQlicmVhazsKLQljYXNlIDg6Ci0JCXJlZy0+dmFsID0gSTkxNV9SRUFENjQob2Zmc2V0X2xkdyk7 Ci0JCWJyZWFrOwotCWNhc2UgNDoKLQkJcmVnLT52YWwgPSBJOTE1X1JFQUQob2Zmc2V0X2xkdyk7 Ci0JCWJyZWFrOwotCWNhc2UgMjoKLQkJcmVnLT52YWwgPSBJOTE1X1JFQUQxNihvZmZzZXRfbGR3 KTsKLQkJYnJlYWs7Ci0JY2FzZSAxOgotCQlyZWctPnZhbCA9IEk5MTVfUkVBRDgob2Zmc2V0X2xk dyk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6CisJaWYgKGVudHJ5LT5zaXplID09IDggJiYgZmxhZ3Mg PT0gSTkxNV9SRUdfUkVBRF84Ql9XQSkKKwkJcmVnLT52YWwgPSBJOTE1X1JFQUQ2NF8yeDMyKGVu dHJ5LT5vZmZzZXRfbGR3LAorCQkJCQkgICAgZW50cnktPm9mZnNldF91ZHcpOworCWVsc2UgaWYg KGVudHJ5LT5zaXplID09IDggJiYgZmxhZ3MgPT0gMCkKKwkJcmVnLT52YWwgPSBJOTE1X1JFQUQ2 NChlbnRyeS0+b2Zmc2V0X2xkdyk7CisJZWxzZSBpZiAoZW50cnktPnNpemUgPT0gNCAmJiBmbGFn cyA9PSAwKQorCQlyZWctPnZhbCA9IEk5MTVfUkVBRChlbnRyeS0+b2Zmc2V0X2xkdyk7CisJZWxz ZSBpZiAoZW50cnktPnNpemUgPT0gMiAmJiBmbGFncyA9PSAwKQorCQlyZWctPnZhbCA9IEk5MTVf UkVBRDE2KGVudHJ5LT5vZmZzZXRfbGR3KTsKKwllbHNlIGlmIChlbnRyeS0+c2l6ZSA9PSAxICYm IGZsYWdzID09IDApCisJCXJlZy0+dmFsID0gSTkxNV9SRUFEOChlbnRyeS0+b2Zmc2V0X2xkdyk7 CisJZWxzZQogCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KLW91dDoKIAlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CisKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmgKaW5kZXggZDhkMTBkOTMyNzU5Li5iNDUwNWQ1NTk5MGQgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgK QEAgLTEzMDgsMTQgKzEzMDgsMTYgQEAgc3RydWN0IGRybV9pOTE1X3JlZ19yZWFkIHsKIAkgKiBi ZSBzcGVjaWZpZWQKIAkgKi8KIAlfX3U2NCBvZmZzZXQ7CisjZGVmaW5lIEk5MTVfUkVHX1JFQURf OEJfV0EgQklUKDApCisKIAlfX3U2NCB2YWw7IC8qIFJldHVybiB2YWx1ZSAqLwogfTsKIC8qIEtu b3duIHJlZ2lzdGVyczoKICAqCiAgKiBSZW5kZXIgZW5naW5lIHRpbWVzdGFtcCAtIDB4MjM1OCAr IDY0Yml0IC0gZ2VuNysKICAqIC0gTm90ZSB0aGlzIHJlZ2lzdGVyIHJldHVybnMgYW4gaW52YWxp ZCB2YWx1ZSBpZiB1c2luZyB0aGUgZGVmYXVsdAotICogICBzaW5nbGUgaW5zdHJ1Y3Rpb24gOGJ5 dGUgcmVhZCwgaW4gb3JkZXIgdG8gd29ya2Fyb3VuZCB0aGF0IHVzZQotICogICBvZmZzZXQgKDB4 MjUzOCB8IDEpIGluc3RlYWQuCisgKiAgIHNpbmdsZSBpbnN0cnVjdGlvbiA4Ynl0ZSByZWFkLCBp biBvcmRlciB0byB3b3JrYXJvdW5kIHRoYXQgcGFzcworICogICBmbGFnIEk5MTVfUkVHX1JFQURf OEJfV0EgaW4gb2Zmc2V0IGZpZWxkLgogICoKICAqLwogCi0tIAoyLjEzLjUKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=