From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH] drm: Funnel drm logs to tracepoints Date: Thu, 10 Oct 2019 16:48:08 -0400 Message-ID: <20191010204823.195540-1-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw1-xc43.google.com (mail-yw1-xc43.google.com [IPv6:2607:f8b0:4864:20::c43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9215289C84 for ; Thu, 10 Oct 2019 20:48:25 +0000 (UTC) Received: by mail-yw1-xc43.google.com with SMTP id r134so2689378ywg.2 for ; Thu, 10 Oct 2019 13:48:25 -0700 (PDT) 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: David Airlie , Sean Paul , Sean Paul , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgoqUmVjb3JkIHNjcmF0Y2gq IFlvdSByZWFkIHRoYXQgc3ViamVjdCBjb3JyZWN0bHksIEkgYmV0IHlvdSdyZSB3b25kZXJpbmcK aG93IHdlIGdvdCBoZXJlLiBBdCBsZWFzdCBoZWFyIG1lIG91dCBiZWZvcmUgeW91IGZsYW1lIDot KQoKRm9yIGEgbG9uZyB3aGlsZSBub3csIHdlIChDaHJvbWVPUykgaGF2ZSBiZWVuIHN0cnVnZ2xp bmcgZ2V0dGluZyBhbnkKdmFsdWUgb3V0IG9mIHVzZXIgZmVlZGJhY2sgcmVwb3J0cyBvZiBkaXNw bGF5IGZhaWx1cmVzIChub3RhYmx5IGV4dGVybmFsCmRpc3BsYXlzIG5vdCB3b3JraW5nKS4gVGhl IHByb2JsZW0gaXMgdGhhdCBhbGwgbG9nZ2luZywgZXZlbiBmYXRhbAplcnJvcnMgKHdlbGwsIGZh dGFsIGluIHRoZSBzZW5zZSB0aGF0IGEgZGlzcGxheSB3b24ndCBsaWdodCB1cCkgYXJlCmxvZ2dl ZCBhdCBERUJVRyBsb2cgbGV2ZWwuIFNvIGluIG9yZGVyIHRvIGV4dHJhY3QgdGhlc2UgbG9ncywg eW91IG5lZWQKdG8gYmUgYWJsZSB0byB0dXJuIG9uIGxvZ2dpbmcsIGFuZCByZXByb2R1Y2UgdGhl IGlzc3VlIHdpdGggZGVidWcKZW5hYmxlZC4gVW5mb3J0dW5hdGVseSwgdGhpcyBpc24ndCByZWFs bHkgc29tZXRoaW5nIHdlIGNhbiBhc2sgQ3JPUyB1c2VycwpJIHNwb2tlIHdpdGggYWlybGllZCBh Ym91dCB0aGlzIGFuZCBSSEVMIGhhcyBzaW1pbGFyIGlzc3Vlcy4KClRoaXMgaXMgdGhlIHBvaW50 IHdoZXJlIHlvdSBhc2sgbWUsICJTbyBTZWFuLCB3aHkgZG9uJ3QgeW91IGp1c3QgZW5hYmxlCkRS TV9VVF9CTEFIPyIuIEdvb2QgcXVlc3Rpb24hIEhlcmUgYXJlIHRoZSByZWFzb25zIGluIGFzY2Vu ZGluZyBvcmRlciBvZgpzZXZlcml0eToKIDEtIFBlb3BsZSBhcmVuJ3QgY29uc2lzdGVudCB3aXRo IHRoZWlyIGNhdGVnb3JpZXMsIHNvIHdlJ2QgaGF2ZSB0bwogICAgZW5hYmxlIGEgYnVuY2ggdG8g Z2V0IHByb3BlciBjb3ZlcmFnZQogMi0gV2UgZG9uJ3Qgd2FudCB0byBvdmVyd2hlbG0gc3lzbG9n IHdpdGggZHJtIHNwYW0sIG90aGVycyBoYXZlIHRvIHVzZQogICAgaXQgdG9vCiAzLSBDb25zb2xl IGxvZ2dpbmcgaXMgc2xvdwoKSG9wZWZ1bGx5IHlvdSdyZSB3aXRoIG1lIHNvIGZhci4gSSBoYXZl IGEgcHJvYmxlbSB0aGF0IGhhcyBubyBleGlzdGluZwpzb2x1dGlvbi4gV2hhdCBJIHJlYWxseSB3 YW50IGlzIGEgcmluZ2J1ZmZlciBvZiB0aGUgbW9zdCByZWNlbnQgbG9ncwooaW4gdGhlIGNhdGVn b3JpZXMgSSdtIGludGVyZXN0ZWQgaW4pIGV4cG9zZWQgdmlhIGRlYnVnZnMgc28gSSBjYW4KZXh0 cmFjdCBpdCB3aGVuIHVzZXJzIGZpbGUgZmVlZGJhY2suCgpJdCBqdXN0IHNvIGhhcHBlbnMgdGhh dCB0aGVyZSBpcyBzb21ldGhpbmcgd2hpY2ggZG9lcyBfZXhhY3RseV8gdGhpcyEgSQpjYW4gZHVt cCB0aGUgbW9zdCByZWNlbnQgbG9ncyBpbnRvIHRyYWNlcG9pbnRzLCB0dXJuIHRoZW0gb24gYW5k IG9mZgpkZXBlbmRpbmcgb24gd2hpY2ggY2F0ZWdvcnkgSSB3YW50LCBhbmQgcHVsbCB0aGVtIGZy b20gZGVidWdmcyBvbiBkZW1hbmQuCgoiV2hhdCBhYm91dCB0cmFjZV9wcmludGsoKT8iIFlvdSds bCBzYXkuIEl0IGRvZXNuJ3QgZ2l2ZSB1cyB0aGUgY29udHJvbCB3ZQpnZXQgZnJvbSB1c2luZyB0 cmFjZXBvaW50cyBhbmQgaXQncyBub3QgbWVhbnQgdG8gYmUgbGVmdCBzcHJpbmtsZWQgYXJvdW5k CmluIGNvZGUuCgpTbyB0aGF0IGlzIGhvdyB3ZSBnb3QgaGVyZSwgbm93IGl0J3MgdGltZSBmb3Ig eW91IHRvIHRlbGwgbWUgd2h5IHRoaXMgaXMKYSBob3JyaWJsZSBpZGVhIDotKQoKQ2M6IERhdmlk IEFpcmxpZSA8YWlybGllZEBnbWFpbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVt Lm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW50LmMgICAgICB8IDE0MyArKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tCiBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kcm1fcHJpbnQu aCB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIzOSBp bnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl L3RyYWNlL2V2ZW50cy9kcm1fcHJpbnQuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJpbnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbnQuYwppbmRleCA5YTI1ZDczYzE1 NWMuLmY1OTEyOTI4MTFhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmludC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbnQuYwpAQCAtMjcsMTEgKzI3LDE1IEBACiAK ICNpbmNsdWRlIDxzdGRhcmcuaD4KIAorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1 ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRl IDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIAorI2RlZmluZSBD UkVBVEVfVFJBQ0VfUE9JTlRTCisjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RybV9wcmludC5oPgor CiAjaW5jbHVkZSA8ZHJtL2RybS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5jbHVk ZSA8ZHJtL2RybV9wcmludC5oPgpAQCAtMjQxLDEwICsyNDUsMTAgQEAgdm9pZCBkcm1fZGV2X3By aW50ayhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmxldmVsLAogCXN0cnVj dCB2YV9mb3JtYXQgdmFmOwogCXZhX2xpc3QgYXJnczsKIAotCXZhX3N0YXJ0KGFyZ3MsIGZvcm1h dCk7CiAJdmFmLmZtdCA9IGZvcm1hdDsKIAl2YWYudmEgPSAmYXJnczsKIAorCXZhX3N0YXJ0KGFy Z3MsIGZvcm1hdCk7CiAJaWYgKGRldikKIAkJZGV2X3ByaW50ayhsZXZlbCwgZGV2LCAiWyIgRFJN X05BTUUgIjolcHNdICVwViIsCiAJCQkgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2 YWYpOwpAQCAtMjUzLDQ5ICsyNTcsMTQ1IEBAIHZvaWQgZHJtX2Rldl9wcmludGsoY29uc3Qgc3Ry dWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpsZXZlbCwKIAkJICAgICAgIGxldmVsLCBfX2J1 aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOwogCiAJdmFfZW5kKGFyZ3MpOworCisJdmFf c3RhcnQoYXJncywgZm9ybWF0KTsKKwl0cmFjZV9kcm1fbG9nKGxldmVsLCBkZXYsICZ2YWYpOwor CXZhX2VuZChhcmdzKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2Rldl9wcmludGspOwogCitzdGF0 aWMgdW5zaWduZWQgaW50IGRybV90cmFjZV9lbmFibGVkKHVuc2lnbmVkIGludCBjYXRlZ29yeSkK K3sKKwl1bnNpZ25lZCBpbnQgYml0OworCisJZm9yX2VhY2hfc2V0X2JpdChiaXQsICh1bnNpZ25l ZCBsb25nKikmY2F0ZWdvcnksIHNpemVvZihjYXRlZ29yeSkgKiA4KSB7CisJCXN3aXRjaCAoQklU KGJpdCkpIHsKKwkJY2FzZSBEUk1fVVRfTk9ORToKKwkJCXJldHVybiB0cmFjZV9kcm1fZGJnX25v bmVfZW5hYmxlZCgpOworCQljYXNlIERSTV9VVF9DT1JFOgorCQkJcmV0dXJuIHRyYWNlX2RybV9k YmdfY29yZV9lbmFibGVkKCk7CisJCWNhc2UgRFJNX1VUX0RSSVZFUjoKKwkJCXJldHVybiB0cmFj ZV9kcm1fZGJnX2RyaXZlcl9lbmFibGVkKCk7CisJCWNhc2UgRFJNX1VUX0tNUzoKKwkJCXJldHVy biB0cmFjZV9kcm1fZGJnX2ttc19lbmFibGVkKCk7CisJCWNhc2UgRFJNX1VUX1BSSU1FOgorCQkJ cmV0dXJuIHRyYWNlX2RybV9kYmdfcHJpbWVfZW5hYmxlZCgpOworCQljYXNlIERSTV9VVF9BVE9N SUM6CisJCQlyZXR1cm4gdHJhY2VfZHJtX2RiZ19hdG9taWNfZW5hYmxlZCgpOworCQljYXNlIERS TV9VVF9WQkw6CisJCQlyZXR1cm4gdHJhY2VfZHJtX2RiZ192YmxfZW5hYmxlZCgpOworCQljYXNl IERSTV9VVF9TVEFURToKKwkJCXJldHVybiB0cmFjZV9kcm1fZGJnX3N0YXRlX2VuYWJsZWQoKTsK KwkJY2FzZSBEUk1fVVRfTEVBU0U6CisJCQlyZXR1cm4gdHJhY2VfZHJtX2RiZ19sZWFzZV9lbmFi bGVkKCk7CisJCWNhc2UgRFJNX1VUX0RQOgorCQkJcmV0dXJuIHRyYWNlX2RybV9kYmdfZHBfZW5h YmxlZCgpOworCQlkZWZhdWx0OgorCQkJcmV0dXJuIHRyYWNlX2RybV9kYmdfdW5rbm93bl9lbmFi bGVkKCk7CisJCX0KKwl9CisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBkcm1fZG9f dHJhY2UoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgY2F0ZWdvcnksCisJ CQkgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKQoreworCVdBUk5fT04oaHdlaWdodDMyKGNhdGVnb3J5 KSA+IDEpOworCisJc3dpdGNoIChjYXRlZ29yeSkgeworCWNhc2UgRFJNX1VUX05PTkU6CisJCXRy YWNlX2RybV9kYmdfbm9uZShkZXYsIHZhZik7CisJCWJyZWFrOworCWNhc2UgRFJNX1VUX0NPUkU6 CisJCXRyYWNlX2RybV9kYmdfY29yZShkZXYsIHZhZik7CisJCWJyZWFrOworCWNhc2UgRFJNX1VU X0RSSVZFUjoKKwkJdHJhY2VfZHJtX2RiZ19kcml2ZXIoZGV2LCB2YWYpOworCQlicmVhazsKKwlj YXNlIERSTV9VVF9LTVM6CisJCXRyYWNlX2RybV9kYmdfa21zKGRldiwgdmFmKTsKKwkJYnJlYWs7 CisJY2FzZSBEUk1fVVRfUFJJTUU6CisJCXRyYWNlX2RybV9kYmdfcHJpbWUoZGV2LCB2YWYpOwor CQlicmVhazsKKwljYXNlIERSTV9VVF9BVE9NSUM6CisJCXRyYWNlX2RybV9kYmdfYXRvbWljKGRl diwgdmFmKTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fVVRfVkJMOgorCQl0cmFjZV9kcm1fZGJnX3Zi bChkZXYsIHZhZik7CisJCWJyZWFrOworCWNhc2UgRFJNX1VUX1NUQVRFOgorCQl0cmFjZV9kcm1f ZGJnX3N0YXRlKGRldiwgdmFmKTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fVVRfTEVBU0U6CisJCXRy YWNlX2RybV9kYmdfbGVhc2UoZGV2LCB2YWYpOworCQlicmVhazsKKwljYXNlIERSTV9VVF9EUDoK KwkJdHJhY2VfZHJtX2RiZ19kcChkZXYsIHZhZik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXRy YWNlX2RybV9kYmdfdW5rbm93bihkZXYsIHZhZik7CisJCWJyZWFrOworCX0KK30KKwogdm9pZCBk cm1fZGV2X2RiZyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBjYXRlZ29y eSwKIAkJIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQogewogCXN0cnVjdCB2YV9mb3JtYXQgdmFm OworCXVuc2lnbmVkIGludCBiaXQ7CiAJdmFfbGlzdCBhcmdzOwogCi0JaWYgKCFkcm1fZGVidWdf ZW5hYmxlZChjYXRlZ29yeSkpCi0JCXJldHVybjsKLQotCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7 CiAJdmFmLmZtdCA9IGZvcm1hdDsKIAl2YWYudmEgPSAmYXJnczsKIAotCWlmIChkZXYpCi0JCWRl dl9wcmludGsoS0VSTl9ERUJVRywgZGV2LCAiWyIgRFJNX05BTUUgIjolcHNdICVwViIsCi0JCQkg ICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOwotCWVsc2UKLQkJcHJpbnRrKEtF Uk5fREVCVUcgIlsiIERSTV9OQU1FICI6JXBzXSAlcFYiLAotCQkgICAgICAgX19idWlsdGluX3Jl dHVybl9hZGRyZXNzKDApLCAmdmFmKTsKKwlpZiAoZHJtX2RlYnVnX2VuYWJsZWQoY2F0ZWdvcnkp KSB7CisJCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CisJCWlmIChkZXYpCisJCQlkZXZfcHJpbnRr KEtFUk5fREVCVUcsIGRldiwgIlsiIERSTV9OQU1FICI6JXBzXSAlcFYiLAorCQkJCSAgIF9fYnVp bHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7CisJCWVsc2UKKwkJCXByaW50ayhLRVJOX0RF QlVHICJbIiBEUk1fTkFNRSAiOiVwc10gJXBWIiwKKwkJCSAgICAgICBfX2J1aWx0aW5fcmV0dXJu X2FkZHJlc3MoMCksICZ2YWYpOworCQl2YV9lbmQoYXJncyk7CisJfQorCisJaWYgKCFkcm1fdHJh Y2VfZW5hYmxlZChjYXRlZ29yeSkpCisJCXJldHVybjsKKworCWZvcl9lYWNoX3NldF9iaXQoYml0 LCAodW5zaWduZWQgbG9uZyopJmNhdGVnb3J5LCBzaXplb2YoY2F0ZWdvcnkpICogOCkgeworCQl2 YV9zdGFydChhcmdzLCBmb3JtYXQpOworCQlkcm1fZG9fdHJhY2UoZGV2LCBCSVQoYml0KSwgJnZh Zik7CisJCXZhX2VuZChhcmdzKTsKKwl9CiAKLQl2YV9lbmQoYXJncyk7CiB9CiBFWFBPUlRfU1lN Qk9MKGRybV9kZXZfZGJnKTsKIAogdm9pZCBkcm1fZGJnKHVuc2lnbmVkIGludCBjYXRlZ29yeSwg Y29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAJc3RydWN0IHZhX2Zvcm1hdCB2YWY7CisJdW5z aWduZWQgaW50IGJpdDsKIAl2YV9saXN0IGFyZ3M7CiAKLQlpZiAoIWRybV9kZWJ1Z19lbmFibGVk KGNhdGVnb3J5KSkKLQkJcmV0dXJuOwotCi0JdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKIAl2YWYu Zm10ID0gZm9ybWF0OwogCXZhZi52YSA9ICZhcmdzOwogCi0JcHJpbnRrKEtFUk5fREVCVUcgIlsi IERSTV9OQU1FICI6JXBzXSAlcFYiLAotCSAgICAgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3Mo MCksICZ2YWYpOworCWlmIChkcm1fZGVidWdfZW5hYmxlZChjYXRlZ29yeSkpIHsKKwkJdmFfc3Rh cnQoYXJncywgZm9ybWF0KTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgIlsiIERSTV9OQU1FICI6JXBz XSAlcFYiLAorCQkgICAgICAgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCAmdmFmKTsKKwkJ dmFfZW5kKGFyZ3MpOworCX0KIAotCXZhX2VuZChhcmdzKTsKKwlpZiAoIWRybV90cmFjZV9lbmFi bGVkKGNhdGVnb3J5KSkKKwkJcmV0dXJuOworCisJZm9yX2VhY2hfc2V0X2JpdChiaXQsICh1bnNp Z25lZCBsb25nKikmY2F0ZWdvcnksIHNpemVvZihjYXRlZ29yeSkgKiA4KSB7CisJCXZhX3N0YXJ0 KGFyZ3MsIGZvcm1hdCk7CisJCWRybV9kb190cmFjZShOVUxMLCBCSVQoYml0KSwgJnZhZik7CisJ CXZhX2VuZChhcmdzKTsKKwl9CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kYmcpOwogCkBAIC0zMDQs MTMgKzQwNCwxNiBAQCB2b2lkIGRybV9lcnIoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiAJc3Ry dWN0IHZhX2Zvcm1hdCB2YWY7CiAJdmFfbGlzdCBhcmdzOwogCi0JdmFfc3RhcnQoYXJncywgZm9y bWF0KTsKIAl2YWYuZm10ID0gZm9ybWF0OwogCXZhZi52YSA9ICZhcmdzOwogCisJdmFfc3RhcnQo YXJncywgZm9ybWF0KTsKIAlwcmludGsoS0VSTl9FUlIgIlsiIERSTV9OQU1FICI6JXBzXSAqRVJS T1IqICVwViIsCiAJICAgICAgIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7CisJ dmFfZW5kKGFyZ3MpOwogCisJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKwl0cmFjZV9kcm1fZXJy KE5VTEwsICZ2YWYpOwogCXZhX2VuZChhcmdzKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2Vycik7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9kcm1fcHJpbnQuaCBiL2luY2x1ZGUv dHJhY2UvZXZlbnRzL2RybV9wcmludC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uY2M5M2M2OWYzZmU0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS90cmFjZS9l dmVudHMvZHJtX3ByaW50LmgKQEAgLTAsMCArMSwxMTYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgR29vZ2xlLCBJbmMuCisgKgor ICogQXV0aG9yczoKKyAqIFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgorICovCisj dW5kZWYgVFJBQ0VfU1lTVEVNCisjZGVmaW5lIFRSQUNFX1NZU1RFTSBkcm1fcHJpbnQKKworI2lm ICFkZWZpbmVkKF9UUkFDRV9EUk1fUFJJTlRfSCkgfHwgZGVmaW5lZChUUkFDRV9IRUFERVJfTVVM VElfUkVBRCkKKworI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3Ry YWNlcG9pbnQuaD4KKworI2RlZmluZSBEUk1fUFJJTlRfTUFYIDI1NgorCisjZGVmaW5lIF9UUkFD RV9EUk1fUFJJTlRfSAorCitUUkFDRV9FVkVOVChkcm1fbG9nLAorCVRQX1BST1RPKGNvbnN0IGNo YXIgKiBsZXZlbCwgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LAorCQkgc3RydWN0IHZhX2Zvcm1h dCAqdmFmKSwKKwlUUF9BUkdTKGxldmVsLCBkZXYsIHZhZiksCisJVFBfU1RSVUNUX19lbnRyeSgK KwkJX19maWVsZChjb25zdCBjaGFyICosCQlsZXZlbAkJCSkKKwkJX19maWVsZChjb25zdCBzdHJ1 Y3QgZGV2aWNlICosCWRldgkJCSkKKwkJX19keW5hbWljX2FycmF5KGNoYXIsCQltc2csCURSTV9Q UklOVF9NQVgJKQorCQlfX2ZpZWxkKGludCwJCQlsZW4JCQkpCisJKSwKKwlUUF9mYXN0X2Fzc2ln bigKKwkJX19lbnRyeS0+bGV2ZWwgPSBsZXZlbDsKKwkJX19lbnRyeS0+ZGV2ID0gZGV2OworCQlf X2VudHJ5LT5sZW4gPSB2c25wcmludGYoX19nZXRfc3RyKG1zZyksIERSTV9QUklOVF9NQVgsCisJ CQkJCSB2YWYtPmZtdCwgKnZhZi0+dmEpOworCQlpZiAoX19lbnRyeS0+bGVuID4gMCAmJgorCQkg ICAgX19nZXRfc3RyKG1zZylbX19lbnRyeS0+bGVuIC0gMV0gPT0gJ1xuJykKKwkJCV9fZ2V0X3N0 cihtc2cpWy0tX19lbnRyeS0+bGVuXSA9ICdcMCc7CisJKSwKKwlUUF9wcmludGsoIiVzICVzICVz OiAlcyIsIF9fZW50cnktPmxldmVsLAorCQkgIF9fZW50cnktPmRldiA/IGRldl9kcml2ZXJfc3Ry aW5nKF9fZW50cnktPmRldikgOiAiKE5VTEwpOiIsCisJCSAgX19lbnRyeS0+ZGV2ID8gZGV2X25h bWUoX19lbnRyeS0+ZGV2KSA6ICIiLCBfX2dldF9zdHIobXNnKSkKKyk7CisKK1RSQUNFX0VWRU5U KGNsYXNzX2RybV9jYXRlZ29yeV9sb2csCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAorCVRQX0FSR1MoZGV2LCB2YWYpLAorCVRQX1NU UlVDVF9fZW50cnkoCisJCV9fZmllbGQoY29uc3Qgc3RydWN0IGRldmljZSAqLAlkZXYJCQkpCisJ CV9fZHluYW1pY19hcnJheShjaGFyLAkJbXNnLAlEUk1fUFJJTlRfTUFYCSkKKwkJX19maWVsZChp bnQsCQkJbGVuCQkJKQorCSksCisJVFBfZmFzdF9hc3NpZ24oCisJCV9fZW50cnktPmRldiA9IGRl djsKKwkJX19lbnRyeS0+bGVuID0gdnNucHJpbnRmKF9fZ2V0X3N0cihtc2cpLCBEUk1fUFJJTlRf TUFYLAorCQkJCQkgdmFmLT5mbXQsICp2YWYtPnZhKTsKKwkJaWYgKF9fZW50cnktPmxlbiA+IDAg JiYKKwkJICAgIF9fZ2V0X3N0cihtc2cpW19fZW50cnktPmxlbiAtIDFdID09ICdcbicpCisJCQlf X2dldF9zdHIobXNnKVstLV9fZW50cnktPmxlbl0gPSAnXDAnOworCSksCisJVFBfcHJpbnRrKCIl cyAlcyVzJXMiLAorCQkgIF9fZW50cnktPmRldiA/IGRldl9kcml2ZXJfc3RyaW5nKF9fZW50cnkt PmRldikgOiAiIiwKKwkJICBfX2VudHJ5LT5kZXYgPyBkZXZfbmFtZShfX2VudHJ5LT5kZXYpIDog IiIsCisJCSAgX19lbnRyeS0+ZGV2ID8gIjogIiA6ICIiLCBfX2dldF9zdHIobXNnKSkKKyk7CitE RUZJTkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJtX2VyciwKKwlUUF9QUk9UTyhj b25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2YV9mb3JtYXQgKnZhZiksCisJVFBfQVJH UyhkZXYsIHZhZikKKyk7CitERUZJTkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJt X2RiZ19ub25lLAorCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZh X2Zvcm1hdCAqdmFmKSwKKwlUUF9BUkdTKGRldiwgdmFmKQorKTsKK0RFRklORV9FVkVOVChjbGFz c19kcm1fY2F0ZWdvcnlfbG9nLCBkcm1fZGJnX2NvcmUsCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAorCVRQX0FSR1MoZGV2LCB2YWYp CispOworREVGSU5FX0VWRU5UKGNsYXNzX2RybV9jYXRlZ29yeV9sb2csIGRybV9kYmdfZHJpdmVy LAorCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZhX2Zvcm1hdCAq dmFmKSwKKwlUUF9BUkdTKGRldiwgdmFmKQorKTsKK0RFRklORV9FVkVOVChjbGFzc19kcm1fY2F0 ZWdvcnlfbG9nLCBkcm1fZGJnX2ttcywKKwlUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCB2YV9mb3JtYXQgKnZhZiksCisJVFBfQVJHUyhkZXYsIHZhZikKKyk7CitERUZJ TkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJtX2RiZ19wcmltZSwKKwlUUF9QUk9U Tyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2YV9mb3JtYXQgKnZhZiksCisJVFBf QVJHUyhkZXYsIHZhZikKKyk7CitERUZJTkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywg ZHJtX2RiZ19hdG9taWMsCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgdmFfZm9ybWF0ICp2YWYpLAorCVRQX0FSR1MoZGV2LCB2YWYpCispOworREVGSU5FX0VWRU5U KGNsYXNzX2RybV9jYXRlZ29yeV9sb2csIGRybV9kYmdfdmJsLAorCVRQX1BST1RPKGNvbnN0IHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKSwKKwlUUF9BUkdTKGRldiwg dmFmKQorKTsKK0RFRklORV9FVkVOVChjbGFzc19kcm1fY2F0ZWdvcnlfbG9nLCBkcm1fZGJnX3N0 YXRlLAorCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZhX2Zvcm1h dCAqdmFmKSwKKwlUUF9BUkdTKGRldiwgdmFmKQorKTsKK0RFRklORV9FVkVOVChjbGFzc19kcm1f Y2F0ZWdvcnlfbG9nLCBkcm1fZGJnX2xlYXNlLAorCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKSwKKwlUUF9BUkdTKGRldiwgdmFmKQorKTsK K0RFRklORV9FVkVOVChjbGFzc19kcm1fY2F0ZWdvcnlfbG9nLCBkcm1fZGJnX2RwLAorCVRQX1BS T1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKSwKKwlU UF9BUkdTKGRldiwgdmFmKQorKTsKK0RFRklORV9FVkVOVChjbGFzc19kcm1fY2F0ZWdvcnlfbG9n LCBkcm1fZGJnX3Vua25vd24sCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAorCVRQX0FSR1MoZGV2LCB2YWYpCispOworI2VuZGlmCisK Ky8qIFRoaXMgcGFydCBtdXN0IGJlIG91dHNpZGUgcHJvdGVjdGlvbiAqLworI2luY2x1ZGUgPHRy YWNlL2RlZmluZV90cmFjZS5oPgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29v Z2xlIC8gQ2hyb21pdW0gT1MKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbA==