From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: [PATCH RFC 102/111] staging: etnaviv: separate GPU pipes from execution state Date: Thu, 2 Apr 2015 17:30:44 +0200 Message-ID: <1427988653-754-103-git-send-email-l.stach@pengutronix.de> References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id 31D5F6EA87 for ; Thu, 2 Apr 2015 08:31:02 -0700 (PDT) In-Reply-To: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Russell King , kernel@pengutronix.de List-Id: dri-devel@lists.freedesktop.org V2hpbGUgdGhpcyBpc24ndCB0aGUgY2FzZSBvbiBpLk1YNiBhIHNpbmdsZSBHUFUgcGlwZSBjYW4g aGF2ZQptdWx0aXBsZSByZW5kZXJpbmcgYmFja2VuZCBzdGF0ZXMsIHdoaWNoIGNhbiBiZSBzZWxl Y3RlZCBieSB0aGUKcGlwZSBzd2l0Y2ggY29tbWFuZCwgc28gdGhlcmUgaXMgbm8gc3RyaWN0IG1h cHBpbmcgYmV0d2VlbiB0aGUKdXNlciAicGlwZXMiIGFuZCB0aGUgUElQRV8yRC9QSVBFXzNEIGV4 ZWN1dGlvbiBzdGF0ZXMuCgpXZSBuZWVkIHRvIHJlc3BlY3QgdGhpcyBpbiB0aGUgcHVibGljIHVz ZXJzcGFjZSBBUEkuIFRoZSBleHBvcnRlZApwaXBlcyBhcmUgdGhlIEdDIGNvcmVzIHdoaWNoIG1h eSBiZSBhYmxlIHRvIHN1cHBvcnQgb25lIG9yIG1vcmUKZXhlY3V0aW9uIHN0YXRlcy4gVGhlIGlu Zm9ybWF0aW9uIHdoaWNoIGV4ZWN1dGlvbiBzdGF0ZXMgYXJlIHN1cHBvcnRlZApvbiBhIGdpdmVu IHBpcGUgaXMgYXZhaWxhYmxlIHRvIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBmZWF0dXJlczAgcGFy YW0uCgpVc2Vyc3BhY2UgaXMgcmVzcG9uc2libGUgdG8gY2hvb3NlIGEgbWF0Y2hpbmcgcGlwZSB3 aGVuIGRlY2lkaW5nIHdoaWNoCnBpcGUgdG8gdXNlIGZvciBhIHNwZWNpZmljIHRhc2suCgpUaGUg c3VibWl0IGlvY3RsIG5vdyB0YWtlcyBvbmUgbW9yZSBwYXJhbWV0ZXIgZm9yIHVzZXJzcGFjZSB0 byBzcGVjaWZ5CndoaWNoIGV4ZWN1dGlvbiBzdGF0ZSBpdCBleHBlY3RzIGEgcGlwZSB0byBiZSBp biB3aGVuIHN0YXJ0aW5nIGV4ZWN1dGlvbgpvZiB0aGUgY29tbWFuZCBidWZmZXJzLiBUaGlzIGFs bG93cyB0aGUga2VybmVsIHRvIGluc2VydCBwaXBlIHN3aXRjaApjb21tYW5kcyBvbmx5IHdoZW4g cmVhbGx5IG5lZWRlZCB3aGlsZSBtYWludGFpbmluZyBzZXBhcmF0aW9uIGJldHdlZW4KcHJvY2Vz c2VzIGJ5IG1ha2luZyBzdXJlIHRoYXQgbm8gcHJvY2VzcyBjYW4gbGVhdmUgdGhlIHBpcGUgYmVo aW5kIGluCmFuIHVuZXhwZWN0ZWQgc3RhdGUsIHBvdGVudGlhbGx5IGhhbmdpbmcgdGhlIG5leHQg b25lIHRvIHVzZSB0aGUgR1BVLgoKU2lnbmVkLW9mZi1ieTogTHVjYXMgU3RhY2ggPGwuc3RhY2hA cGVuZ3V0cm9uaXguZGU+Ci0tLQogZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9idWZm ZXIuYyAgICAgfCA1NyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL3N0YWdp bmcvZXRuYXZpdi9ldG5hdml2X2Rydi5jICAgICAgICB8ICAxICsKIGRyaXZlcnMvc3RhZ2luZy9l dG5hdml2L2V0bmF2aXZfZHJ2LmggICAgICAgIHwgIDEgKwogZHJpdmVycy9zdGFnaW5nL2V0bmF2 aXYvZXRuYXZpdl9nZW0uaCAgICAgICAgfCAgMSArCiBkcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9l dG5hdml2X2dlbV9zdWJtaXQuYyB8ICAxICsKIGRyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2 aXZfZ3B1LmMgICAgICAgIHwgNDggKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvc3Rh Z2luZy9ldG5hdml2L2V0bmF2aXZfZ3B1LmggICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvdWFwaS9k cm0vZXRuYXZpdl9kcm0uaCAgICAgICAgICAgICAgIHwgMTkgKysrKystLS0tLQogOCBmaWxlcyBj aGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2J1ZmZlci5jIGIvZHJpdmVycy9zdGFnaW5n L2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwppbmRleCAwNWUwZGEyOGNjOTcuLjdjODAxNGYwNzI0 OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwor KysgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2J1ZmZlci5jCkBAIC0xNTQsOCAr MTU0LDYgQEAgdTMyIGV0bmF2aXZfYnVmZmVyX2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUp CiAJLyogaW5pdGlhbGl6ZSBidWZmZXIgKi8KIAlidWZmZXItPm9mZnNldCA9IDA7CiAKLQlldG5h dml2X2NtZF9zZWxlY3RfcGlwZShidWZmZXIsIGdwdS0+cGlwZSk7Ci0KIAlDTURfV0FJVChidWZm ZXIpOwogCUNNRF9MSU5LKGJ1ZmZlciwgMiwgZ3B1X3ZhKGdwdSwgYnVmZmVyKSArICgoYnVmZmVy LT5vZmZzZXQgLSAxKSAqIDQpKTsKIApAQCAtMTc5LDIxICsxNzcsMjkgQEAgdm9pZCBldG5hdml2 X2J1ZmZlcl9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50 LAogCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmJ1ZmZlciA9IHRvX2V0bmF2aXZfYm8oZ3B1 LT5idWZmZXIpOwogCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmNtZDsKIAl1MzIgKmx3ID0g YnVmZmVyLT52YWRkciArICgoYnVmZmVyLT5vZmZzZXQgLSA0KSAqIDQpOwotCXUzMiBiYWNrLCBs aW5rX3RhcmdldCwgbGlua19zaXplLCByZXNlcnZlX3NpemU7CisJdTMyIGJhY2ssIGxpbmtfdGFy Z2V0LCBsaW5rX3NpemUsIHJlc2VydmVfc2l6ZSwgZXh0cmFfc2l6ZSA9IDA7CiAJdTMyIGk7CiAK IAlpZiAoZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikKIAkJZXRuYXZpdl9idWZmZXJfZHVtcChn cHUsIGJ1ZmZlciwgMCwgMHg1MCk7CiAKLQlyZXNlcnZlX3NpemUgPSA2OwotCiAJLyoKIAkgKiBJ ZiB3ZSBuZWVkIHRvIGZsdXNoIHRoZSBNTVUgcHJpb3IgdG8gc3VibWl0dGluZyB0aGlzIGJ1ZmZl ciwgd2UKIAkgKiB3aWxsIG5lZWQgdG8gYXBwZW5kIGEgbW11IGZsdXNoIGxvYWQgc3RhdGUsIGZv bGxvd2VkIGJ5IGEgbmV3CiAJICogbGluayB0byB0aGlzIGJ1ZmZlciAtIGEgdG90YWwgb2YgZm91 ciBhZGRpdGlvbmFsIHdvcmRzLgogCSAqLwotCWlmIChncHUtPm1tdS0+bmVlZF9mbHVzaCkKLQkJ cmVzZXJ2ZV9zaXplICs9IDQ7CisJaWYgKGdwdS0+bW11LT5uZWVkX2ZsdXNoIHx8IGdwdS0+c3dp dGNoX2NvbnRleHQpIHsKKwkJLyogbGluayBjb21tYW5kICovCisJCWV4dHJhX3NpemUgKz0gMjsK KwkJLyogZmx1c2ggY29tbWFuZCAqLworCQlpZiAoZ3B1LT5tbXUtPm5lZWRfZmx1c2gpCisJCQll eHRyYV9zaXplICs9IDI7CisJCS8qIHBpcGUgc3dpdGNoIGNvbW1hbmRzICovCisJCWlmIChncHUt PnN3aXRjaF9jb250ZXh0KQorCQkJZXh0cmFfc2l6ZSArPSA4OworCX0KKworCXJlc2VydmVfc2l6 ZSA9IDYgKyBleHRyYV9zaXplOwogCiAJLyoKIAkgKiBpZiB3ZSBhcmUgZ29pbmcgdG8gY29tcGxl dGVseSBvdmVyZmxvdyB0aGUgYnVmZmVyLCB3ZSBuZWVkIHRvIHdyYXAuCkBAIC0yMDcsMTAgKzIx Myw4IEBAIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUs IHVuc2lnbmVkIGludCBldmVudCwKIAlsaW5rX3RhcmdldCA9IGdwdV92YShncHUsIGJ1ZmZlcikg KyBidWZmZXItPm9mZnNldCAqIDQ7CiAJbGlua19zaXplID0gNjsKIAotCWlmIChncHUtPm1tdS0+ bmVlZF9mbHVzaCkgewotCQkvKiBTa2lwIG92ZXIgdGhlIE1NVSBmbHVzaCBhbmQgTElOSyBpbnN0 cnVjdGlvbnMgKi8KLQkJbGlua190YXJnZXQgKz0gNCAqIHNpemVvZih1aW50MzJfdCk7Ci0JfQor CS8qIFNraXAgb3ZlciBhbnkgZXh0cmEgaW5zdHJ1Y3Rpb25zICovCisJbGlua190YXJnZXQgKz0g ZXh0cmFfc2l6ZSAqIHNpemVvZih1aW50MzJfdCk7CiAKIAkvKiB1cGRhdGUgb2Zmc2V0IGZvciBl dmVyeSBjbWQgc3RyZWFtICovCiAJZm9yIChpID0gc3VibWl0LT5ucl9jbWRzOyBpLS07ICkgewpA QCAtMjQ5LDI2ICsyNTMsMzMgQEAgdm9pZCBldG5hdml2X2J1ZmZlcl9xdWV1ZShzdHJ1Y3QgZXRu YXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50LAogCQlwcl9pbmZvKCJldmVudDogJWRc biIsIGV2ZW50KTsKIAl9CiAKLQlpZiAoZ3B1LT5tbXUtPm5lZWRfZmx1c2gpIHsKKwlpZiAoZ3B1 LT5tbXUtPm5lZWRfZmx1c2ggfHwgZ3B1LT5zd2l0Y2hfY29udGV4dCkgewogCQl1aW50MzJfdCBu ZXdfdGFyZ2V0ID0gZ3B1X3ZhKGdwdSwgYnVmZmVyKSArIGJ1ZmZlci0+b2Zmc2V0ICoKIAkJCQkJ c2l6ZW9mKHVpbnQzMl90KTsKIAotCQkvKiBBZGQgdGhlIE1NVSBmbHVzaCAqLwotCQlDTURfTE9B RF9TVEFURShidWZmZXIsIFZJVlNfR0xfRkxVU0hfTU1VLAotCQkJICAgICAgIFZJVlNfR0xfRkxV U0hfTU1VX0ZMVVNIX0ZFTU1VIHwKLQkJCSAgICAgICBWSVZTX0dMX0ZMVVNIX01NVV9GTFVTSF9V TksxIHwKLQkJCSAgICAgICBWSVZTX0dMX0ZMVVNIX01NVV9GTFVTSF9VTksyIHwKLQkJCSAgICAg ICBWSVZTX0dMX0ZMVVNIX01NVV9GTFVTSF9QRU1NVSB8Ci0JCQkgICAgICAgVklWU19HTF9GTFVT SF9NTVVfRkxVU0hfVU5LNCk7CisJCWlmIChncHUtPm1tdS0+bmVlZF9mbHVzaCkgeworCQkJLyog QWRkIHRoZSBNTVUgZmx1c2ggKi8KKwkJCUNNRF9MT0FEX1NUQVRFKGJ1ZmZlciwgVklWU19HTF9G TFVTSF9NTVUsCisJCQkJICAgICAgIFZJVlNfR0xfRkxVU0hfTU1VX0ZMVVNIX0ZFTU1VIHwKKwkJ CQkgICAgICAgVklWU19HTF9GTFVTSF9NTVVfRkxVU0hfVU5LMSB8CisJCQkJICAgICAgIFZJVlNf R0xfRkxVU0hfTU1VX0ZMVVNIX1VOSzIgfAorCQkJCSAgICAgICBWSVZTX0dMX0ZMVVNIX01NVV9G TFVTSF9QRU1NVSB8CisJCQkJICAgICAgIFZJVlNfR0xfRkxVU0hfTU1VX0ZMVVNIX1VOSzQpOwor CisJCQlncHUtPm1tdS0+bmVlZF9mbHVzaCA9IGZhbHNlOworCQl9CisKKwkJaWYgKGdwdS0+c3dp dGNoX2NvbnRleHQpIHsKKwkJCWV0bmF2aXZfY21kX3NlbGVjdF9waXBlKGJ1ZmZlciwgc3VibWl0 LT5leGVjX3N0YXRlKTsKKwkJCWdwdS0+c3dpdGNoX2NvbnRleHQgPSBmYWxzZTsKKwkJfQogCiAJ CS8qIEFuZCB0aGUgbGluayB0byB0aGUgZmlyc3QgYnVmZmVyICovCiAJCUNNRF9MSU5LKGJ1ZmZl ciwgbGlua19zaXplLCBsaW5rX3RhcmdldCk7CiAKLQkJLyogVXBkYXRlIHRoZSBsaW5rIHRhcmdl dCB0byBwb2ludCB0byB0aGUgZmx1c2ggKi8KKwkJLyogVXBkYXRlIHRoZSBsaW5rIHRhcmdldCB0 byBwb2ludCB0byBhYm92ZSBpbnN0cnVjdGlvbnMgKi8KIAkJbGlua190YXJnZXQgPSBuZXdfdGFy Z2V0OwotCQlsaW5rX3NpemUgPSA0OwotCi0JCWdwdS0+bW11LT5uZWVkX2ZsdXNoID0gZmFsc2U7 CisJCWxpbmtfc2l6ZSA9IGV4dHJhX3NpemU7CiAJfQogCiAJLyogU2F2ZSB0aGUgZXZlbnQgYW5k IGJ1ZmZlciBwb3NpdGlvbiBvZiB0aGUgbmV3IGV2ZW50IHRyaWdnZXIgKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZHJ2LmMgYi9kcml2ZXJzL3N0YWdpbmcv ZXRuYXZpdi9ldG5hdml2X2Rydi5jCmluZGV4IGVhZGU2MDEwY2U0Mi4uODI4ZWQ4Y2UzNDdmIDEw MDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2Rydi5jCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZHJ2LmMKQEAgLTEzNCw2ICsxMzQsNyBAQCBz dGF0aWMgaW50IGV0bmF2aXZfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBs b25nIGZsYWdzKQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPmZlbmNlX2V2ZW50KTsKIAog CUlOSVRfTElTVF9IRUFEKCZwcml2LT5pbmFjdGl2ZV9saXN0KTsKKwlwcml2LT5udW1fZ3B1cyA9 IDA7CiAKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkZXYpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2Rydi5oIGIvZHJpdmVycy9zdGFnaW5nL2V0 bmF2aXYvZXRuYXZpdl9kcnYuaAppbmRleCBjZjdlNmY3NThkZDcuLjRkZmNkMDNjODBlZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9kcnYuaAorKysgYi9kcml2 ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2Rydi5oCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVj dCBldG5hdml2X2ZpbGVfcHJpdmF0ZSB7CiB9OwogCiBzdHJ1Y3QgZXRuYXZpdl9kcm1fcHJpdmF0 ZSB7CisJaW50IG51bV9ncHVzOwogCXN0cnVjdCBldG5hdml2X2dwdSAqZ3B1W0VUTkFfTUFYX1BJ UEVTXTsKIAlzdHJ1Y3QgZXRuYXZpdl9maWxlX3ByaXZhdGUgKmxhc3RjdHg7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmggYi9kcml2ZXJzL3N0YWdp bmcvZXRuYXZpdi9ldG5hdml2X2dlbS5oCmluZGV4IGIwZTVlOTY4OTEyYS4uNmUwODIyNjc0Yzhl IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dlbS5oCisrKyBi L2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmgKQEAgLTEwOCw2ICsxMDgsNyBA QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfYWN0aXZlKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3Qg KmV0bmF2aXZfb2JqKQogc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdTsKKwl1aW50MzJfdCBleGVjX3N0 YXRlOwogCXN0cnVjdCBsaXN0X2hlYWQgYm9fbGlzdDsKIAlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHgg dGlja2V0OwogCXVpbnQzMl90IGZlbmNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2V0 bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5h dml2X2dlbV9zdWJtaXQuYwppbmRleCA5NjUwOTZiZTUyMTkuLjkwNjFmNWY3ZWNjNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMKKysrIGIv ZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMKQEAgLTMyOCw2ICsz MjgsNyBAQCBpbnQgZXRuYXZpdl9pb2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwogCX0KKwlzdWJt aXQtPmV4ZWNfc3RhdGUgPSBhcmdzLT5leGVjX3N0YXRlOwogCiAJcmV0ID0gc3VibWl0X2xvb2t1 cF9vYmplY3RzKHN1Ym1pdCwgYXJncywgZmlsZSk7CiAJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ3B1LmMgYi9kcml2ZXJzL3N0YWdpbmcvZXRu YXZpdi9ldG5hdml2X2dwdS5jCmluZGV4IGRmMzkzYjllY2JmOC4uYWJhZGZlY2I0NDdkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dwdS5jCisrKyBiL2RyaXZl cnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ3B1LmMKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNs dWRlICJjbWRzdHJlYW0ueG1sLmgiCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlX2lkIGdwdV9pZHNbXSA9IHsKLQl7IC5uYW1lID0gImV0bmF2aXYtZ3B1LDJkIiwgLmRyaXZl cl9kYXRhID0gRVROQV9QSVBFXzJELCB9LAorCXsgLm5hbWUgPSAiZXRuYXZpdi1ncHUsMmQiIH0s CiAJeyB9LAogfTsKIApAQCAtODc4LDggKzg3OCwxMCBAQCBpbnQgZXRuYXZpdl9ncHVfc3VibWl0 KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAogCiAJZ3B1LT5zdWJtaXR0ZWRfZmVuY2UgPSBzdWJt aXQtPmZlbmNlOwogCi0JaWYgKHByaXYtPmxhc3RjdHggIT0gY3R4KQorCWlmIChwcml2LT5sYXN0 Y3R4ICE9IGN0eCkgewogCQlncHUtPm1tdS0+bmVlZF9mbHVzaCA9IHRydWU7CisJCWdwdS0+c3dp dGNoX2NvbnRleHQgPSB0cnVlOworCX0KIAogCWV0bmF2aXZfYnVmZmVyX3F1ZXVlKGdwdSwgZXZl bnQsIHN1Ym1pdCk7CiAKQEAgLTEwNDEsMjEgKzEwNDMsOCBAQCBzdGF0aWMgaW50IGV0bmF2aXZf Z3B1X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRybSA9IGRhdGE7CiAJc3RydWN0IGV0bmF2aXZfZHJtX3ByaXZhdGUg KnByaXYgPSBkcm0tPmRldl9wcml2YXRlOwogCXN0cnVjdCBldG5hdml2X2dwdSAqZ3B1ID0gZGV2 X2dldF9kcnZkYXRhKGRldik7Ci0JaW50IGlkeCA9IGdwdS0+cGlwZTsKIAlpbnQgcmV0OwogCi0J ZGV2X2luZm8oZGV2LCAicHJlIGdwdVtpZHhdOiAlcFxuIiwgcHJpdi0+Z3B1W2lkeF0pOwotCi0J aWYgKHByaXYtPmdwdVtpZHhdID09IE5VTEwpIHsKLQkJZGV2X2luZm8oZGV2LCAiYWRkaW5nIGNv cmUgQGlkeCAlZFxuIiwgaWR4KTsKLQkJcHJpdi0+Z3B1W2lkeF0gPSBncHU7Ci0JfSBlbHNlIHsK LQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gYWRkIGNvcmUgQGlkeCAlZFxuIiwgaWR4KTsKLQkJ Z290byBmYWlsOwotCX0KLQotCWRldl9pbmZvKGRldiwgInBvc3QgZ3B1W2lkeF06ICVwXG4iLCBw cml2LT5ncHVbaWR4XSk7Ci0KICNpZmRlZiBDT05GSUdfUE0KIAlyZXQgPSBwbV9ydW50aW1lX2dl dF9zeW5jKGdwdS0+ZGV2KTsKICNlbHNlCkBAIC0xMDczLDEyICsxMDYyLDEyIEBAIHN0YXRpYyBp bnQgZXRuYXZpdl9ncHVfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1h c3RlciwKIAlzZXR1cF90aW1lcigmZ3B1LT5oYW5nY2hlY2tfdGltZXIsIGhhbmdjaGVja19oYW5k bGVyLAogCQkJKHVuc2lnbmVkIGxvbmcpZ3B1KTsKIAorCXByaXYtPmdwdVtwcml2LT5udW1fZ3B1 cysrXSA9IGdwdTsKKwogCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZ3B1LT5kZXYpOwogCXBt X3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGdwdS0+ZGV2KTsKIAogCXJldHVybiAwOwotZmFpbDoK LQlyZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyB2b2lkIGV0bmF2aXZfZ3B1X3VuYmluZChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKQEAgLTExMTksMjMgKzExMDgsMTMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIGdwdV9vcHMgPSB7CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGV0bmF2aXZfZ3B1X21hdGNoW10gPSB7CiAJewot CQkuY29tcGF0aWJsZSA9ICJ2aXZhbnRlLHZpdmFudGUtZ3B1LTJkIiwKLQkJLmRhdGEgPSAodm9p ZCAqKUVUTkFfUElQRV8yRAorCQkuY29tcGF0aWJsZSA9ICJ2aXZhbnRlLGdjIgogCX0sCi0Jewot CQkuY29tcGF0aWJsZSA9ICJ2aXZhbnRlLHZpdmFudGUtZ3B1LTNkIiwKLQkJLmRhdGEgPSAodm9p ZCAqKUVUTkFfUElQRV8zRAotCX0sCi0JewotCQkuY29tcGF0aWJsZSA9ICJ2aXZhbnRlLHZpdmFu dGUtZ3B1LXZnIiwKLQkJLmRhdGEgPSAodm9pZCAqKUVUTkFfUElQRV9WRwotCX0sCi0JeyB9CisJ eyAvKiBzZW50aW5lbCAqLyB9CiB9OwogCiBzdGF0aWMgaW50IGV0bmF2aXZfZ3B1X3BsYXRmb3Jt X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0JY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCAqbWF0Y2g7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAlz dHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdTsKIAlpbnQgZXJyID0gMDsKQEAgLTExNDQsMTcgKzExMjMs NiBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZ3B1X3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFncHUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKHBk ZXYtPmRldi5vZl9ub2RlKSB7Ci0JCW1hdGNoID0gb2ZfbWF0Y2hfZGV2aWNlKGV0bmF2aXZfZ3B1 X21hdGNoLCAmcGRldi0+ZGV2KTsKLQkJaWYgKCFtYXRjaCkKLQkJCXJldHVybiAtRUlOVkFMOwot CQlncHUtPnBpcGUgPSAoaW50KW1hdGNoLT5kYXRhOwotCX0gZWxzZSBpZiAocGRldi0+aWRfZW50 cnkpIHsKLQkJZ3B1LT5waXBlID0gcGRldi0+aWRfZW50cnktPmRyaXZlcl9kYXRhOwotCX0gZWxz ZSB7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWdwdS0+ZGV2ID0gJnBkZXYtPmRldjsKIAog CS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dwdS5oIGIv ZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9ncHUuaAppbmRleCA5ZmVhYjA3ZGE0NTcu Ljk0NjVmN2Y1NmNkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZp dl9ncHUuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dwdS5oCkBAIC04 OCw4ICs4OCw4IEBAIHN0cnVjdCBldG5hdml2X2dwdSB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRy bTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJc3RydWN0IGV0bmF2aXZfY2hpcF9pZGVudGl0eSBp ZGVudGl0eTsKLQlpbnQgcGlwZTsKIAlib29sIGluaXRpYWxpemVkOworCWJvb2wgc3dpdGNoX2Nv bnRleHQ7CiAKIAkvKiAncmluZyctYnVmZmVyOiAqLwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAq YnVmZmVyOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oIGIvaW5j bHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oCmluZGV4IDUyYzY5ODlhZDkzZi4uZGZkNTFmY2Q1 NmQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2V0bmF2aXZfZHJtLmgKKysrIGIvaW5j bHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oCkBAIC0zNCwxMiArMzQsNiBAQAogICogICAgIGZp ZWxkcy4uIHNvIHRoYXQgaGFzIHRvIGJlIHNvbWVob3cgb2suCiAgKi8KIAotI2RlZmluZSBFVE5B X1BJUEVfM0QgICAgICAweDAwCi0jZGVmaW5lIEVUTkFfUElQRV8yRCAgICAgIDB4MDEKLSNkZWZp bmUgRVROQV9QSVBFX1ZHICAgICAgMHgwMgotCi0jZGVmaW5lIEVUTkFfTUFYX1BJUEVTICAgIDMK LQogLyogdGltZW91dHMgYXJlIHNwZWNpZmllZCBpbiBjbG9jay1tb25vdG9uaWMgYWJzb2x1dGUg dGltZXMgKHRvIHNpbXBsaWZ5CiAgKiByZXN0YXJ0aW5nIGludGVycnVwdGVkIGlvY3RscykuICBU aGUgZm9sbG93aW5nIHN0cnVjdCBpcyBsb2dpY2FsbHkgdGhlCiAgKiBzYW1lIGFzICdzdHJ1Y3Qg dGltZXNwZWMnIGJ1dCAzMi82NGIgQUJJIHNhZmUuCkBAIC03MCw4ICs2NCwxMCBAQCBzdHJ1Y3Qg ZHJtX2V0bmF2aXZfdGltZXNwZWMgewogCiAvKiAjZGVmaW5lIE1TTV9QQVJBTV9HTUVNX1NJWkUg IDB4MDIgKi8KIAorI2RlZmluZSBFVE5BX01BWF9QSVBFUyA0CisKIHN0cnVjdCBkcm1fZXRuYXZp dl9wYXJhbSB7Ci0JdWludDMyX3QgcGlwZTsgICAgICAgICAgIC8qIGluLCBFVE5BX1BJUEVfeCAq LworCXVpbnQzMl90IHBpcGU7ICAgICAgICAgICAvKiBpbiAqLwogCXVpbnQzMl90IHBhcmFtOyAg ICAgICAgICAvKiBpbiwgRVROQVZJVl9QQVJBTV94ICovCiAJdWludDY0X3QgdmFsdWU7ICAgICAg ICAgIC8qIG91dCAoZ2V0X3BhcmFtKSBvciBpbiAoc2V0X3BhcmFtKSAqLwogfTsKQEAgLTE4Miwx MSArMTc4LDE2IEBAIHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0X2JvIHsKICAqIG9uZSBv ciBtb3JlIGNtZHN0cmVhbSBidWZmZXJzLiAgVGhpcyBhbGxvd3MgZm9yIGNvbmRpdGlvbmFsIGV4 ZWN1dGlvbgogICogKGNvbnRleHQtcmVzdG9yZSksIGFuZCBJQiBidWZmZXJzIG5lZWRlZCBmb3Ig cGVyIHRpbGUvYmluIGRyYXcgY21kcy4KICAqLworI2RlZmluZSBFVE5BX1BJUEVfM0QgICAgICAw eDAwCisjZGVmaW5lIEVUTkFfUElQRV8yRCAgICAgIDB4MDEKKyNkZWZpbmUgRVROQV9QSVBFX1ZH ICAgICAgMHgwMgogc3RydWN0IGRybV9ldG5hdml2X2dlbV9zdWJtaXQgewotCXVpbnQzMl90IHBp cGU7ICAgICAgICAgICAvKiBpbiwgRVROQV9QSVBFX3ggKi8KKwl1aW50MzJfdCBwaXBlOyAgICAg ICAgICAgLyogaW4gKi8KKwl1aW50MzJfdCBleGVjX3N0YXRlOyAgICAgLyogaW4sIGluaXRpYWwg ZXhlY3V0aW9uIHN0YXRlIChFVE5BX1BJUEVfeCkgKi8KIAl1aW50MzJfdCBmZW5jZTsgICAgICAg ICAgLyogb3V0ICovCiAJdWludDMyX3QgbnJfYm9zOyAgICAgICAgIC8qIGluLCBudW1iZXIgb2Yg c3VibWl0X2JvJ3MgKi8KIAl1aW50MzJfdCBucl9jbWRzOyAgICAgICAgLyogaW4sIG51bWJlciBv ZiBzdWJtaXRfY21kJ3MgKi8KKwl1aW50MzJfdCBwYWQ7CiAJdWludDY0X3QgYm9zOyAgICAgICAg ICAgIC8qIGluLCBwdHIgdG8gYXJyYXkgb2Ygc3VibWl0X2JvJ3MgKi8KIAl1aW50NjRfdCBjbWRz OyAgICAgICAgICAgLyogaW4sIHB0ciB0byBhcnJheSBvZiBzdWJtaXRfY21kJ3MgKi8KIH07CkBA IC0xOTksNyArMjAwLDcgQEAgc3RydWN0IGRybV9ldG5hdml2X2dlbV9zdWJtaXQgewogICogQVBJ cyB3aXRob3V0IHJlcXVpcmluZyBhIGR1bW15IGJvIHRvIHN5bmNocm9uaXplIG9uLgogICovCiBz dHJ1Y3QgZHJtX2V0bmF2aXZfd2FpdF9mZW5jZSB7Ci0JdWludDMyX3QgcGlwZTsgICAgICAgICAg IC8qIGluLCBFVE5BX1BJUEVfeCAqLworCXVpbnQzMl90IHBpcGU7ICAgICAgICAgICAvKiBpbiAq LwogCXVpbnQzMl90IGZlbmNlOyAgICAgICAgICAvKiBpbiAqLwogCXN0cnVjdCBkcm1fZXRuYXZp dl90aW1lc3BlYyB0aW1lb3V0OyAgIC8qIGluICovCiB9OwotLSAKMi4xLjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==