From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heikki Krogerus Subject: Re: [PATCH 0/3] Propagate DP-over-Type-C hotplug events from Type-C subsys to drm-drivers Date: Thu, 28 Feb 2019 16:47:43 +0200 Message-ID: <20190228144743.GA8623@kuha.fi.intel.com> References: <20190225132037.31458-1-hdegoede@redhat.com> <20190227105546.GF27730@kuha.fi.intel.com> <87o96xo510.fsf@intel.com> <14e6877b-eb78-f331-6e54-572f7d8e8535@redhat.com> <20190228091529.GH27730@kuha.fi.intel.com> <78ed689c-c254-3c16-d056-2cb2eb220fdf@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <78ed689c-c254-3c16-d056-2cb2eb220fdf@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Hans de Goede Cc: linux-usb@vger.kernel.org, Maxime Ripard , Greg Kroah-Hartman , intel-gfx , David Airlie , Sean Paul , dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SGkgSGFucywKCk9uIFRodSwgRmViIDI4LCAyMDE5IGF0IDEyOjI0OjI1UE0gKzAxMDAsIEhhbnMg ZGUgR29lZGUgd3JvdGU6Cj4gSGksCj4gCj4gT24gMjgtMDItMTkgMTA6MTUsIEhlaWtraSBLcm9n ZXJ1cyB3cm90ZToKPiA+IE9uIFdlZCwgRmViIDI3LCAyMDE5IGF0IDA0OjQ1OjMyUE0gKzAxMDAs IEhhbnMgZGUgR29lZGUgd3JvdGU6Cj4gPiA+IEhpLAo+ID4gPiAKPiA+ID4gT24gMjctMDItMTkg MTI6MTYsIEphbmkgTmlrdWxhIHdyb3RlOgo+ID4gPiA+IE9uIFdlZCwgMjcgRmViIDIwMTksIEhl aWtraSBLcm9nZXJ1cyA8aGVpa2tpLmtyb2dlcnVzQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4g PiA+ID4gPiBPbmUgdGhpbmcgdGhhdCB0aGlzIHNlcmllcyBkb2VzIG5vdCBjb25zaWRlciBpcyB0 aGUgRFAgbGFuZSBjb3VudAo+ID4gPiA+ID4gcHJvYmxlbS4gVGhlIEdQVSBkcml2ZXJzIChpOTE1 IGluIHRoaXMgY2FzZSkgZG9lcyBub3Qga25vdyBpcyBmb3VyLAo+ID4gPiA+ID4gdHdvIG9yIG9u ZSBEUCBsYW5lcyBpbiB1c2UuCj4gPiA+ID4gCj4gPiA+ID4gQWxzbywgb3JpZW50YXRpb24uCj4g PiA+IAo+ID4gPiBUaGUgb3JpZW50YXRpb24gc2hvdWxkIHNpbXBseSBiZSBjb3JyZWN0IHdpdGgg VHlwZS1DIG92ZXIgRFAuIFRoZSBtdXggLwo+ID4gPiBvcmllbnRhdGlvbi1zd2l0Y2ggdXNlZCB3 aWxsIHRha2UgY2FyZSBvZiAocGh5c2ljYWxseSkgc3dhcHBpbmcgdGhlCj4gPiA+IGxhbmVzIGlm IHRoZSBjb25uZWN0b3IgaXMgaW5zZXJ0ZWQgdXBzaWRlLWRvd24uCj4gPiA+IAo+ID4gPiA+ID4g SSBndWVzcyB0aGF0IGlzIG5vdCBhIGNyaXRpY2FsIGlzc3VlIHNpbmNlIHRoZXJlIGlzIGEgd29y a2Fyb3VuZCAoSQo+ID4gPiA+ID4gdGhpbmspIHdoZXJlIHRoZSBkcml2ZXIgYmFzaWNhbGx5IGRv ZXMgdHJpYWwgYW5kIGVycm9yLCBidXQgaWRlYWxseSB3ZQo+ID4gPiA+ID4gc2hvdWxkIGJlIGFi bGUgdG8gdGVsbCBpOTE1IGFsc28gdGhlIHBpbiBhc3NpZ25tZW50IHRoYXQgd2FzCj4gPiA+ID4g PiBuZWdvdGlhdGVkIHdpdGggdGhlIHBhcnRuZXIgZGV2aWNlIHNvIGl0IGtub3dzIHRoZSBEUCBs YW5lIGNvdW50Lgo+ID4gPiA+IAo+ID4gPiA+IFllYWgsIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyB0 aGVyZSwgd2UnZCBsaWtlIHRvIGtub3cuCj4gPiA+IAo+ID4gPiBTbyBmYXIgbWFjaGluZXMgYWN0 dWFsbHkgdXNpbmcgYSBzZXR1cCB3aGVyZSB0aGUga2VybmVsIGRvZXMgdGhlCj4gPiA+IFVTQi1Q RCAvIFR5cGUtQyBuZWdvdGlhdGlvbiByYXRoZXIgdGhlbiB0aGlzIGJlaW5nIGhhbmRsZWQgaW4g ZmlybXdhcmUKPiA+ID4gaW4gc2F5IHRoZSBBbHBpbmUgUmlkZ2UgY29udHJvbGxlciwgYXJlIHZl cnkgcmFyZS4KPiA+ID4gCj4gPiA+IEFGQUlLIGluIHRoZSBBbHBpbmUgUmlkZ2UgY29udHJvbGxl ciBjYXNlLCB0aGVyZSBpcyBubyBjb21tdW5pY2F0aW9uCj4gPiA+IHdpdGggdGhlIGk5MTUgZHJp dmVyLCB0aGUgb25seSB0aGluZyB0aGUgQWxwaW5lIFJpZGdlIGNvbnRyb2xsZXIgZG9lcwo+ID4g PiB3aGljaCB0aGUgZXZlcnl0aGluZyBkb25lIGluIHRoZSBrZXJuZWwgYXBwcm9hY2ggZG9lcyBu b3QsIGlzIHRoYXQKPiA+ID4gaXQgYWN0dWFsbHkgaGFzIGEgcGluIGNvbm5lY3RlZCB0byB0aGUg SERQIHBpbiBvZiB0aGUgZGlzcGxheXBvcnQgaW4KPiA+ID4gcXVlc3Rpb24uICBCdXQgdGhhdCBq dXN0IGxldHMgdGhlIGk5MTUgZHJpdmVyIGtub3cgYWJvdXQgaG90cGx1Zy1ldmVudHMsCj4gPiA+ IG5vdCBob3cgbWFueSBsYW5lcyBhcmUgdXNlZC4KPiA+ID4gCj4gPiA+IEN1cnJlbnRseSBJJ20g YXdhcmUgb2Ygb25seSAyIHg4NiBtb2RlbHMgd2hpY2ggYWN0dWFsbHkgbmVlZCB0aGUKPiA+ID4g aG90cGx1ZyBldmVudCBwcm9wYWdhdGlvbiBmcm9tIHRoZSBUeXBlLUMgc3Vic3lzdGVtIHRvIHRo ZSBpOTE1IGRyaXZlci4KPiA+ID4gRG8gd2UgcmVhbGx5IHdhbnQgdG8gY29tZSB1cCB3aXRoIGEg bXVjaCBtb3JlIGNvbXBsZXggc29sdXRpb24gdG8KPiA+ID4gb3B0aW1pemUgZm9yIHRoaXMgY29y bmVyIGNhc2UsIHdoaWxlIHRoZSBtdWNoIG1vcmUgY29tbW9uIGNhc2UKPiA+ID4gKEFscGluZSBS aWRnZSBjb250cm9sbGVyKSBkb2VzIG5vdCBwcm92aWRlIHRoaXMgaW5mbyB0byB0aGUgaTkxNSBk cml2ZXI/Cj4gPiAKPiA+IFRoZSBIUEQgc2lnbmFsIGlzIG9mdGVuIGhhbmRsZWQgd2l0aCBhIEdQ SU8gb24gSW50ZWwgUGxhdGZvcm1zLiBFaXRoZXIKPiA+IHRoZSBQRCBjb250cm9sbGVyIG9yIEVD IGNvbnRyb2xsZXIsIGFmdGVyIHJlY2VpdmluZyB0aGUgQXR0ZW50aW9uCj4gPiBtZXNzYWdlLCB0 cmlnZ2VycyB0aGUgR1BJTy4gT24gc29tZSBzeXN0ZW1zIHRob3VnaCB0aGF0IEdQSU8gbWV0aG9k Cj4gPiBjb3VsZCBub3QgYmUgdXNlZCwgc28gaW5zdGVhZCBhIHNpZGUgY2hhbm5lbCBjb21tdW5p Y2F0aW9uIGlzIHVzZWQ6Cj4gPiB0aGUgR0ZYIGRldmljZSAoc28gaTkxNSBkcml2ZXIpIHJlY2Vp dmVzIGEgc3BlY2lmaWMgY3VzdG9tIGludGVycnVwdC4KPiA+IAo+ID4gVW5mb3J0dW5hdGVseSBp dCBub3cgYXBwZWFycyB0aGF0IHRoZXJlIG1heSBiZSBwcm9kdWN0cyBjb21pbmcgd2hlcmUKPiA+ IHVzaW5nIHRoZSBHUElPIGlzIG5vdCBnb2luZyB0byBiZSBwb3NzaWJsZSwgYW5kIGFsc28gc2lk ZSBjaGFubmVsCj4gPiBjb21tdW5pY2F0aW9uIGlzIGdvaW5nIHRvIGJlIG91dCBvZiB0aGUgcXVl c3Rpb24uIEkndmUgc3RhcnRlZCBhbgo+ID4gaW50ZXJuYWwgZGlzY3Vzc2lvbiBpbnNpZGUgSW50 ZWwgYWJvdXQgdGhlIHBvc3NpYmlsaXR5IHRvIGV4dGVuZCB0aGUKPiA+IFVDU0kgc3BlY2lmaWNh dGlvbiB0byBiZSBhYmxlIHRvIHN1cHBvcnQgdGhhdCBraW5kIG9mIHByb2R1Y3RzLgo+ID4gCj4g PiBBbHBpbmUgUmlkZ2UgdXNlcyBUSSdzIFBvd2VyIERlbGl2ZXJ5IGNvbnRyb2xsZXJzLiBUaGUg cGxhdGZvcm1zIHRoYXQKPiA+IGhhdmUgQWxwaW5lIFJpZGdlIFRCVCBjb250cm9sbGVyKHMpIG9m dGVuIGV4cG9zZSB0aGUgVVNCIFR5cGUtQwo+ID4gY29ubmVjdG9ycyBvbiB0aGVtIHRvIHRoZSBP UyB2aWEgVUNTSSwgaG93ZXZlciwgaXQgYXBwZWFycyB0aGUgQWxwaW5lCj4gPiBSaWRnZSBhY3R1 YWxseSBhbGxvd3MgZGlyZWN0IGFjY2VzcyB0byB0aGUgUEQgY29udHJvbGxlcnMgZnJvbSB0aGUg T1MuCj4gPiBUaGF0IHdvdWxkIG1lYW4gd2UgY2FuIHN1cHBseSB0aGUgc2FtZSBpbmZvcm1hdGlv biB0byB0aGUgR1BVIGRyaXZlcnMKPiA+IHRoYXQgd2Ugd2lsbCBkZWxpdmVyIG9uIENIVCBhbHNv IG9uIGV2ZXJ5IHBsYXRmb3JtIHRoYXQgdXNlcyBBbHBpbmUKPiA+IFJpZGdlLgo+IAo+IE9rLgo+ IAo+ID4gPiBUbyBnaXZlIHNvbWUgaWRlYSBvZiB0aGUgY29tcGxleGl0eSwgZmlyc3Qgb2YgYWxs IHdlIG5lZWQgc29tZQo+ID4gPiBtZWNoYW5pc20gdG8gbGV0IHRoZSBrZXJuZWwga25vdyB3aGlj aCBkcm1fY29ubmVjdG9yIGlzIGNvbm5lY3RlZAo+ID4gPiB0byB3aGljaCBUeXBlLUMgcG9ydC4g Rm9yIHRoZSAyIG1vZGVscyBJIGtub3cgaWYgd2hpY2ggbmVlZCB0aGlzLCB0aGlzCj4gPiA+IGlu Zm8gaXMgbm90IGF2YWlsYWJsZSBhbmQgd2Ugd291bGQgbmVlZCB0byBoYXJkY29kZSBpdCBpbiB0 aGUga2VybmVsCj4gPiA+IGJhc2VkIG9uIGUuZy4gRE1JIG1hdGNoaW5nLgo+ID4gCj4gPiBJJ3Zl IGJlZW4gdGhpbmtpbmcgYWJvdXQgdGhpcy4uLiBEbyB3ZSBhY3R1YWxseSBuZWVkIHRvIGxpbmsg dGhlCj4gPiBjb3JyZWN0IGRybV9jb25uZWN0b3IgdG8gdGhlIFR5cGUtQyBjb25uZWN0b3I/IFBl cmhhcHMgd2UgY2FuIG1ha2UKPiA+IHRoaXMgd29yayBieSBqdXN0IGxpbmtpbmcgdGhlIEdGWCBk ZXZpY2UgdG8gdGhlIFR5cGUtQyBjb25uZWN0b3IuCj4gCj4gV2hhdCB1c2UgaXMgaXQgdG8gdGhl IGttcyBkcml2ZXIgaWYgaXQgZ2V0cyBhbiBldmVudCB0aGVyZSBpcyBhIERQCj4gaG90cGx1ZyB3 aXRoIHggbGFuZXMgYW5kIG9yaWVudGF0aW9uIGZvbywgaWYgd2UgYXJlIG5vdCB0ZWxsaW5nIGl0 Cj4gb24gd2hpY2ggRFAgcG9ydCBpdCBpcyA/IGttcyBkZXZpY2VzIGFscmVhZHkgaGF2ZSBtdWx0 aXBsZSBEUCBwb3J0cwo+IGFuZCBtb3JlIHRoZW4gb25lIGNvdWxkIGJlIGhvb2tlZC11cCB0byB0 eXBlLWMgY29ubmVjdG9ycy4KCkkgd2FzIGxvb2tpbmcgYXQgdGhpcyBzZXJpZXMuIFlvdSB3YWxr IHRyb3VnaCBldmVyeSBEUCBwb3J0IGluIHRoZQpzeXN0ZW0gd2hlbiB0aGUgRFAgYWx0IG1vZGUg ZHJpdmVyIGJyb2FkY2FzdHMgdGhlIGV2ZW50LCBidXQgbWF5YmUKdGhhdCdzIGRpZmZlcmVudC4g TmV2ZXIgbWluZC4KCj4gPiA+IFRoZW4gb25jZSB3ZSBoYXZlIHRoaXMgbGluaywgd2UgbmVlZCB0 byBzdGFydCB0aGlua2luZyBhYm91dCBwcm9iZQo+ID4gPiBvcmRlcmluZy4gTGlrZWx5IHdlIG5l ZWQgdGhlIHR5cGVjIGZyYW1ld29yayB0byBmaW5kIHRoZSBkcm1fY29ubmVjdG9yLAo+ID4gPiBz aW5jZSB0aGUgdHlwZWMtcGFydG5lciBkZXZpY2UgaXMgb25seSBjcmVhdGVkIHdoZW4gdGhlcmUg YWN0dWFsbHkgaXMKPiA+ID4gYSBEUCBjYXBhYmxlICJkb25nbGUiIGNvbm5lY3RlZCwgbWFraW5n IGRvaW5nIGl0IHRoZSBvdGhlciB3YXkgYXJvdW5kCj4gPiA+IHRyaWNreS4gVGhlbiB0aGUgdHlw ZWMtcGFydG5lciBkZXZpY2UgbmVlZHMgdG8gZ2V0IGEgcmVmZXJlbmNlIG9yIHNvbWUKPiA+ID4g c3VjaCB0byBtYWtlIHN1cmUgdGhlIGRybV9jb25uZWN0b3IgZG9lcyBub3QgZmdvIGF3YXkgZHVy aW5nIHRoZSBsaWZldGltZQo+ID4gPiBvZiB0aGUgdHlwZWMtcGFydG5lciBkZXZpY2UuCj4gPiAK PiA+IE5vISBXZSBtdXN0IG5vdCBsaW5rIHRoZSBwYXJ0bmVyIGRldmljZSB3aXRoIGFueXRoaW5n IG90aGVyIHRoYW4gdGhlCj4gPiBUeXBlLUMgY29ubmVjdG9yLiBXZSBsaW5rIHRoZSBVU0IgVHlw ZS1DIGNvbm5lY3RvciB0byB0aGUgRGlzcGxheVBvcnQsCj4gPiBhbmQgd2UgbGluayB0aGUgVVNC IFR5cGUtQyBjb25uZWN0b3IgdG8gdGhlIHBhcnRuZXIuIFRoZSBUeXBlLUMKPiA+IGNvbm5lY3Rv ciBpcyB0aGUgcHJveHkgaGVyZS4KPiAKPiBNYXliZSwgYnV0IGV2ZW4gdGhlbiB3ZSBzdGlsbCBu ZWVkIG9uZSBzaWRlIG9mIHRoZSBsaW5rIHRvIGhhdmUgYQo+IHJlZmVyZW5jZSBvbiB0aGUgb3Ro ZXIsIGhhdmluZyBhIHByb3h5IGluIGJldHdlZW4gZG9lcyBub3QgY2hhbmdlCj4gYW55dGhpbmcu Cj4gCj4gPiA+IEkgd291bGQgcmVhbGx5IGxpa2UgdG8gYXZvaWQgdGhpcywgc28gaWYgd2Ugd2Fu dCB0byBzZW5kIG1vcmUgaW5mbyB0bwo+ID4gPiB0aGUgaTkxNSBkcml2ZXIsIEkgc3VnZ2VzdCB3 ZSBjcmVhdGUgc29tZSBldmVudCBzdHJ1Y3QgZm9yIHRoaXMgd2hpY2gKPiA+ID4gZ2V0cyBwYXNz ZWQgdG8gdGhlIG5vdGlmaWVyLCB0aGlzIGNvdWxkIGluY2x1ZGUgYSBzdHJpbmcgdG8KPiA+ID4g ZGVzY3JpYmUgdGhlIERQIGNvbm5lY3RvciB3aGljaCB0aGUgVHlwZS1DIGNvbm5lY3RvciBpcyBj b25uZWN0ZWQgdG8KPiA+ID4gd2hlbiB0aGUgbXV4IGlzIHNldCB0byBEUCBtb2RlLCBlLmcuICJp OTE1L0RQLTEiIHNob3VsZCBiZSB1bmlxdWUKPiA+ID4gb3IgcHJvYmFibHkgYmV0dGVyLCB1c2Ug dGhlIFBDSSBkZXZpY2UgbmFtZSwgc286ICIwMDAwOjAwOjAyLjAvRFAtMSIKPiA+ID4gCj4gPiA+ IFRoZW4gd2Ugc3RpbGwgaGF2ZSBhIGxvb3NlIGNvdXBsaW5nIGF2b2lkaW5nIGxpZmV0aW1lIGlz c3Vlcywgd2hpbGUKPiA+ID4gdGhlIHJlY2VpdmluZyBkcm0gZHJpdmVyIGNhbiBjaGVjayB3aGlj aCBjb25uZWN0b3IgdGhlIGV2ZW50IGlzIGZvcgo+ID4gPiBhbmQgd2UgY2FuIHRoZW4gYWxzbyBp bmNsdWRlIG90aGVyIGluZm8gc3VjaCBhcyBsYW5lLWNvdW50IGFuZCBvcmllbnRhdGlvbgo+ID4g PiBpbiB0aGUgZXZlbnQgc3RydWN0Lgo+ID4gCj4gPiBXZWxsLCBJIGRvbid0IHRoaW5rIHdlIGNh biBkZW55IHRoZSBHUFUgZHJpdmVyIChpbiB0aGlzIGNhc2UpIHRoZQo+ID4gaW5mb3JtYXRpb24g dGhhdCB3ZSBoYXZlIGFuZCB0aGF0IGlzIHJlbGV2YW50IHRvIGl0LCBqdXN0IGJlY2F1c2UgaXQK PiA+IHNlZW1zIGRpZmZpY3VsdCB0byBkZWxpdmVyIHRoYXQgaW5mb3JtYXRpb24gdG8gdGhlIHJp Z2h0IGxvY2F0aW9uLgo+IAo+IFJpZ2h0LCBidXQgdGhpcyBkb2VzIG5vdCByZXF1aXJlIGEgdGln aHQtY291cGxpbmcuIE15IG9yaWdpbmFsCj4gcHJvcG9zYWwgY2FuIGRvIHRoaXMgaWYgd2UgcGFz cyBhIGRhdGEgc3RydWN0IHdpdGggYW4gaWRlbnRpZmllcgo+IGZvciB0aGUgRFAgcG9ydCBmb3Ig d2hpY2ggdGhlIGV2ZW50IGlzIHRvIHRoZSBub3RpZmllci4gSSBzdWdnZXN0IHVzaW5nCj4gYSBz dHJpbmcgZm9yIGlkZW50aWZpZXIsIHNvbWV0aGluZyBsaWtlOiAiMDAwMDowMDowMi4wL0RQLTEi IHRoaXMKPiBldmVudCBzdHJ1Y3QgY291bGQgdGhlbiBhbHNvIGNvbnRhaW4gYWxsIHRoZSBpbmZv IHdlIHdhbnQgdG8gcGFzcy4KCkkgZG8gYWdyZWUgdGhhdCB3ZSBzaG91bGQgbm90IHRpZSB0aGUg b2JqZWN0cyAoZGV2aWNlIGVudHJpZXMpCnJlcHJlc2VudGluZyB0aGVzZSBjb21wb25lbnRzIGlu IGtlcm5lbCB0b2dldGhlciwgYnV0IEkgYXNzdW1lIHRoYXQgd2UKYWdyZWUgbm93IHRoYXQgdGhl IGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgdHdvIC0gdGhlIFVTQiBUeXBlLUMKY29ubmVjdG9yIGFu ZCB0aGUgRGlzcGxheVBvcnQgLSBtdXN0IGJlIGRlc2NyaWJlZCBzb21ld2hlcmUsIGVpdGhlciBp bgpmaXJtd2FyZSBvciBidWlsZC1pbj8gU28gSSBndWVzcyB3ZSBhcmUgdGFsa2luZyBpbXBsZW1l bnRhdGlvbiBkZXRhaWxzCmhlcmUsIHJpZ2h0PwoKSWYgdGhhdCBpcyB0aGUgY2FzZS4uLgoKVGhh dCBzdHJpbmcgaWRlbnRpZmllciB5b3UgcHJvcG9zZWQgd291bGQgYmFzaWNhbGx5IHByb3ZpZGUg dGhlCmRldGFpbHMgYWJvdXQgdGhlIGNvbm5lY3Rpb24sIHNvIGlmIHdlIGtub3cgdGhvc2UgZGV0 YWlscywgd2UgbWlnaHQgYXMKd2VsbCB1c2UgIm5vcm1hbCIgd2F5cyB0byBkZXNjcmliZSB0aGUg Y29ubmVjdGlvbiBhbmQganVzdCBleHRyYWN0CnRoZW0gaW4gcnVudGltZSBpbiB0aGUgZnVuY3Rp b24gdGhhdCBvdXIgRFAgYWx0IG1vZGUgZHJpdmVyIGNhbGxzLiBJCnRoaW5rIHRoZSBjb25uZWN0 aW9uIGhhcyB0byBiZSBkZWZpbmVkIGluIGk5MTUgb24gQ0hUIGluIGFueSBjYXNlLgoKVGhlIERQ IGFsdCBtb2RlIGRyaXZlciBzaG91bGQgZGVmaW5pdGVseSBub3QgbmVlZCB0byBwYXNzIGFueXRo aW5nCmVsc2UgdG8gdGhlIG5vdGlmaWVyIG90aGVyIHRoYW4gaGFuZGxlIHRvIGl0c2VsZiAoYWN0 dWFsbHksIGhhbmRsZQpzdHJhaWdodCB0byB0aGUgcG9ydCBkZXZpY2Ugd291bGQgYmUgYmV0dGVy KSBhcyBhbiBpZGVudGlmaWVyLiBUaGUKbm90aWZpZXIgZnVuY3Rpb24gbmVlZHMgdG8gYmUgdGhl IG9uZSB0aGF0IGRldGVybWluZXMgdGhlIGFjdHVhbApjb25uZWN0aW9uIHVzaW5nIHRoYXQgaGFu ZGxlLiBFdmVuIGlmIHRoZSB0YXJnZXQgRFAgaXMgZGVzY3JpYmVkIHVzaW5nCmEgc3RyaW5nIGxp a2UgeW91IHByb3Bvc2UsIHRoZW4gdGhhdCBzdHJpbmcgaGFzIHRvIGNvbWUgZnJvbQpzb21ld2hl cmUsIG1vc3QgbGlrZWx5IGZyb20gYSBkZXZpY2UgcHJvcGVydHkuIFRoZSBub3RpZmllciBmdW5j dGlvbgpjYW4ganVzdCBhcyB3ZWxsIGV4dHJhY3QgaXQsIHdlIGRvbid0IG5lZWQgdG8gcGFzcyBp dCBzZXBhcmF0ZWx5LgoKSGVyZSdzIG15IHN1Z2dlc3Rpb24gZm9yIGZ1bmN0aW9uIHByb3RvdHlw ZToKCmludCBkcm1fdHlwZWNfZHBfbm90aWZpY2F0aW9uKHN0cnVjdCBkZXZpY2UgKnR5cGVjX3Bv cnRfZGV2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZWNfZGlzcGxh eXBvcnRfZGF0YSAqZGF0YSk7CgpTbyB0aGF0IGZ1bmN0aW9uIGZpbmRzIHRoZSBjb25uZWN0aW9u IGJldHdlZW4gdHlwZWNfcG9ydF9kZXYgYW5kIHRoZQpjb3JyZWN0IERQIGluIHJ1bnRpbWUsIHBv c3NpYmx5IGJ5IGxldHRpbmcgaTkxNSAob3Igd2hhdCBldmVyIEdQVQpkcml2ZXIpIHRvIGRvIHRo YXQuIE9uY2UgdGhlIGZ1bmN0aW9uIGlzIGRvbmUsIGl0IGRlY3JlbWVudHMgYW55IHJlZgpjb3Vu dHMgdGhhdCBpdCBpbmNyZW1lbnRlZCBiZWZvcmUgcmV0dXJuaW5nLgoKVGhhdCBzdHJ1Y3QgdHlw ZWNfZGlzcGxheXBvcnRfZGF0YSBoYXMgYWxsIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIC0KdGhl IGN1cnJlbnQgcGluIGFzc2lnbm1lbnQgZnJvbSB0aGUgQ29uZmlndXJlIFZETywgSFBEIElSUSBm cm9tIHRoZQpsYXN0IFN0YXR1cyBVcGRhdGUsIGV0Yy4gLSBzbyBpdCBuZWVkcyB0byBiZSBwYXNz ZWQgYXMgcGF5bG9hZCB0byB0aGUKbm90aWZpZXIuCgo+ID4gSSdtIG5vdCBzdXJlIHdlIGhhdmUg Y2hlY2tlZCBhbGwgdGhlIG9wdGlvbnMgd2UgaGF2ZSB5ZXQuIFBlcmhhcHMKPiA+IHRoZXJlIGlz IGEgc2ltcGxlciB3YXkgb2YgZG9pbmcgdGhpcy4KPiAKPiBBcyBhIHJlc3VsdCBvZiB3cml0aW5n IHRoaXMgcGF0Y2hlcyBJJ3ZlIGJlZW4gdGhpbmtpbmcgdGhhdCB3ZSByZWFsbHkKPiBoYXZlIGEg bmVlZCBmb3Igc29tZSBzb3J0IG9mIGluIGtlcm5lbCBldmVudCBtZWNoYW5pc20sIHRoaW5rIHNv bWV0aGluZwo+IHB1Yi9zdWIgaXNoLCBhIGJpdCBsaWtlIG1xdHQuCj4gCj4gSSdtIHRoaW5raW5n IGEgZ2xvYmFsIGV2ZW50LXF1ZXVlIHdpdGggYW4gQVBJIGxpa2UgdGhpczoKPiAKPiBzdHJ1Y3Qg a2VybmVsX2V2ZW50IHsKPiAJZW51bSBrZXJuZWxfZXZlbnRfdHlwZSB0eXBlOwo+IAljaGFyIHNv dXJjZV9pZFszMl07Cj4gCWNoYXIgZGVzdF9pZFszMl07Cj4gCXVuaW9uIGRhdGEgewo+IAkJa2Vy bmVsX2V2ZW50X3R5cGVfZm9vIGZvbzsKPiAJCWtlcm5lbF9ldmVudF90eXBlX2JhciBiYXI7Cj4g CX07Cj4gfQo+IAo+IFdoZXJlIGRyaXZlcnMgaW50ZXJlc3RlZCBpbiBldmVudHMgY2FuIHRoZW4g c3BlY2lmeSB0aGF0IHRoZXkKPiBvbmx5IHdhbnQgZXZlbnRzIG9mIGEgY2VydGFpbiB0eXBlIGFu ZCBvcHRpb25hbGx5IGFsc28gZmlsdGVyCj4gb24gc291cmNlIC8gZGVzdCBpZC4KPiAKPiBOb3Rl IHRoYXQgc2V0dGluZyBkZXN0X2lkIHdvdWxkIGJlIG9wdGlvbmFsIGZvciBldmVudCBnZW5lcmF0 b3JzLAo+IHNpbmNlIG5vdCBhbGwgZXZlbnQgZ2VuZXJhdG9ycyB3aWxsIGtub3cgdGhpcy4KPiAK PiBMb29raW5nIGF0IGFsbCB0aGUgZXh0Y29uIGFuZCBwb3dlcl9zdXBwbHkgbm90aWZpY2F0aW9u cyB3ZQo+IGFscmVhZHkgaGF2ZSBnb2luZyBvbiB3aXRoIHRoZSBUeXBlLUMgUEQgc3VwcG9ydCwg YWxsIHVzaW5nIHRoZWlyCj4gb3duIHByaXZhdGUgbm90aWZpZXIgc29sdXRpb25zLCBJIHRoaW5r IHNvbWV0aGluZyBnZW5lcmljIGxpa2UgdGhpcywKPiB3aGljaCBkb2VzIG5vdCBkZXBlbmQgb24g b25lIGRldmljZSBnZXR0aW5nIHNvbWUgc29ydCBvZiByZWZlcmVuY2UKPiBvbiBhbm90aGVyIGRl dmljZSwgbWlnaHQgaW4gdGhlIGVuZCBiZSBiZXR0ZXIuCj4gCj4gVGhpcyB3b3VsZCBhbHNvIGF2 b2lkIGEgbG90IG9mIFBST0JFX0RFRkVSIGhhbmRsaW5nIGluIHZhcmlvdXMgcGxhY2VzLAo+IHdo aWNoIGluIHNvbWUgY2FzZXMgZ2V0cyByYXRoZXIgdHJpY2t5IHdydCBvcmRlcmluZy4KCkludGVy ZXN0aW5nIHByb3Bvc2FsLiBTb21ldGhpbmcgbGlrZSB0aGF0IGNvdWxkIGJlIHVzZWZ1bC4KCgp0 aGFua3MsCgotLSAKaGVpa2tpCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==