From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: [PATCH v2 4/4] drm/nouveau: Switch to the generic underscan props Date: Fri, 11 May 2018 16:59:19 +0200 Message-ID: <20180511145919.22447-5-boris.brezillon@bootlin.com> References: <20180511145919.22447-1-boris.brezillon@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180511145919.22447-1-boris.brezillon-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: David Airlie , Daniel Vetter , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: "David (ChunMing) Zhou" , Boris Brezillon , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Eric Anholt , Ben Skeggs , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org Tm93IHRoYXQgdW5kZXJzY2FuIHByb3BzIGNhbiBiZSBwYXJzZWQgYnkgdGhlIGNvcmUgYW5kIGFz c2lnbmVkIHRvCmNvbm5fc3RhdGUtPnVuZGVyc2Nhbi54eHgsIHdlIGNhbiByZWx5IG9uIHRoaXMg aW1wbGVtZW50YXRpb24gYW5kIGdldApyaWQgb2YgdGhlIG5vdXZlYXUtc3BlY2lmaWMgdW5kZXJz Y2FuIHByb3BzLgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxs b25AYm9vdGxpbi5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25u ZWN0b3IuYyB8IDM5ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5oIHwgIDkgLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMgICB8IDE0IC0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaCAgIHwgIDMgLS0tCiBkcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyAgICAgIHwgMTcgKysrKysrKysrLS0tLQogNSBm aWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jIGIvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25uZWN0b3IuYwppbmRleCA2ZWQ5Y2IwNTNkZmEu LjBjZTA1NWQzYjg5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5l Y3Rvci5jCkBAIC0xMDUsMTIgKzEwNSw2IEBAIG5vdXZlYXVfY29ubl9hdG9taWNfZ2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIAlpZiAocHJvcGVydHkgPT0g ZGV2LT5tb2RlX2NvbmZpZy5zY2FsaW5nX21vZGVfcHJvcGVydHkpCiAJCSp2YWwgPSBhc3ljLT5z Y2FsZXIubW9kZTsKLQllbHNlIGlmIChwcm9wZXJ0eSA9PSBkaXNwLT51bmRlcnNjYW5fcHJvcGVy dHkpCi0JCSp2YWwgPSBhc3ljLT5zY2FsZXIudW5kZXJzY2FuLm1vZGU7Ci0JZWxzZSBpZiAocHJv cGVydHkgPT0gZGlzcC0+dW5kZXJzY2FuX2hib3JkZXJfcHJvcGVydHkpCi0JCSp2YWwgPSBhc3lj LT5zY2FsZXIudW5kZXJzY2FuLmhib3JkZXI7Ci0JZWxzZSBpZiAocHJvcGVydHkgPT0gZGlzcC0+ dW5kZXJzY2FuX3Zib3JkZXJfcHJvcGVydHkpCi0JCSp2YWwgPSBhc3ljLT5zY2FsZXIudW5kZXJz Y2FuLnZib3JkZXI7CiAJZWxzZSBpZiAocHJvcGVydHkgPT0gZGlzcC0+ZGl0aGVyaW5nX21vZGUp CiAJCSp2YWwgPSBhc3ljLT5kaXRoZXIubW9kZTsKIAllbHNlIGlmIChwcm9wZXJ0eSA9PSBkaXNw LT5kaXRoZXJpbmdfZGVwdGgpCkBAIC0xNzAsMjQgKzE2NCw2IEBAIG5vdXZlYXVfY29ubl9hdG9t aWNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQlhc3lj LT5zZXQuc2NhbGVyID0gdHJ1ZTsKIAkJfQogCX0gZWxzZQotCWlmIChwcm9wZXJ0eSA9PSBkaXNw LT51bmRlcnNjYW5fcHJvcGVydHkpIHsKLQkJaWYgKGFzeWMtPnNjYWxlci51bmRlcnNjYW4ubW9k ZSAhPSB2YWwpIHsKLQkJCWFzeWMtPnNjYWxlci51bmRlcnNjYW4ubW9kZSA9IHZhbDsKLQkJCWFz eWMtPnNldC5zY2FsZXIgPSB0cnVlOwotCQl9Ci0JfSBlbHNlCi0JaWYgKHByb3BlcnR5ID09IGRp c3AtPnVuZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5KSB7Ci0JCWlmIChhc3ljLT5zY2FsZXIudW5k ZXJzY2FuLmhib3JkZXIgIT0gdmFsKSB7Ci0JCQlhc3ljLT5zY2FsZXIudW5kZXJzY2FuLmhib3Jk ZXIgPSB2YWw7Ci0JCQlhc3ljLT5zZXQuc2NhbGVyID0gdHJ1ZTsKLQkJfQotCX0gZWxzZQotCWlm IChwcm9wZXJ0eSA9PSBkaXNwLT51bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eSkgewotCQlpZiAo YXN5Yy0+c2NhbGVyLnVuZGVyc2Nhbi52Ym9yZGVyICE9IHZhbCkgewotCQkJYXN5Yy0+c2NhbGVy LnVuZGVyc2Nhbi52Ym9yZGVyID0gdmFsOwotCQkJYXN5Yy0+c2V0LnNjYWxlciA9IHRydWU7Ci0J CX0KLQl9IGVsc2UKIAlpZiAocHJvcGVydHkgPT0gZGlzcC0+ZGl0aGVyaW5nX21vZGUpIHsKIAkJ aWYgKGFzeWMtPmRpdGhlci5tb2RlICE9IHZhbCkgewogCQkJYXN5Yy0+ZGl0aGVyLm1vZGUgPSB2 YWw7CkBAIC0yNTYsNyArMjMyLDYgQEAgbm91dmVhdV9jb25uX3Jlc2V0KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCiAJYXN5Yy0+ZGl0aGVyLm1vZGUgPSBESVRIRVJJTkdfTU9ERV9B VVRPOwogCWFzeWMtPmRpdGhlci5kZXB0aCA9IERJVEhFUklOR19ERVBUSF9BVVRPOwogCWFzeWMt PnNjYWxlci5tb2RlID0gRFJNX01PREVfU0NBTEVfTk9ORTsKLQlhc3ljLT5zY2FsZXIudW5kZXJz Y2FuLm1vZGUgPSBVTkRFUlNDQU5fT0ZGOwogCWFzeWMtPnByb2NhbXAuY29sb3JfdmlicmFuY2Ug PSAxNTA7CiAJYXN5Yy0+cHJvY2FtcC52aWJyYW50X2h1ZSA9IDkwOwogCkBAIC0yODUsMTggKzI2 MCwxNiBAQCBub3V2ZWF1X2Nvbm5fYXR0YWNoX3Byb3BlcnRpZXMoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAkJCQkJICAgZHZpX2lfc3ViY29ubmVjdG9yX3Byb3BlcnR5LCAwKTsK IAogCS8qIEFkZCBvdmVyc2NhbiBjb21wZW5zYXRpb24gb3B0aW9ucyB0byBkaWdpdGFsIG91dHB1 dHMuICovCi0JaWYgKGRpc3AtPnVuZGVyc2Nhbl9wcm9wZXJ0eSAmJgorCWlmIChkaXNwLT5kaXNw Lm9jbGFzcyA+PSBOVjUwX0RJU1AgJiYKIAkgICAgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUg PT0gRFJNX01PREVfQ09OTkVDVE9SX0RWSUQgfHwKIAkgICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9y X3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0RWSUkgfHwKIAkgICAgIGNvbm5lY3Rvci0+Y29u bmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlBIHx8CiAJICAgICBjb25uZWN0 b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkpIHsK LQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKLQkJCQkJICAg ZGlzcC0+dW5kZXJzY2FuX3Byb3BlcnR5LAotCQkJCQkgICBVTkRFUlNDQU5fT0ZGKTsKLQkJZHJt X29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKLQkJCQkJICAgZGlzcC0+ dW5kZXJzY2FuX2hib3JkZXJfcHJvcGVydHksIDApOwotCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9w ZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAotCQkJCQkgICBkaXNwLT51bmRlcnNjYW5fdmJvcmRlcl9w cm9wZXJ0eSwgMCk7CisJCVdBUk5fT04oZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdW5kZXJzY2FuX3By b3BlcnRpZXMoY29ubmVjdG9yLAorCQkJCQkJQklUKERSTV9VTkRFUlNDQU5fT0ZGKSB8CisJCQkJ CQlCSVQoRFJNX1VOREVSU0NBTl9PTikgfAorCQkJCQkJQklUKERSTV9VTkRFUlNDQU5fQVVUTyks CisJCQkJCQkxMjgsIDEyOCkpOwogCX0KIAogCS8qIEFkZCBodWUgYW5kIHNhdHVyYXRpb24gb3B0 aW9ucy4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29u bmVjdG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5oCmlu ZGV4IGE0ZDFhMDU5YmQzZC4uMWQzZWM2NTI4OGUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfY29ubmVjdG9yLmgKQEAgLTExMSwxNSArMTExLDYgQEAgc3RydWN0IG5vdXZl YXVfY29ubl9hdG9tIHsKIAogCXN0cnVjdCB7CiAJCWludCBtb2RlOwkvKiBEUk1fTU9ERV9TQ0FM RV8qICovCi0JCXN0cnVjdCB7Ci0JCQllbnVtIHsKLQkJCQlVTkRFUlNDQU5fT0ZGLAotCQkJCVVO REVSU0NBTl9PTiwKLQkJCQlVTkRFUlNDQU5fQVVUTywKLQkJCX0gbW9kZTsKLQkJCXUzMiBoYm9y ZGVyOwotCQkJdTMyIHZib3JkZXI7Ci0JCX0gdW5kZXJzY2FuOwogCQlib29sIGZ1bGw7CiAJfSBz Y2FsZXI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKaW5kZXgg N2QwYmVjOGRkMDNkLi4wMDJjMmIxMzU3MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfZGlzcGxheS5jCkBAIC0zMDMsMTMgKzMwMyw2IEBAIHN0cnVjdCBub3V2ZWF1X2RybV9w cm9wX2VudW1fbGlzdCB7CiAJY2hhciAqbmFtZTsKIH07CiAKLXN0YXRpYyBzdHJ1Y3Qgbm91dmVh dV9kcm1fcHJvcF9lbnVtX2xpc3QgdW5kZXJzY2FuW10gPSB7Ci0JeyA2LCBVTkRFUlNDQU5fQVVU TywgImF1dG8iIH0sCi0JeyA2LCBVTkRFUlNDQU5fT0ZGLCAib2ZmIiB9LAotCXsgNiwgVU5ERVJT Q0FOX09OLCAib24iIH0sCi0Je30KLX07Ci0KIHN0YXRpYyBzdHJ1Y3Qgbm91dmVhdV9kcm1fcHJv cF9lbnVtX2xpc3QgZGl0aGVyX21vZGVbXSA9IHsKIAl7IDcsIERJVEhFUklOR19NT0RFX0FVVE8s ICJhdXRvIiB9LAogCXsgNywgRElUSEVSSU5HX01PREVfT0ZGLCAib2ZmIiB9LApAQCAtNDY0LDEz ICs0NTcsNiBAQCBub3V2ZWF1X2Rpc3BsYXlfY3JlYXRlX3Byb3BlcnRpZXMoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAogCVBST1BfRU5VTShkaXNwLT5kaXRoZXJpbmdfbW9kZSwgZ2VuLCAiZGl0 aGVyaW5nIG1vZGUiLCBkaXRoZXJfbW9kZSk7CiAJUFJPUF9FTlVNKGRpc3AtPmRpdGhlcmluZ19k ZXB0aCwgZ2VuLCAiZGl0aGVyaW5nIGRlcHRoIiwgZGl0aGVyX2RlcHRoKTsKLQlQUk9QX0VOVU0o ZGlzcC0+dW5kZXJzY2FuX3Byb3BlcnR5LCBnZW4sICJ1bmRlcnNjYW4iLCB1bmRlcnNjYW4pOwot Ci0JZGlzcC0+dW5kZXJzY2FuX2hib3JkZXJfcHJvcGVydHkgPQotCQlkcm1fcHJvcGVydHlfY3Jl YXRlX3JhbmdlKGRldiwgMCwgInVuZGVyc2NhbiBoYm9yZGVyIiwgMCwgMTI4KTsKLQotCWRpc3At PnVuZGVyc2Nhbl92Ym9yZGVyX3Byb3BlcnR5ID0KLQkJZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5n ZShkZXYsIDAsICJ1bmRlcnNjYW4gdmJvcmRlciIsIDAsIDEyOCk7CiAKIAlpZiAoZ2VuIDwgMSkK IAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9k aXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaAppbmRl eCAyNzBiYTU2ZjI3NTYuLmRmMmY1N2Q3MmZhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9kaXNwbGF5LmgKQEAgLTQyLDkgKzQyLDYgQEAgc3RydWN0IG5vdXZlYXVfZGlzcGxh eSB7CiAKIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkaXRoZXJpbmdfbW9kZTsKIAlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpkaXRoZXJpbmdfZGVwdGg7Ci0Jc3RydWN0IGRybV9wcm9wZXJ0eSAqdW5kZXJz Y2FuX3Byb3BlcnR5OwotCXN0cnVjdCBkcm1fcHJvcGVydHkgKnVuZGVyc2Nhbl9oYm9yZGVyX3By b3BlcnR5OwotCXN0cnVjdCBkcm1fcHJvcGVydHkgKnVuZGVyc2Nhbl92Ym9yZGVyX3Byb3BlcnR5 OwogCS8qIG5vdCByZWFsbHkgaHVlIGFuZCBzYXR1cmF0aW9uOiAqLwogCXN0cnVjdCBkcm1fcHJv cGVydHkgKnZpYnJhbnRfaHVlX3Byb3BlcnR5OwogCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbG9y X3ZpYnJhbmNlX3Byb3BlcnR5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnY1MF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwpp bmRleCA4YmQ3MzljZmQwMGQuLjdjN2RiZjNiZDNhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnY1MF9kaXNwbGF5LmMKQEAgLTIwNTcsMTEgKzIwNTcsMTEgQEAgbnY1MF9oZWFkX2F0b21pY19j aGVja192aWV3KHN0cnVjdCBudjUwX2hlYWRfYXRvbSAqYXJtaCwKIAkgKiByYXRpbyB0aGUgc2Ft ZSBhcyB0aGUgYmFja2VuZCBtb2RlIHVubGVzcyBvdmVycmlkZGVuIGJ5IHRoZQogCSAqIHVzZXIg c2V0dGluZyBib3RoIGhib3JkZXIgYW5kIHZib3JkZXIgcHJvcGVydGllcy4KIAkgKi8KLQlpZiAo KGFzeWMtPnNjYWxlci51bmRlcnNjYW4ubW9kZSA9PSBVTkRFUlNDQU5fT04gfHwKLQkgICAgKGFz eWMtPnNjYWxlci51bmRlcnNjYW4ubW9kZSA9PSBVTkRFUlNDQU5fQVVUTyAmJgorCWlmICgoYXN5 Yy0+c3RhdGUudW5kZXJzY2FuLm1vZGUgPT0gRFJNX1VOREVSU0NBTl9PTiB8fAorCSAgICAoYXN5 Yy0+c3RhdGUudW5kZXJzY2FuLm1vZGUgPT0gRFJNX1VOREVSU0NBTl9BVVRPICYmCiAJICAgICBk cm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihlZGlkKSkpKSB7Ci0JCXUzMiBiWCA9IGFzeWMtPnNjYWxl ci51bmRlcnNjYW4uaGJvcmRlcjsKLQkJdTMyIGJZID0gYXN5Yy0+c2NhbGVyLnVuZGVyc2Nhbi52 Ym9yZGVyOworCQl1MzIgYlggPSBhc3ljLT5zdGF0ZS51bmRlcnNjYW4uaGJvcmRlcjsKKwkJdTMy IGJZID0gYXN5Yy0+c3RhdGUudW5kZXJzY2FuLnZib3JkZXI7CiAJCXUzMiByID0gKGFzeWgtPnZp ZXcub0ggPDwgMTkpIC8gYXN5aC0+dmlldy5vVzsKIAogCQlpZiAoYlgpIHsKQEAgLTIxODUsOCAr MjE4NSw4IEBAIG52NTBfaGVhZF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLCBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogCXN0cnVjdCBudjUwX2hlYWQgKmhlYWQgPSBu djUwX2hlYWQoY3J0Yyk7CiAJc3RydWN0IG52NTBfaGVhZF9hdG9tICphcm1oID0gbnY1MF9oZWFk X2F0b20oY3J0Yy0+c3RhdGUpOwogCXN0cnVjdCBudjUwX2hlYWRfYXRvbSAqYXN5aCA9IG52NTBf aGVhZF9hdG9tKHN0YXRlKTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubnMsICpv bGRjb25uczsKIAlzdHJ1Y3Qgbm91dmVhdV9jb25uX2F0b20gKmFzeWMgPSBOVUxMOwotCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uczsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bjsKIAlpbnQgaTsKIApAQCAtMjE5OSw2ICsyMTk5LDEzIEBAIG52NTBfaGVhZF9hdG9taWNfY2hl Y2soc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQog CQkJfQogCQl9CiAKKwkJZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShhc3loLT5z dGF0ZS5zdGF0ZSwgY29ubiwKKwkJCQkJCSAgIG9sZGNvbm5zLCBjb25ucywgaSkgeworCQkJaWYg KG1lbWNtcCgmb2xkY29ubnMtPnVuZGVyc2NhbiwgJmNvbm5zLT51bmRlcnNjYW4sCisJCQkJICAg c2l6ZW9mKGNvbm5zLT51bmRlcnNjYW4pKSkKKwkJCQlhc3ljLT5zZXQuc2NhbGVyID0gdHJ1ZTsK KwkJfQorCiAJCWlmIChhcm1oLT5zdGF0ZS5hY3RpdmUpIHsKIAkJCWlmIChhc3ljKSB7CiAJCQkJ aWYgKGFzeWgtPnN0YXRlLm1vZGVfY2hhbmdlZCkKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91 dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg==