From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v12 2/7] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Wed, 17 Aug 2016 15:55:54 -0400 Message-ID: <1471463761-26796-3-git-send-email-cpaul@redhat.com> References: <1471463761-26796-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471463761-26796-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Maarten Lankhorst , Matt Roper Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Daniel Vetter , Lyude List-Id: dri-devel@lists.freedesktop.org U2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbnMgZm9yIFNreWxha2UgYXJlIHN0aWxsIGJy b2tlbiwgd2UncmUgYXB0CnRvIGhpdHRpbmcgdW5kZXJydW5zIHZlcnkgZWFzaWx5IHVuZGVyIG11 bHRpLW1vbml0b3IgY29uZmlndXJhdGlvbnMuCldoaWxlIGl0IHdvdWxkIGJlIGxvdmVseSBpZiB0 aGlzIHdhcyBmaXhlZCwgaXQncyBub3QuIEFub3RoZXIgcHJvYmxlbQp0aGF0J3MgYmVlbiBjb21p bmcgZnJvbSB0aGlzIGhvd2V2ZXIsIGlzIHRoZSBteXN0ZXJpb3VzIGlzc3VlIG9mCnVuZGVycnVu cyBjYXVzaW5nIGZ1bGwgc3lzdGVtIGhhbmdzLiBBbiBlYXN5IHdheSB0byByZXByb2R1Y2UgdGhp cyB3aXRoCmEgc2t5bGFrZSBzeXN0ZW06CgotIEdldCBhIGxhcHRvcCB3aXRoIGEgc2t5bGFrZSBH UFUsIGFuZCBob29rIHVwIHR3byBleHRlcm5hbCBtb25pdG9ycyB0bwogIGl0Ci0gTW92ZSB0aGUg Y3Vyc29yIGZyb20gdGhlIGJ1aWx0LWluIExDRCB0byBvbmUgb2YgdGhlIGV4dGVybmFsIGRpc3Bs YXlzCiAgYXMgcXVpY2tseSBhcyB5b3UgY2FuCi0gWW91J2xsIGdldCBhIGZldyBwaXBlIHVuZGVy cnVucywgYW5kIGV2ZW50dWFsbHkgdGhlIGVudGlyZSBzeXN0ZW0gd2lsbAogIGp1c3QgZnJlZXpl LgoKQWZ0ZXIgZG9pbmcgYSBsb3Qgb2YgaW52ZXN0aWdhdGlvbiBhbmQgcmVhZGluZyB0aHJvdWdo IHRoZSBic3BlYywgSQpmb3VuZCB0aGUgZXhpc3RlbmNlIG9mIHRoZSBTQUdWLCB3aGljaCBpcyBy ZXNwb25zaWJsZSBmb3IgYWRqdXN0aW5nIHRoZQpzeXN0ZW0gYWdlbnQgdm9sdGFnZSBhbmQgY2xv Y2sgZnJlcXVlbmNpZXMgZGVwZW5kaW5nIG9uIGhvdyBtdWNoIHBvd2VyCndlIG5lZWQuIEFjY29y ZGluZyB0byB0aGUgYnNwZWM6CgoiVGhlIGRpc3BsYXkgZW5naW5lIGFjY2VzcyB0byBzeXN0ZW0g bWVtb3J5IGlzIGJsb2NrZWQgZHVyaW5nIHRoZQogYWRqdXN0bWVudCB0aW1lLiBTQUdWIGRlZmF1 bHRzIHRvIGVuYWJsZWQuIFNvZnR3YXJlIG11c3QgdXNlIHRoZQogR1QtZHJpdmVyIHBjb2RlIG1h aWxib3ggdG8gZGlzYWJsZSBTQUdWIHdoZW4gdGhlIGRpc3BsYXkgZW5naW5lIGlzIG5vdAogYWJs ZSB0byB0b2xlcmF0ZSB0aGUgYmxvY2tpbmcgdGltZS4iCgpUaGUgcmVzdCBvZiB0aGUgYnNwZWMg Z29lcyBvbiB0byBleHBsYWluIHRoYXQgc29mdHdhcmUgY2FuIHNpbXBseSBsZWF2ZQp0aGUgU0FH ViBlbmFibGVkLCBhbmQgZGlzYWJsZSBpdCB3aGVuIHdlIHVzZSBpbnRlcmxhY2VkIHBpcGVzL2hh dmUgbW9yZQp0aGVuIG9uZSBwaXBlIGFjdGl2ZS4KClN1cmUgZW5vdWdoLCB3aXRoIHRoaXMgcGF0 Y2hzZXQgdGhlIHN5c3RlbSBoYW5ncyByZXN1bHRpbmcgZnJvbSBwaXBlCnVuZGVycnVucyBvbiBT a3lsYWtlIGhhdmUgY29tcGxldGVseSB2YW5pc2hlZCBvbiBteSBUNDYwcy4gQWRkaXRpb25hbGx5 LAp0aGUgYnNwZWMgbWVudGlvbnMgdHVybmluZyBvZmYgdGhlIFNBR1YJd2l0aCBtb3JlIHRoZW4g b25lIHBpcGUgZW5hYmxlZAphcyBhIHdvcmthcm91bmQgZm9yIGRpc3BsYXkgdW5kZXJydW5zLiBX aGlsZSB0aGlzIHBhdGNoIGRvZXNuJ3QgZW50aXJlbHkKZml4IHRoYXQsIGl0IGxvb2tzIGxpa2Ug aXQgZG9lcyBpbXByb3ZlIHRoZSBzaXR1YXRpb24gYSBsaXR0bGUgYml0IHNvCml0J3MgbGlrZWx5 IHRoaXMgaXMgZ29pbmcgdG8gYmUgcmVxdWlyZWQgdG8gbWFrZSB3YXRlcm1hcmtzIG9uIFNreWxh a2UKZnVsbHkgZnVuY3Rpb25hbC4KClRoaXMgd2lsbCBzdGlsbCBuZWVkIGFkZGl0aW9uYWwgd29y ayBpbiB0aGUgZnV0dXJlOiB3ZSBzaG91bGRuJ3QgYmUKZW5hYmxpbmcgdGhlIFNBR1YgaWYgYW55 IG9mIHRoZSBjdXJyZW50bHkgZW5hYmxlZCBwbGFuZXMgY2FuJ3QgZW5hYmxlIFdNCmxldmVscyB0 aGF0IGludHJvZHVjZSBsYXRlbmNpZXMgPj0gMzAgwrVzLgoKQ2hhbmdlcyBzaW5jZSB2MTE6CiAt IEFkZCBza2xfY2FuX2VuYWJsZV9zYWd2KCkKIC0gTWFrZSBzdXJlIHdlIGRvbid0IGVuYWJsZSBT QUdWIHdoZW4gbm90IGFsbCBwbGFuZXMgY2FuIGVuYWJsZQogICB3YXRlcm1hcmtzID49IHRoZSBT QUdWIGVuZ2luZSBibG9jayB0aW1lLiBJIHdhcyBvcmlnaW5hbGx5IGdvaW5nIHRvCiAgIHNhdmUg dGhpcyBmb3IgbGF0ZXIsIGJ1dCBJIHJlY2VudGx5IG1hbmFnZWQgdG8gcnVuIGludG8gYSBtYWNo aW5lCiAgIHRoYXQgd2FzIGhhdmluZyBwcm9ibGVtcyB3aXRoIGEgc2luZ2xlIHBpcGUgY29uZmln dXJhdGlvbiArIFNBR1YuCiAtIE1ha2UgY29tcGFyaXNvbnMgdG8gSTkxNV9TS0xfU0FHVl9OT1Rf Q09OVFJPTExFRCBleHBsaWNpdAogLSBDaGFuZ2UgSTkxNV9TQUdWX0RZTkFNSUNfRlJFUSB0byBJ OTE1X1NBR1ZfRU5BQkxFCiAtIE1vdmUgcHJpbnRrcyBvdXRzaWRlIG9mIG11dGV4ZXMKIC0gRG9u J3QgcHJpbnQgZXJyb3IgbWVzc2FnZXMgdHdpY2UKQ2hhbmdlcyBzaW5jZSB2MTA6CiAtIEFwcGFy ZW50bHkgc2FuZHlicmlkZ2VfcGNvZGVfcmVhZCBhY3R1YWxseSB3cml0ZXMgdmFsdWVzIGFuZCBy ZWFkcwogICB0aGVtIGJhY2ssIGRlc3BpdGUgaXQncyBtaXNsZWFkaW5nIGZ1bmN0aW9uIG5hbWUu IFRoaXMgbWVhbnMgd2UndmUKICAgYmVlbiBkb2luZyB0aGlzIG1vc3RseSB3cm9uZyBhbmQgaGF2 ZSBiZWVuIHdyaXRpbmcgZ2FyYmFnZSB0byB0aGUKICAgU0FHViBjb250cm9sLiBCZWNhdXNlIG9m IHRoaXMsIHdlIG5vIGxvbmdlciBhdHRlbXB0IHRvIHJlYWQgdGhlIFNBR1YKICAgc3RhdHVzIGR1 cmluZyBpbml0aWFsaXphdGlvbiAoc2luY2UgdGhlcmUgYXJlIG5vIGhlbHBlcnMgZm9yIHRoaXMp LgogLSBtbGFua2hvcnN0IG5vdGljZWQgdGhhdCB0aGlzIHBhdGNoIHdhcyBicmVha2luZyBvbiBz b21lIHZlcnkgZWFybHkKICAgcHJlLXJlbGVhc2UgU2t5bGFrZSBtYWNoaW5lcywgd2hpY2ggYXBw YXJlbnRseSBkb24ndCBhbGxvdyB5b3UgdG8KICAgZGlzYWJsZSB0aGUgU0FHVi4gVG8gcHJldmVu dCBtYWNoaW5lcyBmcm9tIGZhaWxpbmcgdGVzdHMgZHVlIHRvIFNBR1YKICAgZXJyb3JzLCBpZiB0 aGUgZmlyc3QgdGltZSB3ZSB0cnkgdG8gY29udHJvbCB0aGUgU0FHViByZXN1bHRzIGluIHRoZQog ICBtYWlsYm94IGluZGljYXRpbmcgYW4gaW52YWxpZCBjb21tYW5kLCB3ZSBqdXN0IGRpc2FibGUg ZnV0dXJlIGF0dGVtcHRzCiAgIHRvIGNvbnRyb2wgdGhlIFNBR1Ygc3RhdGUgYnkgc2V0dGluZyBk ZXZfcHJpdi0+c2tsX3NhZ3Zfc3RhdHVzIHRvCiAgIEk5MTVfU0tMX1NBR1ZfTk9UX0NPTlRST0xM RUQgYW5kIG1ha2UgYSBub3RlIG9mIGl0IGluIGRtZXNnLgogLSBNb3ZlIG11dGV4X3VubG9jaygp IGEgbGl0dGxlIGhpZ2hlciBpbiBza2xfZW5hYmxlX3NhZ3YoKS4gVGhpcwogICBkb2Vzbid0IGFj dHVhbGx5IGZpeCBhbnl0aGluZywgYnV0IGxldHMgdXMgcmVsZWFzZSB0aGUgbG9jayBhIGxpdHRs ZQogICBzb29uZXIgc2luY2Ugd2UncmUgZmluaXNoZWQgd2l0aCBpdC4KQ2hhbmdlcyBzaW5jZSB2 OToKIC0gT25seSBlbmFibGUvZGlzYWJsZSBzYWd2IG9uIFNreWxha2UKQ2hhbmdlcyBzaW5jZSB2 ODoKIC0gQWRkIGludGVsX3N0YXRlLT5tb2Rlc2V0IGd1YXJkIHRvIHRoZSBjb25kaXRpb25hbCBm b3IKICAgc2tsX2VuYWJsZV9zYWd2KCkKQ2hhbmdlcyBzaW5jZSB2NzoKIC0gUmVtb3ZlIEdFTjlf U0FHVl9MT1dfRlJFUSwgcmVwbGFjZSB3aXRoIEdFTjlfU0FHVl9JU19FTkFCTEVEICh0aGF0J3MK ICAgYWxsIHdlIHVzZSBpdCBmb3IgYW55d2F5KQogLSBVc2UgR0VOOV9TQUdWX0lTX0VOQUJMRUQg aW5zdGVhZCBvZiAweDEgZm9yIGNsYXJpZmljYXRpb24KIC0gRml4IGEgc3R5bGluZyBlcnJvciB0 aGF0IHNudWNrIHBhc3QgbWUKQ2hhbmdlcyBzaW5jZSB2NjoKIC0gUHJvdGVjdCBza2xfZW5hYmxl X3NhZ3YoKSB3aXRoIGludGVsX3N0YXRlLT5tb2Rlc2V0IGNvbmRpdGlvbmFsIGluCiAgIGludGVs X2F0b21pY19jb21taXRfdGFpbCgpCkNoYW5nZXMgc2luY2UgdjU6CiAtIERvbid0IHVzZSBpc19w b3dlcl9vZl8yLiBNYWtlcyB0aGluZ3MgY29uZnVzaW5nCiAtIERvbid0IHVzZSB0aGUgb2xkIHN0 YXRlIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBvciBub3QgdG8KICAgZW5hYmxlL2Rpc2FibGUgdGhl IHNhZ3YsIHVzZSB0aGUgbmV3IG9uZQogLSBTcGxpdCB0aGUgbG9vcCBpbiBza2xfZGlzYWJsZV9z YWd2IGludG8gaXQncyBvd24gZnVuY3Rpb24KIC0gTW92ZSBza2xfc2Fndl9lbmFibGUvZGlzYWJs ZSgpIGNhbGxzIGludG8gaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKCkKQ2hhbmdlcyBzaW5jZSB2 NDoKIC0gVXNlIGlzX3Bvd2VyX29mXzIgYWdhaW5zdCBhY3RpdmVfY3J0Y3MgdG8gY2hlY2sgd2hl dGhlciB3ZSBoYXZlID4gMQogICBwaXBlIGVuYWJsZWQKIC0gRml4IHNrbF9zYWd2X2dldF9od19z dGF0ZSgpOiAodGVtcCAmIDB4MSkgaW5kaWNhdGVzIGRpc2FibGVkLCAweDAKICAgZW5hYmxlZAog LSBDYWxsIHNrbF9zYWd2X2VuYWJsZS9kaXNhYmxlKCkgZnJvbSBwcmUvcG9zdC1wbGFuZSB1cGRh dGVzCkNoYW5nZXMgc2luY2UgdjM6CiAtIFVzZSB0aW1lX2JlZm9yZSgpIHRvIGNvbXBhcmUgdGlt ZW91dCB0byBqaWZmaWVzCkNoYW5nZXMgc2luY2UgdjI6CiAtIFJlYWxseSBhcHBseSBtaW5vciBz dHlsZSBuaXRwaWNrcyB0byBwYXRjaCB0aGlzIHRpbWUKQ2hhbmdlcyBzaW5jZSB2MToKIC0gQWRk ZWQgY29tbWVudHMgYWJvdXQgdGhpcyBwcm9iYWJseSBiZWluZyBvbmUgb2YgdGhlIHJlcXVpcmVt ZW50cyB0bwogICBmaXhpbmcgU2t5bGFrZSdzIHdhdGVybWFyayBpc3N1ZXMKIC0gTWlub3Igc3R5 bGUgbml0cGlja3MgZnJvbSBNYXR0IFJvcGVyCiAtIERpc2FibGUgdGhlc2UgZnVuY3Rpb25zIG9u IEJyb3h0b24sIHNpbmNlIGl0IGRvZXNuJ3QgaGF2ZSBhbiBTQUdWCgpTaWduZWQtb2ZmLWJ5OiBM eXVkZSA8Y3BhdWxAcmVkaGF0LmNvbT4KQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBp bnRlbC5jb20+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBzdGFi bGVAdmdlci5rZXJuZWwub3JnCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgIHwgICA3ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgIDQg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDExICsrKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMgICAgICB8IDE0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCmluZGV4IDM1Y2FhOWIuLmYyMDUzMGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTE5NDksNiArMTk0OSwxMyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJc3RydWN0 IGk5MTVfc3VzcGVuZF9zYXZlZF9yZWdpc3RlcnMgcmVnZmlsZTsKIAlzdHJ1Y3Qgdmx2X3MwaXhf c3RhdGUgdmx2X3MwaXhfc3RhdGU7CiAKKwllbnVtIHsKKwkJSTkxNV9TS0xfU0FHVl9VTktOT1dO ID0gMCwKKwkJSTkxNV9TS0xfU0FHVl9ESVNBQkxFRCwKKwkJSTkxNV9TS0xfU0FHVl9FTkFCTEVE LAorCQlJOTE1X1NLTF9TQUdWX05PVF9DT05UUk9MTEVECisJfSBza2xfc2Fndl9zdGF0dXM7CisK IAlzdHJ1Y3QgewogCQkvKgogCQkgKiBSYXcgd2F0ZXJtYXJrIGxhdGVuY3kgdmFsdWVzOgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggNzQxOWZiZi4uYmU4MmM0OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCkBAIC03MTUzLDYgKzcxNTMsMTAgQEAgZW51bSB7CiAjZGVmaW5lICAgSFNXX1BD T0RFX0RFX1dSSVRFX0ZSRVFfUkVRCQkweDE3CiAjZGVmaW5lICAgRElTUExBWV9JUFNfQ09OVFJP TAkJCTB4MTkKICNkZWZpbmUJICBIU1dfUENPREVfRFlOQU1JQ19EVVRZX0NZQ0xFX0NPTlRST0wJ MHgxQQorI2RlZmluZSAgIEdFTjlfUENPREVfU0FHVl9DT05UUk9MCQkweDIxCisjZGVmaW5lICAg ICBHRU45X1NBR1ZfRElTQUJMRQkJCTB4MAorI2RlZmluZSAgICAgR0VOOV9TQUdWX0lTX0RJU0FC TEVECQkweDEKKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9FTkFCTEUgCSAgICAgICAgICAgICAweDMK ICNkZWZpbmUgR0VONl9QQ09ERV9EQVRBCQkJCV9NTUlPKDB4MTM4MTI4KQogI2RlZmluZSAgIEdF TjZfUENPREVfRlJFUV9JQV9SQVRJT19TSElGVAk4CiAjZGVmaW5lICAgR0VONl9QQ09ERV9GUkVR X1JJTkdfUkFUSU9fU0hJRlQJMTYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRl eCA3ODFkMjJlLi5jYTRiODNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBA IC0xNDE1Niw2ICsxNDE1NiwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3Rh aWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkgICAgIGludGVsX3N0YXRlLT5j ZGNsa19wbGxfdmNvICE9IGRldl9wcml2LT5jZGNsa19wbGwudmNvKSkKIAkJCWRldl9wcml2LT5k aXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrKHN0YXRlKTsKIAorCQkvKgorCQkgKiBTS0wgd29y a2Fyb3VuZDogYnNwZWMgcmVjb21tZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UKKwkJ ICogaGF2ZSBtb3JlIHRoZW4gb25lIHBpcGUgZW5hYmxlZAorCQkgKi8KKwkJaWYgKElTX1NLWUxB S0UoZGV2X3ByaXYpICYmICFza2xfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKKwkJCXNrbF9kaXNh YmxlX3NhZ3YoZGV2X3ByaXYpOworCiAJCWludGVsX21vZGVzZXRfdmVyaWZ5X2Rpc2FibGVkKGRl dik7CiAJfQogCkBAIC0xNDIyOSw2ICsxNDIzNiwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9t aWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlpbnRlbF9t b2Rlc2V0X3ZlcmlmeV9jcnRjKGNydGMsIG9sZF9jcnRjX3N0YXRlLCBjcnRjLT5zdGF0ZSk7CiAJ fQogCisJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpICYmIGludGVsX3N0YXRlLT5tb2Rlc2V0ICYm CisJICAgIHNrbF9jYW5fZW5hYmxlX3NhZ3Yoc3RhdGUpKQorCQlza2xfZW5hYmxlX3NhZ3YoZGV2 X3ByaXYpOworCiAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoc3RhdGUpOwogCiAJ aWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAx YzcwMGIwLi5kMjAzYzc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTcyMiw2ICsx NzIyLDkgQEAgdm9pZCBpbGtfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owogdm9pZCBza2xfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9p ZCBza2xfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQkgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pOworYm9vbCBz a2xfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CitpbnQg c2tsX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitpbnQg c2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdWlu dDMyX3QgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcpOwogYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKIGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgaW50IGVuYWJsZV9yYzYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggYjRj Zjk4OC4uZmVkMmJhZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMjg2MCw2ICsyODYw LDcgQEAgYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAj ZGVmaW5lIFNLTF9EREJfU0laRQkJODk2CS8qIGluIGJsb2NrcyAqLwogI2RlZmluZSBCWFRfRERC X1NJWkUJCTUxMgorI2RlZmluZSBTS0xfU0FHVl9CTE9DS19USU1FIDMwIC8qIMK1cyAqLwogCiAv KgogICogUmV0dXJuIHRoZSBpbmRleCBvZiBhIHBsYW5lIGluIHRoZSBTS0wgRERCIGFuZCB3bSBy ZXN1bHQgYXJyYXlzLiAgUHJpbWFyeQpAQCAtMjg4Myw2ICsyODg0LDE1MyBAQCBza2xfd21fcGxh bmVfaWQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKIAl9CiB9CiAKKy8qCisgKiBT QUdWIGR5bmFtaWNhbGx5IGFkanVzdHMgdGhlIHN5c3RlbSBhZ2VudCB2b2x0YWdlIGFuZCBjbG9j ayBmcmVxdWVuY2llcworICogZGVwZW5kaW5nIG9uIHBvd2VyIGFuZCBwZXJmb3JtYW5jZSByZXF1 aXJlbWVudHMuIFRoZSBkaXNwbGF5IGVuZ2luZSBhY2Nlc3MKKyAqIHRvIHN5c3RlbSBtZW1vcnkg aXMgYmxvY2tlZCBkdXJpbmcgdGhlIGFkanVzdG1lbnQgdGltZS4gQmVjYXVzZSBvZiB0aGUKKyAq IGJsb2NraW5nIHRpbWUsIGhhdmluZyB0aGlzIGVuYWJsZWQgY2FuIGNhdXNlIGZ1bGwgc3lzdGVt IGhhbmdzIGFuZC9vciBwaXBlCisgKiB1bmRlcnJ1bnMgaWYgd2UgZG9uJ3QgbWVldCBhbGwgb2Yg dGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHM6CisgKgorICogIC0gPD0gMSBwaXBlIGVuYWJsZWQK KyAqICAtIEFsbCBwbGFuZXMgY2FuIGVuYWJsZSB3YXRlcm1hcmtzIGZvciBsYXRlbmNpZXMgPj0g U0FHViBlbmdpbmUgYmxvY2sgdGltZQorICogIC0gV2UncmUgbm90IHVzaW5nIGFuIGludGVybGFj ZWQgZGlzcGxheSBjb25maWd1cmF0aW9uCisgKi8KK2ludAorc2tsX2VuYWJsZV9zYWd2KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgcmV0OworCisJaWYgKGRldl9w cml2LT5za2xfc2Fndl9zdGF0dXMgPT0gSTkxNV9TS0xfU0FHVl9OT1RfQ09OVFJPTExFRCB8fAor CSAgICBkZXZfcHJpdi0+c2tsX3NhZ3Zfc3RhdHVzID09IEk5MTVfU0tMX1NBR1ZfRU5BQkxFRCkK KwkJcmV0dXJuIDA7CisKKwlEUk1fREVCVUdfS01TKCJFbmFibGluZyB0aGUgU0FHVlxuIik7CisJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKKworCXJldCA9IHNhbmR5YnJpZGdl X3Bjb2RlX3dyaXRlKGRldl9wcml2LCBHRU45X1BDT0RFX1NBR1ZfQ09OVFJPTCwKKwkJCQkgICAg ICBHRU45X1NBR1ZfRU5BQkxFKTsKKworCS8qIFdlIGRvbid0IG5lZWQgdG8gd2FpdCBmb3IgdGhl IFNBR1Ygd2hlbiBlbmFibGluZyAqLworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19s b2NrKTsKKworCS8qCisJICogU29tZSBza2wgc3lzdGVtcywgcHJlLXJlbGVhc2UgbWFjaGluZXMg aW4gcGFydGljdWxhciwKKwkgKiBkb24ndCBhY3R1YWxseSBoYXZlIGFuIFNBR1YuCisJICovCisJ aWYgKHJldCA9PSAtRU5PU1lTKSB7CisJCURSTV9ERUJVR19EUklWRVIoIk5vIFNBR1YgZm91bmQg b24gc3lzdGVtLCBpZ25vcmluZ1xuIik7CisJCWRldl9wcml2LT5za2xfc2Fndl9zdGF0dXMgPSBJ OTE1X1NLTF9TQUdWX05PVF9DT05UUk9MTEVEOworCQlyZXR1cm4gMDsKKwl9IGVsc2UgaWYgKHJl dCA8IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIHRoZSBTQUdWXG4iKTsKKwkJ cmV0dXJuIHJldDsKKwl9CisKKwlkZXZfcHJpdi0+c2tsX3NhZ3Zfc3RhdHVzID0gSTkxNV9TS0xf U0FHVl9FTkFCTEVEOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Citza2xfZG9fc2Fndl9k aXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgcmV0Owor CXVpbnQzMl90IHRlbXAgPSBHRU45X1NBR1ZfRElTQUJMRTsKKworCXJldCA9IHNhbmR5YnJpZGdl X3Bjb2RlX3JlYWQoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FHVl9DT05UUk9MLAorCQkJCSAgICAg JnRlbXApOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJZWxzZQorCQlyZXR1cm4gdGVtcCAm IEdFTjlfU0FHVl9JU19ESVNBQkxFRDsKK30KKworaW50Citza2xfZGlzYWJsZV9zYWd2KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgcmV0LCByZXN1bHQ7CisKKwlp ZiAoZGV2X3ByaXYtPnNrbF9zYWd2X3N0YXR1cyA9PSBJOTE1X1NLTF9TQUdWX05PVF9DT05UUk9M TEVEIHx8CisJICAgIGRldl9wcml2LT5za2xfc2Fndl9zdGF0dXMgPT0gSTkxNV9TS0xfU0FHVl9E SVNBQkxFRCkKKwkJcmV0dXJuIDA7CisKKwlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgdGhlIFNB R1ZcbiIpOworCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CisKKwkvKiBic3Bl YyBzYXlzIHRvIGtlZXAgcmV0cnlpbmcgZm9yIGF0IGxlYXN0IDEgbXMgKi8KKwlyZXQgPSB3YWl0 X2ZvcihyZXN1bHQgPSBza2xfZG9fc2Fndl9kaXNhYmxlKGRldl9wcml2KSwgMSk7CisJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOworCisJaWYgKHJldCA9PSAtRVRJTUVET1VU KSB7CisJCURSTV9FUlJPUigiUmVxdWVzdCB0byBkaXNhYmxlIFNBR1YgdGltZWQgb3V0XG4iKTsK KwkJcmV0dXJuIC1FVElNRURPVVQ7CisJfQorCisJLyoKKwkgKiBTb21lIHNrbCBzeXN0ZW1zLCBw cmUtcmVsZWFzZSBtYWNoaW5lcyBpbiBwYXJ0aWN1bGFyLAorCSAqIGRvbid0IGFjdHVhbGx5IGhh dmUgYW4gU0FHVi4KKwkgKi8KKwlpZiAocmVzdWx0ID09IC1FTk9TWVMpIHsKKwkJRFJNX0RFQlVH X0RSSVZFUigiTm8gU0FHViBmb3VuZCBvbiBzeXN0ZW0sIGlnbm9yaW5nXG4iKTsKKwkJZGV2X3By aXYtPnNrbF9zYWd2X3N0YXR1cyA9IEk5MTVfU0tMX1NBR1ZfTk9UX0NPTlRST0xMRUQ7CisJCXJl dHVybiAwOworCX0gZWxzZSBpZiAocmVzdWx0IDwgMCkgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBkaXNhYmxlIHRoZSBTQUdWXG4iKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlkZXZfcHJp di0+c2tsX3NhZ3Zfc3RhdHVzID0gSTkxNV9TS0xfU0FHVl9ESVNBQkxFRDsKKwlyZXR1cm4gMDsK K30KKworYm9vbCBza2xfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp OworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwllbnVtIHBpcGUgcGlwZTsKKwlpbnQgbGV2ZWws IHBsYW5lOworCisJLyoKKwkgKiBTS0wgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21tZW5kcyB3ZSBk aXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UgaGF2ZQorCSAqIG1vcmUgdGhlbiBvbmUgcGlwZSBlbmFi bGVkCisJICoKKwkgKiBJZiB0aGVyZSBhcmUgbm8gYWN0aXZlIENSVENzLCBubyBhZGRpdGlvbmFs IGNoZWNrcyBuZWVkIGJlIHBlcmZvcm1lZAorCSAqLworCWlmIChod2VpZ2h0MzIoaW50ZWxfc3Rh dGUtPmFjdGl2ZV9jcnRjcykgPT0gMCkKKwkJcmV0dXJuIHRydWU7CisJZWxzZSBpZiAoaHdlaWdo dDMyKGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpID4gMSkKKwkJcmV0dXJuIGZhbHNlOworCisJ LyogU2luY2Ugd2UncmUgbm93IGd1YXJhbnRlZWQgdG8gb25seSBoYXZlIG9uZSBhY3RpdmUgQ1JU Qy4uLiAqLworCXBpcGUgPSBmZnMoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgLSAxOworCWNy dGMgPSBkZXZfcHJpdi0+cGlwZV90b19jcnRjX21hcHBpbmdbcGlwZV07CisKKwlpZiAoY3J0Yy0+ c3RhdGUtPm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJcmV0dXJuIGZh bHNlOworCisJZm9yX2VhY2hfcGxhbmUoZGV2X3ByaXYsIHBpcGUsIHBsYW5lKSB7CisJCS8qIFNr aXAgdGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFibGVkICovCisJCWlmIChpbnRlbF9zdGF0ZS0+ d21fcmVzdWx0cy5wbGFuZVtwaXBlXVtwbGFuZV1bMF0gPT0gMCkKKwkJCWNvbnRpbnVlOworCisJ CS8qIEZpbmQgdGhlIGhpZ2hlc3QgZW5hYmxlZCB3bSBsZXZlbCBmb3IgdGhpcyBwbGFuZSAqLwor CQlmb3IgKGxldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCQkgICAgIGludGVsX3N0YXRl LT53bV9yZXN1bHRzLnBsYW5lW3BpcGVdW3BsYW5lXVtsZXZlbF0gPT0gMDsKKwkJICAgICAtLWxl dmVsKTsKKworCQkvKgorCQkgKiBJZiBhbnkgb2YgdGhlIHBsYW5lcyBvbiB0aGlzIHBpcGUgZG9u J3QgZW5hYmxlIHdtIGxldmVscworCQkgKiB0aGF0IGluY3VyIG1lbW9yeSBsYXRlbmNpZXMgaGln aGVyIHRoZW4gMzDCtXMgd2UgY2FuJ3QgZW5hYmxlCisJCSAqIHRoZSBTQUdWCisJCSAqLworCQlp ZiAoZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5W2xldmVsXSA8IFNLTF9TQUdWX0JMT0NLX1RJTUUp CisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyB2b2lk CiBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKLS0gCjIu Ny40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK