From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 150FFC433E0 for ; Tue, 7 Jul 2020 12:13:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D704320739 for ; Tue, 7 Jul 2020 12:13:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="Oh5QlJUC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D704320739 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 335BC89B48; Tue, 7 Jul 2020 12:13:48 +0000 (UTC) Received: from mail-oo1-xc44.google.com (mail-oo1-xc44.google.com [IPv6:2607:f8b0:4864:20::c44]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6532289B48 for ; Tue, 7 Jul 2020 12:13:47 +0000 (UTC) Received: by mail-oo1-xc44.google.com with SMTP id q10so4556343ooo.11 for ; Tue, 07 Jul 2020 05:13:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Be+V495+3v6Pq6Kf23E7LFwe73HHQ1Nkuf3ick/H29M=; b=Oh5QlJUC4m6vtlJMaRLQ/IzPjE98Igc/O/pDZsvgr4HXj5ir8/sOt7nGSyw1U8Ecy0 vWsP94A2Ks0oraCxSEkJIceTgFiIS5Fng0FznhaKthxxxcjGtNLtzxDRemt5AHdihJkG /8J34/md68jmOO90Ntp8GICOc7+LqmE9hxjV4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Be+V495+3v6Pq6Kf23E7LFwe73HHQ1Nkuf3ick/H29M=; b=gJaP9IhiGBmKt4BtmbEhU2YmqMmdJqPEzyoUkNfXFJs44fsqv5Ao14Q0c9OoVeVw3i 0S7yONZOUCA6qX2UxeFlshexOxpa/4kRTun1tt/fADIGvkKiHU2w37yq97VUBhaq95rk 0i8kJbfc3TaPC96JrtpTNvWSkPdArg9eczNpNYWFgWIrhfIaQDpl1azvWp0N+f57Prv0 Mr0jvg/uYEHWH1/FDm6zutynqs2/hzhPYZeQP91foGWvaLoJPuYFlJyImHYxpo+1Zqvt IvGwHsGZTWleIEtbObxodJXMbneuEkeo7+VdnR1RCoRwIAg/dfw6hMMmCFFMfPxFKj0k Kk4g== X-Gm-Message-State: AOAM530ONhFOYzzOUsiZsdKHF2IgadpCI/YepEJRWxgUHlV+p5qORYK9 gtMLK3lKXwoDEg1BjqIBMdnz57r/77fxjCjgSlrgrg== X-Google-Smtp-Source: ABdhPJzY1rwjbwWkqwy2UuKK6d2tkc/CQBLSCIceLyN57EMQ+hrC3HPhfSDMIy6lX3dRs8uG1ayE4TekG/pBWzo+2nc= X-Received: by 2002:a4a:bb8a:: with SMTP id h10mr37595488oop.28.1594124026606; Tue, 07 Jul 2020 05:13:46 -0700 (PDT) MIME-Version: 1.0 References: <20200519100649.12053-1-ppaalanen@gmail.com> <20200707113805.30936-1-ppaalanen@gmail.com> In-Reply-To: From: Daniel Vetter Date: Tue, 7 Jul 2020 14:13:35 +0200 Message-ID: Subject: Re: [PATCH v5] drm/doc: device hot-unplug for userspace To: Karol Herbst X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Pekka Paalanen , dri-devel , Alex Deucher , Dave Airlie , Ben Skeggs , Sean Paul Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVHVlLCBKdWwgNywgMjAyMCBhdCAxOjQ5IFBNIEthcm9sIEhlcmJzdCA8a2hlcmJzdEByZWRo YXQuY29tPiB3cm90ZToKPgo+IE9uIFR1ZSwgSnVsIDcsIDIwMjAgYXQgMTozOCBQTSBQZWtrYSBQ YWFsYW5lbiA8cHBhYWxhbmVuQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gRnJvbTogUGVra2Eg UGFhbGFuZW4gPHBla2thLnBhYWxhbmVuQGNvbGxhYm9yYS5jb20+Cj4gPgo+ID4gU2V0IHVwIHRo ZSBleHBlY3RhdGlvbnMgb24gaG93IGhvdC11bnBsdWdnaW5nIGEgRFJNIGRldmljZSBzaG91bGQg bG9vayBsaWtlIHRvCj4gPiB1c2Vyc3BhY2UuCj4gPgo+ID4gV3JpdHRlbiBieSBEYW5pZWwgVmV0 dGVyJ3MgcmVxdWVzdCBhbmQgbGFyZ2VseSBiYXNlZCBvbiBoaXMgY29tbWVudHMgaW4gSVJDIGFu ZAo+ID4gZnJvbSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2 ZWwvMjAyMC1NYXkvMjY1NDg0Lmh0bWwgLgo+ID4KPiA+IEEgcmVsYXRlZCBXYXlsYW5kIHByb3Rv Y29sIGNoYW5nZSBwcm9wb3NhbCBpcyBhdAo+ID4gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Au b3JnL3dheWxhbmQvd2F5bGFuZC1wcm90b2NvbHMvLS9tZXJnZV9yZXF1ZXN0cy8zNQo+ID4KPiA+ IFNpZ25lZC1vZmYtYnk6IFBla2thIFBhYWxhbmVuIDxwZWtrYS5wYWFsYW5lbkBjb2xsYWJvcmEu Y29tPgo+ID4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+Cj4gPiBSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQu Y29tPgo+ID4gQWNrZWQtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3JnPgo+ ID4gQ2M6IEFuZHJleSBHcm9kem92c2t5IDxhbmRyZXkuZ3JvZHpvdnNreUBhbWQuY29tPgo+ID4g Q2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Cj4gPiBDYzogU2VhbiBQYXVsIDxz ZWFuQHBvb3JseS5ydW4+Cj4gPiBDYzogU2ltb24gU2VyIDxjb250YWN0QGVtZXJzaW9uLmZyPgo+ ID4gQ2M6IEJlbiBTa2VnZ3MgPHNrZWdnc2JAZ21haWwuY29tPgo+ID4gQ2M6IEthcm9sIEhlcmJz dCA8a2hlcmJzdEByZWRoYXQuY29tPgo+ID4KPiA+IC0tLQo+ID4KPiA+IFRoaXMgaXMgb25seSBh Ym91dCBsYXlpbmcgb3V0IHBsYW5zIGZvciB0aGUgZnV0dXJlLCBub3QgYWJvdXQgd2hhdAo+ID4g ZHJpdmVycyBkbyB0b2RheS4gV2UnZCBqdXN0IGxpa2UgdG8gYmUgc3VyZSB0aGUgZ29hbHMgYXJl IHJlYXNvbmFibGUgYW5kCj4gPiBldmVyeW9uZSBpcyBhd2FyZSBvZiB0aGUgaWRlYS4KPiA+Cj4g PiBUaGFua3MsCj4gPiBwcQo+ID4KPiA+IHY1Ogo+ID4gLSB0d28gZ3JhbW1hciBmaXhlcyAoQWxl eCkKPiA+IC0gYWRkZWQgUi1iL0EtYiwgZHJvcHBlZCBleHRyYSBDYwo+ID4KPiA+IHY0Ogo+ID4g LSB0d28gdHlwbyBmaXhlcyAoRGFuaWVsKQo+ID4KPiA+IHYzOgo+ID4gLSB1cGRhdGUgRU5PREVW IGRvYyAoRGFuaWVsKQo+ID4gLSBjbGFyaWZ5IGV4aXN0aW5nIHZzLiBuZXcgbW1hcHMgKEFuZHJl eSkKPiA+IC0gc3BsaXQgaW50byBLTVMgYW5kIHJlbmRlci9jcm9zcyBzZWN0aW9ucyAoQW5kcmV5 LCBEYW5pZWwpCj4gPiAtIG9wZW4oKSByZXR1cm5zIEVOWElPIChvcGVuKDIpIG1hbiBwYWdlKQo+ ID4gLSBpb2N0bHMgbWF5IHJldHVybiBFTk9ERVYgKEFuZHJleSwgRGFuaWVsKQo+ID4gLSBuZXcg d2F5bGFuZC1wcm90b2NvbHMgTVIKPiA+Cj4gPiB2MjoKPiA+IC0gbW1hcCByZWFkcy93cml0ZXMg dW5kZWZpbmVkIChEYW5pZWwpCj4gPiAtIG1ha2UgcmVuZGVyIGlvY3RsIGJlaGF2aW91ciBkcml2 ZXItc3BlY2lmaWMgKERhbmllbCkKPiA+IC0gcmVzdHJ1Y3R1cmUgdGhlIG1tYXAgcGFyYWdyYXBo cyAoRGFuaWVsKQo+ID4gLSBjaGFyZGV2IG1pbm9yIG5vdGVzIChTaW1vbikKPiA+IC0gb3BlbiBi ZWhhdmlvdXIgKERhbmllbCkKPiA+IC0gRFJNIGxlYXNpbmcgYmVoYXZpb3VyIChEYW5pZWwpCj4g PiAtIGFkZGVkIGxpbmtzCj4gPgo+ID4gRGlzY2xhaW1lcjogSSBhbSBhIHVzZXJzcGFjZSBkZXZl bG9wZXIgd3JpdGluZyBmb3Igb3RoZXIgdXNlcnNwYWNlIGRldmVsb3BlcnMuCj4gPiBJIHRvb2sg c29tZSBsaWJlcnRpZXMgaW4gZGVmaW5pbmcgd2hhdCBzaG91bGQgaGFwcGVuIHdpdGhvdXQga25v d2luZyB3aGF0IGlzCj4gPiBhY3R1YWxseSBwb3NzaWJsZSBvciB3aGF0IGV4aXN0aW5nIGRyaXZl cnMgYWxyZWFkeSBpbXBsZW1lbnQuCj4gPiAtLS0KPiA+ICBEb2N1bWVudGF0aW9uL2dwdS9kcm0t dWFwaS5yc3QgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAgMSBm aWxlIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPgo+ID4gZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS11YXBpLnJzdCBiL0RvY3VtZW50YXRpb24v Z3B1L2RybS11YXBpLnJzdAo+ID4gaW5kZXggNTZmZWM2ZWQxYWQ4Li45Y2U1MWU0Zjk4ZjQgMTAw NjQ0Cj4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tdWFwaS5yc3QKPiA+ICsrKyBiL0Rv Y3VtZW50YXRpb24vZ3B1L2RybS11YXBpLnJzdAo+ID4gQEAgLTEsMyArMSw1IEBACj4gPiArLi4g Q29weXJpZ2h0IDIwMjAgRGlzcGxheUxpbmsgKFVLKSBMdGQuCj4gPiArCj4gPiAgPT09PT09PT09 PT09PT09PT09PQo+ID4gIFVzZXJsYW5kIGludGVyZmFjZXMKPiA+ICA9PT09PT09PT09PT09PT09 PT09Cj4gPiBAQCAtMTYyLDYgKzE2NCwxMTYgQEAgb3RoZXIgaGFuZCwgYSBkcml2ZXIgcmVxdWly ZXMgc2hhcmVkIHN0YXRlIGJldHdlZW4gY2xpZW50cyB3aGljaCBpcwo+ID4gIHZpc2libGUgdG8g dXNlci1zcGFjZSBhbmQgYWNjZXNzaWJsZSBiZXlvbmQgb3Blbi1maWxlIGJvdW5kYXJpZXMsIHRo ZXkKPiA+ICBjYW5ub3Qgc3VwcG9ydCByZW5kZXIgbm9kZXMuCj4gPgo+ID4gK0RldmljZSBIb3Qt VW5wbHVnCj4gPiArPT09PT09PT09PT09PT09PT0KPiA+ICsKPiA+ICsuLiBub3RlOjoKPiA+ICsg ICBUaGUgZm9sbG93aW5nIGlzIHRoZSBwbGFuLiBJbXBsZW1lbnRhdGlvbiBpcyBub3QgdGhlcmUg eWV0Cj4gPiArICAgKDIwMjAgTWF5KS4KPiA+ICsKPiA+ICtHcmFwaGljcyBkZXZpY2VzIChkaXNw bGF5IGFuZC9vciByZW5kZXIpIG1heSBiZSBjb25uZWN0ZWQgdmlhIFVTQiAoZS5nLgo+ID4gK2Rp c3BsYXkgYWRhcHRlcnMgb3IgZG9ja2luZyBzdGF0aW9ucykgb3IgVGh1bmRlcmJvbHQgKGUuZy4g ZUdQVSkuIEFuIGVuZAo+ID4gK3VzZXIgaXMgYWJsZSB0byBob3QtdW5wbHVnIHRoaXMga2luZCBv ZiBkZXZpY2VzIHdoaWxlIHRoZXkgYXJlIGJlaW5nCj4gPiArdXNlZCwgYW5kIGV4cGVjdHMgdGhh dCB0aGUgdmVyeSBsZWFzdCB0aGUgbWFjaGluZSBkb2VzIG5vdCBjcmFzaC4gQW55Cj4gPiArZGFt YWdlIGZyb20gaG90LXVucGx1Z2dpbmcgYSBEUk0gZGV2aWNlIG5lZWRzIHRvIGJlIGxpbWl0ZWQg YXMgbXVjaCBhcwo+ID4gK3Bvc3NpYmxlIGFuZCB1c2Vyc3BhY2UgbXVzdCBiZSBnaXZlbiB0aGUg Y2hhbmNlIHRvIGhhbmRsZSBpdCBpZiBpdCB3YW50cwo+ID4gK3RvLiBJZGVhbGx5LCB1bnBsdWdn aW5nIGEgRFJNIGRldmljZSBzdGlsbCBsZXRzIGEgZGVza3RvcCBjb250aW51ZSB0bwo+ID4gK3J1 biwgYnV0IHRoYXQgaXMgZ29pbmcgdG8gbmVlZCBleHBsaWNpdCBzdXBwb3J0IHRocm91Z2hvdXQg dGhlIHdob2xlCj4gPiArZ3JhcGhpY3Mgc3RhY2s6IGZyb20ga2VybmVsIGFuZCB1c2Vyc3BhY2Ug ZHJpdmVycywgdGhyb3VnaCBkaXNwbGF5Cj4gPiArc2VydmVycywgdmlhIHdpbmRvdyBzeXN0ZW0g cHJvdG9jb2xzLCBhbmQgaW4gYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMuCj4gPiArCj4gPiAr T3RoZXIgc2NlbmFyaW9zIHRoYXQgc2hvdWxkIGxlYWQgdG8gdGhlIHNhbWUgYXJlOiB1bnJlY292 ZXJhYmxlIEdQVQo+ID4gK2NyYXNoLCBQQ0kgZGV2aWNlIGRpc2FwcGVhcmluZyBvZmYgdGhlIGJ1 cywgb3IgZm9yY2VkIHVuYmluZCBvZiBhIGRyaXZlcgo+ID4gK2Zyb20gdGhlIHBoeXNpY2FsIGRl dmljZS4KPiA+ICsKPiA+ICtJbiBvdGhlciB3b3JkcywgZnJvbSB1c2Vyc3BhY2UgcGVyc3BlY3Rp dmUgZXZlcnl0aGluZyBuZWVkcyB0byBrZWVwIG9uCj4gPiArd29ya2luZyBtb3JlIG9yIGxlc3Ms IHVudGlsIHVzZXJzcGFjZSBzdG9wcyB1c2luZyB0aGUgZGlzYXBwZWFyZWQgRFJNCj4gPiArZGV2 aWNlIGFuZCBjbG9zZXMgaXQgY29tcGxldGVseS4gVXNlcnNwYWNlIHdpbGwgbGVhcm4gb2YgdGhl IGRldmljZQo+ID4gK2Rpc2FwcGVhcmFuY2UgZnJvbSB0aGUgZGV2aWNlIHJlbW92ZWQgdWV2ZW50 LCBpb2N0bHMgcmV0dXJuaW5nIEVOT0RFVgo+ID4gKyhvciBkcml2ZXItc3BlY2lmaWMgaW9jdGxz IHJldHVybmluZyBkcml2ZXItc3BlY2lmaWMgdGhpbmdzKSwgb3Igb3BlbigpCj4gPiArcmV0dXJu aW5nIEVOWElPLgo+ID4gKwo+ID4gK09ubHkgYWZ0ZXIgdXNlcnNwYWNlIGhhcyBjbG9zZWQgYWxs IHJlbGV2YW50IERSTSBkZXZpY2UgYW5kIGRtYWJ1ZiBmaWxlCj4gPiArZGVzY3JpcHRvcnMgYW5k IHJlbW92ZWQgYWxsIG1tYXBzLCB0aGUgRFJNIGRyaXZlciBjYW4gdGVhciBkb3duIGl0cwo+ID4g K2luc3RhbmNlIGZvciB0aGUgZGV2aWNlIHRoYXQgbm8gbG9uZ2VyIGV4aXN0cy4gSWYgdGhlIHNh bWUgcGh5c2ljYWwKPiA+ICtkZXZpY2Ugc29tZWhvdyBjb21lcyBiYWNrIGluIHRoZSBtZWFuIHRp bWUsIGl0IHNoYWxsIGJlIGEgbmV3IERSTQo+ID4gK2RldmljZS4KPiA+ICsKPgo+IEkgZG9uJ3Qg dGhpbmsgd2UgY2FuIG1ha2UgYSBnZW5lcmFsIHN0YXRlbWVudCBsaWtlIHRoaXMuIERyaXZlcnMg bWlnaHQKPiBoYXZlIGt3b3JrZXIgcG9sbGluZyBvbiB0aGUgZGV2aWNlIG9yIG90aGVyIGFzeW5j aHJvbm91cyBvciByZXBlYXRpbmcKPiBqb2JzIGl0IG1pZ2h0IHdhbnQgdG8gZ2V0IHJpZCBvZiBh cyBzb29uIGFzIHBvc3NpYmxlLiBJIHRoaW5rIGl0Cj4gc2hvdWxkIGJlIGZpbmUgZm9yIHRoZSBr ZXJuZWwgZHJpdmVyIHRvIHRlYXIgZG93biB0aGUgaW5zdGFuY2UgYXMgbG9uZwo+IGFzIGl0IGRv ZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgZ29hbCBvZiBzeXN0ZW0gc3RhYmlsaXR5LiBBbmQgdXN1 YWxseQo+IGRyaXZlcnMgaGF2ZSBzb21lIGtlcm5lbCBzaWRlIHN0YXRlIGZvciBjbGllbnRzIGFu eXdheSwgc28gaXQgY291bGQgYmUKPiBoYW5kbGVkIGluIHRoaXMgbGF5ZXIgaW5zdGVhZC4KClRo ZXJlJ3MgdHdvIGNsZWFyIGJpdHM6Ci0gdXNlcnNwYWNlIHN0dWZmIG5lZWRzIHRvIHN0YXkgYXJv dW5kIHVudGlsIHRoZSBsYXN0IHVzZXJzcGFjZSBpcwpnb25lLCBpbmNsdWRpbmcgaW5kaXJlY3Qg cmVmZXJlbmNlcyAoZG1hX2ZlbmNlLCBkbWFfYnVmLCBzdHVmZiBsaWtlCnRoYXQpCi0gaHcgc3R1 ZmYgbXVzdCBiZSByZWxlYXNlZCByaWdodCBhd2F5IGF0IHVuYmluZCB0aW1lIChtbWlvIG1hcHMs CmludGVycnVwdHMsIHRoYXQga2luZHMgb2Ygc3R1ZmYpCgpFdmVyeXRoaW5nIGluLWJldHdlZW4g aXMgYSBiaXQgYSBncmV5IGFyZWEuIFNvbWUgd29ya2VycyB5b3UgbWlnaHQKd2FudCB0byBzdG9w IGF0IHVuYmluZCBhbmQgcmVsZWFzZSwgZm9yIG90aGVycyBpdCBtaWdodCBiZSBlYXNpZXIgdG8K bm90IGNhcmUuIFRoaXMgaXMga2luZGEgYWxsIHVwIHRvIGRyaXZlcnMgYW5kIHdoZXJlIGV4YWN0 bHkgdGhleSBwdXQKZG93biB0aGUgbGluZSBiZXR3ZWVuIHRoZSB1c2Vyc3BhY2UgdmlzaWJsZSBz dyBzdHVmZiBhbmQgdGhlIGh3CnJlbGF0ZWQgYml0cy4KClNpbmNlIHRoZSBhYm92ZSBpcyB0YWxr aW5nIGFib3V0IHRoZSB1YXBpICh0aGlzIGlzIGFuIGFkZGl0aW9uIHRvCmRybS11YXBpLnJzdCkg SSB0aGluayBpdCdzIHRvdGFsbHkgZmluZSB0byBtYWtlIHRoZSBzd2VlcGluZyBnZW5lcmFsCnN0 YXRlbWVudCwgc2luY2UgdGhlIHVhcGkgc3R1ZmYgcmVhbGx5IHNob3VsZCBhbGwgc3RpY2sgYXJv dW5kLCBvcgpzdHVmZiBzdGFydHMgYmxvd2luZyB1cCBhdCByYW5kb20uCi1EYW5pZWwKCj4KPiBP ciBtYXliZSBJIGFtIG92ZXJsb29raW5nIHNvbWV0aGluZyBhbmQgd2UgcmVhbGx5IGNhbid0IGRv IHRoYXQgOi8KPgo+ID4gK1NpbWlsYXIgdG8gUElEcywgY2hhcmRldiBtaW5vciBudW1iZXJzIGFy ZSBub3QgcmVjeWNsZWQgaW1tZWRpYXRlbHkuIEEKPiA+ICtuZXcgRFJNIGRldmljZSBhbHdheXMg cGlja3MgdGhlIG5leHQgZnJlZSBtaW5vciBudW1iZXIgY29tcGFyZWQgdG8gdGhlCj4gPiArcHJl dmlvdXMgb25lIGFsbG9jYXRlZCwgYW5kIHdyYXBzIGFyb3VuZCB3aGVuIG1pbm9yIG51bWJlcnMg YXJlCj4gPiArZXhoYXVzdGVkLgo+ID4gKwo+ID4gK1RoZSBnb2FsIHJhaXNlcyBhdCBsZWFzdCB0 aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBmb3IgdGhlIGtlcm5lbCBhbmQKPiA+ICtkcml2ZXJz Lgo+ID4gKwo+ID4gK1JlcXVpcmVtZW50cyBmb3IgS01TIFVBUEkKPiA+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiArCj4gPiArLSBLTVMgY29ubmVjdG9ycyBtdXN0IGNoYW5nZSB0aGVp ciBzdGF0dXMgdG8gZGlzY29ubmVjdGVkLgo+ID4gKwo+ID4gKy0gTGVnYWN5IG1vZGVzZXRzIGFu ZCBwYWdlZmxpcHMsIGFuZCBhdG9taWMgY29tbWl0cywgYm90aCByZWFsIGFuZAo+ID4gKyAgVEVT VF9PTkxZLCBhbmQgYW55IG90aGVyIGlvY3RscyBlaXRoZXIgZmFpbCB3aXRoIEVOT0RFViBvciBm YWtlCj4gPiArICBzdWNjZXNzLgo+ID4gKwo+ID4gKy0gUGVuZGluZyBub24tYmxvY2tpbmcgS01T IG9wZXJhdGlvbnMgZGVsaXZlciB0aGUgRFJNIGV2ZW50cyB1c2Vyc3BhY2UKPiA+ICsgIGlzIGV4 cGVjdGluZy4gVGhpcyBhcHBsaWVzIGFsc28gdG8gaW9jdGxzIHRoYXQgZmFrZWQgc3VjY2Vzcy4K PiA+ICsKPiA+ICstIG9wZW4oKSBvbiBhIGRldmljZSBub2RlIHdob3NlIHVuZGVybHlpbmcgZGV2 aWNlIGhhcyBkaXNhcHBlYXJlZCB3aWxsCj4gPiArICBmYWlsIHdpdGggRU5YSU8uCj4gPiArCj4g PiArLSBBdHRlbXB0aW5nIHRvIGNyZWF0ZSBhIERSTSBsZWFzZSBvbiBhIGRpc2FwcGVhcmVkIERS TSBkZXZpY2Ugd2lsbAo+ID4gKyAgZmFpbCB3aXRoIEVOT0RFVi4gRXhpc3RpbmcgRFJNIGxlYXNl cyByZW1haW4gYW5kIHdvcmsgYXMgbGlzdGVkCj4gPiArICBhYm92ZS4KPiA+ICsKPiA+ICtSZXF1 aXJlbWVudHMgZm9yIFJlbmRlciBhbmQgQ3Jvc3MtRGV2aWNlIFVBUEkKPiA+ICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICsKPiA+ICstIEFsbCBHUFUg am9icyB0aGF0IGNhbiBubyBsb25nZXIgcnVuIG11c3QgaGF2ZSB0aGVpciBmZW5jZXMKPiA+ICsg IGZvcmNlLXNpZ25hbGxlZCB0byBhdm9pZCBpbmZsaWN0aW5nIGhhbmdzIG9uIHVzZXJzcGFjZS4K PiA+ICsgIFRoZSBhc3NvY2lhdGVkIGVycm9yIGNvZGUgaXMgRU5PREVWLgo+ID4gKwo+ID4gKy0g U29tZSB1c2Vyc3BhY2UgQVBJcyBhbHJlYWR5IGRlZmluZSB3aGF0IHNob3VsZCBoYXBwZW4gd2hl biB0aGUgZGV2aWNlCj4gPiArICBkaXNhcHBlYXJzIChPcGVuR0wsIEdMIEVTOiBgR0xfS0hSX3Jv YnVzdG5lc3NgXzsgYFZ1bGthbmBfOgo+ID4gKyAgVktfRVJST1JfREVWSUNFX0xPU1Q7IGV0Yy4p LiBEUk0gZHJpdmVycyBhcmUgZnJlZSB0byBpbXBsZW1lbnQgdGhpcwo+ID4gKyAgYmVoYXZpb3Vy IHRoZSB3YXkgdGhleSBzZWUgYmVzdCwgZS5nLiByZXR1cm5pbmcgZmFpbHVyZXMgaW4KPiA+ICsg IGRyaXZlci1zcGVjaWZpYyBpb2N0bHMgYW5kIGhhbmRsaW5nIHRob3NlIGluIHVzZXJzcGFjZSBk cml2ZXJzLCBvcgo+ID4gKyAgcmVseSBvbiB1ZXZlbnRzLCBhbmQgc28gb24uCj4gPiArCj4gPiAr LSBkbWFidWYgd2hpY2ggcG9pbnQgdG8gbWVtb3J5IHRoYXQgaGFzIGRpc2FwcGVhcmVkIHdpbGwg ZWl0aGVyIGZhaWwgdG8KPiA+ICsgIGltcG9ydCB3aXRoIEVOT0RFViBvciBjb250aW51ZSB0byBi ZSBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaWYgaXQgd291bGQKPiA+ICsgIGhhdmUgc3VjY2VlZGVk IGJlZm9yZSB0aGUgZGlzYXBwZWFyYW5jZS4gU2VlIGFsc28gYWJvdXQgbWVtb3J5IG1hcHMKPiA+ ICsgIGJlbG93IGZvciBhbHJlYWR5IGltcG9ydGVkIGRtYWJ1ZnMuCj4gPiArCj4gPiArLSBBdHRl bXB0aW5nIHRvIGltcG9ydCBhIGRtYWJ1ZiB0byBhIGRpc2FwcGVhcmVkIGRldmljZSB3aWxsIGVp dGhlciBmYWlsCj4gPiArICB3aXRoIEVOT0RFViBvciBzdWNjZWVkIGlmIGl0IHdvdWxkIGhhdmUg c3VjY2VlZGVkIHdpdGhvdXQgdGhlCj4gPiArICBkaXNhcHBlYXJhbmNlLgo+ID4gKwo+ID4gKy0g b3BlbigpIG9uIGEgZGV2aWNlIG5vZGUgd2hvc2UgdW5kZXJseWluZyBkZXZpY2UgaGFzIGRpc2Fw cGVhcmVkIHdpbGwKPiA+ICsgIGZhaWwgd2l0aCBFTlhJTy4KPiA+ICsKPiA+ICsuLiBfR0xfS0hS X3JvYnVzdG5lc3M6IGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L09wZW5HTC9leHRl bnNpb25zL0tIUi9LSFJfcm9idXN0bmVzcy50eHQKPiA+ICsuLiBfVnVsa2FuOiBodHRwczovL3d3 dy5raHJvbm9zLm9yZy92dWxrYW4vCj4gPiArCj4gPiArUmVxdWlyZW1lbnRzIGZvciBNZW1vcnkg TWFwcwo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICsKPiA+ICtNZW1vcnkg bWFwcyBoYXZlIGZ1cnRoZXIgcmVxdWlyZW1lbnRzIHRoYXQgYXBwbHkgdG8gYm90aCBleGlzdGlu ZyBtYXBzCj4gPiArYW5kIG1hcHMgY3JlYXRlZCBhZnRlciB0aGUgZGV2aWNlIGhhcyBkaXNhcHBl YXJlZC4gSWYgdGhlIHVuZGVybHlpbmcKPiA+ICttZW1vcnkgZGlzYXBwZWFycywgdGhlIG1hcCBp cyBjcmVhdGVkIG9yIG1vZGlmaWVkIHN1Y2ggdGhhdCByZWFkcyBhbmQKPiA+ICt3cml0ZXMgd2ls bCBzdGlsbCBjb21wbGV0ZSBzdWNjZXNzZnVsbHkgYnV0IHRoZSByZXN1bHQgaXMgdW5kZWZpbmVk Lgo+ID4gK1RoaXMgYXBwbGllcyB0byBib3RoIHVzZXJzcGFjZSBtbWFwKCknZCBtZW1vcnkgYW5k IG1lbW9yeSBwb2ludGVkIHRvIGJ5Cj4gPiArZG1hYnVmIHdoaWNoIG1pZ2h0IGJlIG1hcHBlZCB0 byBvdGhlciBkZXZpY2VzIChjcm9zcy1kZXZpY2UgZG1hYnVmCj4gPiAraW1wb3J0cykuCj4gPiAr Cj4gPiArUmFpc2luZyBTSUdCVVMgaXMgbm90IGFuIG9wdGlvbiwgYmVjYXVzZSB1c2Vyc3BhY2Ug Y2Fubm90IHJlYWxpc3RpY2FsbHkKPiA+ICtoYW5kbGUgaXQuIFNpZ25hbCBoYW5kbGVycyBhcmUg Z2xvYmFsLCB3aGljaCBtYWtlcyB0aGVtIGV4dHJlbWVseQo+ID4gK2RpZmZpY3VsdCB0byB1c2Ug Y29ycmVjdGx5IGZyb20gbGlicmFyaWVzIGxpa2UgdGhvc2UgdGhhdCBNZXNhIHByb2R1Y2VzLgo+ ID4gK1NpZ25hbCBoYW5kbGVycyBhcmUgbm90IGNvbXBvc2FibGUsIHlvdSBjYW4ndCBoYXZlIGRp ZmZlcmVudCBoYW5kbGVycwo+ID4gK2ZvciBHUFUxIGFuZCBHUFUyIGZyb20gZGlmZmVyZW50IHZl bmRvcnMsIGFuZCBhIHRoaXJkIGhhbmRsZXIgZm9yCj4gPiArbW1hcHBlZCByZWd1bGFyIGZpbGVz LiBUaHJlYWRzIGNhdXNlIGFkZGl0aW9uYWwgcGFpbiB3aXRoIHNpZ25hbAo+ID4gK2hhbmRsaW5n IGFzIHdlbGwuCj4gPiArCj4gPiAgLi4gX2RybV9kcml2ZXJfaW9jdGw6Cj4gPgo+ID4gIElPQ1RM IFN1cHBvcnQgb24gRGV2aWNlIE5vZGVzCj4gPiBAQCAtMTk5LDcgKzMxMSw3IEBAIEVQRVJNL0VB Q0NFUzoKPiA+ICAgICAgICAgIGRpZmZlcmVuY2UgYmV0d2VlbiBFQUNDRVMgYW5kIEVQRVJNLgo+ ID4KPiA+ICBFTk9ERVY6Cj4gPiAtICAgICAgICBUaGUgZGV2aWNlIGlzIG5vdCAoeWV0KSBwcmVz ZW50IG9yIGZ1bGx5IGluaXRpYWxpemVkLgo+ID4gKyAgICAgICAgVGhlIGRldmljZSBpcyBub3Qg cHJlc2VudCBhbnltb3JlIG9yIGlzIG5vdCB5ZXQgZnVsbHkgaW5pdGlhbGl6ZWQuCj4gPgo+ID4g IEVPUE5PVFNVUFA6Cj4gPiAgICAgICAgICBGZWF0dXJlIChsaWtlIFBSSU1FLCBtb2Rlc2V0dGlu ZywgR0VNKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIuCj4gPiAtLQo+ID4gMi4yMC4x Cj4gPgo+CgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=