From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH] drm/panel: panel-simple: Support panel-dpi Date: Fri, 8 Mar 2019 13:14:30 +0200 Message-ID: <20190308111430.GB4802@pendragon.ideasonboard.com> References: <20190307101030.3822-1-maxime.ripard@bootlin.com> <20190308094457.GA22655@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190308094457.GA22655@ulmo> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: devicetree@vger.kernel.org, eben@raspberrypi.org, Maxime Ripard , dri-devel@lists.freedesktop.org, Paul Kocialkowski , Rob Herring , Sean Paul , Thomas Petazzoni List-Id: devicetree@vger.kernel.org SGkgVGhpZXJyeSwKCk9uIEZyaSwgTWFyIDA4LCAyMDE5IGF0IDEwOjQ0OjU3QU0gKzAxMDAsIFRo aWVycnkgUmVkaW5nIHdyb3RlOgo+IE9uIFRodSwgTWFyIDA3LCAyMDE5IGF0IDExOjEwOjMwQU0g KzAxMDAsIE1heGltZSBSaXBhcmQgd3JvdGU6Cj4gPiBUaGUga2VybmVsIGhhcyBhIGRldmljZSB0 cmVlIGJpbmRpbmcgZm9yIHBhbmVsLWRwaSB3aGljaCBhbGxvd3MgZm9yIHRoZQo+ID4gcGFuZWwg dGltaW5ncyB0byBiZSBkZXNjcmliZWQgaW4gdGhlIGRldmljZS10cmVlLCBob3dldmVyIGl0IHdh c24ndAo+ID4gc3VwcG9ydGVkIHNvIGZhciBleGNlcHQgaW4gYSAoc21hbGwpIG51bWJlciBvZiBL TVMgZHJpdmVycyB0aGF0IGhhZCBhbgo+ID4gYWQtaG9jIHNvbHV0aW9uIGZvciB0aGlzIChvbWFw ZHJtIGZvciBleGFtcGxlKS4KPiAKPiBJJ20gZ3Jvd2luZyByZWFsbHkgdGlyZWQgb2YgaGF2aW5n IHRvIHJlcGVhdCB0aGVzZSBkaXNjdXNzaW9ucy4uLgo+IAo+IEFzIGZhciBhcyBJIGNhbiB0ZWxs LCB0aGlzIGJpbmRpbmcgd2FzIG5ldmVyIHJldmlld2VkIGJ5IGRldmljZSB0cmVlCj4gbWFpbnRh aW5lcnMsIHNvIEknbSBub3Qgc3VyZSB3aGV0aGVyIHRoZXJlJ3MgY29uY2Vuc3VzIHRoYXQgdGhp cyBzaG91bGQKPiBiZSBwcm9saWZlcmF0ZWQuIEFkZGluZyBSb2IgYW5kIHRoZSBkZXZpY2UgdHJl ZSBtYWlsaW5nIGxpc3QgZm9yIGEgd2lkZXIKPiBhdWRpZW5jZS4KClRoZSBoaXN0b3J5IGluZGVl ZCBzaG93cyBhIGxlc3MgdGhhbiBpZGVhbCBzaXR1YXRpb24uIEkgZG9uJ3Qgd2FudCBvcgpwbGFu IHRvIHVzZSBvbWFwZHJtIGFzIGEgcHJlY2VkZW50IHRvIHB1c2ggZm9yIHRoaXMsIGJ1dCBhcyBw YXJ0IG9mIGFuCmVmZm9ydCB0byByZW1vdmUgdGhlIG9tYXBkcm0tc3BlY2lmaWMgcGFuZWwtZHBp IGRyaXZlciwgSSdtIHRyeWluZyB0bwpmaW5kIGEgc29sdXRpb24uIEkgYWRkZWQgc3VwcG9ydCB0 byB0aGUgcGFuZWwtc2ltcGxlIGRyaXZlciBmb3Igb25lCnBhcnRpY3VsYXIgcGFuZWwgdXNlZCBi eSBvbmUgcGFydGljdWxhciBPTUFQIGJvYXJkIGluIG9yZGVyIHRvIHBvcnQgaXQKYXdheSBmcm9t IHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVsIGNvZGUsIGJ1dCB0aGF0IHdpbGwgaGF2ZSBhIGhh cmQKdGltZSBzY2FsaW5nLiBJJ20gdGh1cyBpbnRlcmVzdGVkIGluIHRoZSBvdXRjb21lIG9mIHRo aXMgZGlzY3Vzc2lvbi4KCj4gPiBKdXN0IGxpa2Ugd2UndmUgc2VlbiB3aXRoIHBhbmVsLWx2ZHMs IGFuZCBldmVuIHRob3VnaCB0aGUgY3VycmVudCBkb2dtYSBpcwo+ID4gdG8gc2V0IHRoZSB0aW1p bmdzIHdpdGhpbiB0aGUgZHJpdmVyLCBoYXZpbmcgdGhlbSBpbiB0aGUgZGV2aWNlIHRyZWUKPiA+ IHByb3ZpZGVzIGEgbnVtYmVyIG9mIGJlbmVmaXRzLgo+IAo+IEkgZG9uJ3QgdGhpbmsgdGhlcmUg d2FzIGNvbmNlbnN1cyBvbiB0aGF0LiBCdXQgUm9iIGFja2VkIGl0LCBzbyBJIGd1ZXNzCj4gaGUg dGhvdWdodCBpdCB3YXMgYWNjZXB0YWJsZS4KPiAKPiBSb2IsIGNhbiB3ZSB1c2UgdGhpcyB0aHJl YWQgYXMgYW4gb3Bwb3J0dW5pdHkgdG8gd3JpdGUgZG93biBzb21lIG9mIHRoZQo+IHJ1bGVzIHJl Z2FyZGluZyB0aGlzPyBXZSd2ZSBkaXNjdXNzZWQgdGhpcyBudW1lcm91cyB0aW1lcyBpbiB0aGUg cGFzdAo+IGJ1dCB0aGVyZSBzdGlsbCBkb2Vzbid0IHNlZW0gdG8gYmUgY29uY2Vuc3VzLgoKVGhh dCdzIGEgZ29vZCBpZGVhLCB0aGFuayB5b3UgZm9yIHByb3Bvc2luZyBpdC4gTGV0J3MgdHJ5IHRv IHJlYWNoIGFuCmFncmVlbWVudCBhbmQgZG9jdW1lbnQgaXQgdG8gYXZvaWQgcmVwZWF0aW5nIHRo ZSBzYW1lIHN0b3J5IGluIDYgbW9udGhzLgoKPiBJIGtub3cgeW91J3JlIHZlcnkgdGlyZWQgb2Yg dGhpcyBhcyB3ZWxsLCBidXQgcGVyaGFwcyB3ZSBjYW4gYml0ZSB0aGUKPiBidWxsZXQgbm93IGFu ZCBwcm9kdWNlIGNsZWFyIGRvY3VtZW50YXRpb24gYW5kIGd1aWRlbGluZXMgdGhhdCB3ZSBjYW4K PiBwb2ludCBwZW9wbGUgYXQgKG9yIHB1dCBpbiBhbiBvYnZpb3VzIGxvY2F0aW9uIHNvIHRoYXQg cGVvcGxlIGZpbmQgaXQKPiB0aGVtc2VsdmVzKSBpbiB0aGUgZnV0dXJlLCBzbyB0aGF0IHdlIGRv bid0IGhhdmUgdG8ga2VlcCBoYXZpbmcgdGhpcwo+IGRpc2N1c3Npb24uCj4gCj4gU3VtbWFyaXpp bmcgd2hhdCBvdXIgbGF0ZXN0IGRpc2N1c3Npb24gb24gdGhpcyB3YXM6Cj4gCj4gICAqIEdlbmVy aWMgY29tcGF0aWJsZSBzdHJpbmdzIHNob3VsZCB0eXBpY2FsbHkgYmUgdXNlZCBhcyBhIGZhbGxi YWNrCj4gICAgIG9ubHkuIEV4Y2VwdGlvbnMgY291bGQgYmUgbWFkZSBpZiB0aGVyZSdzIGEgc3Bl Y2lmaWMgc3RhbmRhcmQgdGhhdAo+ICAgICBpcyBzdWZmaWNpZW50bHkgc3RyaWN0IHRvIG5vdCBy ZXF1aXJlIGFueSBxdWlya3MsIGFuZCBoZW5jZSBhdm9pZAo+ICAgICB0aGUgbmVlZCBmb3IgcGFu ZWwtc3BlY2lmaWMgY29tcGF0aWJsZSBzdHJpbmdzLgo+IAo+ICAgKiBTbyBpbiBnZW5lcmFsIGRl dmljZSB0cmVlIG5vZGVzIGZvciBwYW5lbHMgbmVlZCB0byBoYXZlIGEgc3BlY2lmaWMKPiAgICAg Y29tcGF0aWJsZSBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoYXQgcGFuZWwuIFRo aXMgaXMgaW4KPiAgICAgbGluZSB3aXRoIGV4aXN0aW5nIHByYWN0aWNlIGZvciBvdGhlciBkZXZp Y2VzIGFuZCBhIGdvb2QgaWRlYSBpbgo+ICAgICBnZW5lcmFsIHNvIHRoYXQgd2UgY2FuIGltcGxl bWVudCBxdWlya3MgaWYgbmVjZXNzYXJ5Lgo+IAo+ICAgKiBQYW5lbCBub2RlcyBjYW4gb3B0aW9u YWxseSBhbHNvIGxpc3QgYSBnZW5lcmljIGNvbXBhdGlibGUgc3RyaW5nLCBpbgo+ICAgICBhZGRp dGlvbiB0byB0aGUgc3BlY2lmaWMgY29tcGF0aWJsZSBzdHJpbmcsIHRoYXQgZHJpdmVycyBjb3Vs ZCBtYXRjaAo+ICAgICB0byBzdXBwb3J0IGRldmljZXMgd2hpY2ggYXJlIG5vdCBzcGVjaWZpY2Fs bHkgc3VwcG9ydGVkIHlldCBidXQgdGhhdAo+ICAgICBtYXkgYWxyZWFkeSB3b3JrIGFueXdheS4K PiAKPiAgICAgSSdtIG5vdCBzdXJlIHRoYXQncyByZWFsbHkgcHJhY3RpY2FsLiBJbiB0aGUgcGFz dCB3ZSd2ZSBzZWVuIHRoYXQgYQo+ICAgICBwYW5lbCBjYW4gd29yayBmaW5lIG9uIG9uZSBib2Fy ZCBidXQgYnJlYWsgb24gYW5vdGhlciBiZWNhdXNlIHRoZQo+ICAgICBydW50aW1lIGV4ZWN1dGlv biB0aW1pbmcgaXMgc3VjaCB0aGF0IG5lY2Vzc2FyeSBkZWxheXMgaW4gdGhlIHBvd2VyCj4gICAg IHNlcXVlbmNlIGFyZSBub3RpY2VhYmxlIG9uIG9uZSBidXQgbm90IGFub3RoZXIuIEkgYWxzbyBz dXNwZWN0IHRoYXQKPiAgICAgaW4gc29tZSBjYXNlcyBzaG9ydGN1dHMgd2VyZSB0YWtlbiBiZWNh dXNlIHRoaW5ncyBoYXBwZW5lZCB0byB3b3JrLAo+ICAgICBldmVuIGlmIHBlcmhhcHMgdGhlcmUg d2FzIGludGVybWl0dGVudCBnYXJiYWdlIG9uIHRoZSBzY3JlZW4gYmVjYXVzZQo+ICAgICB0aGUg cG93ZXIgc2VxdWVuY2Ugd2Fzbid0IHJlc3BlY3RlZC4KCkknZCBzYXkgbW9zdCBjYXNlcyBpbnN0 ZWFkIG9mIHNvbWUgY2FzZXMgOi0pIFdlIGhhdmUgbG90cyBvZiBwYW5lbHMgZm9yCndoaWNoIG5v IHB1YmxpYyBkYXRhc2hlZXQgaXMgYXZhaWxhYmxlLCBhbmQgdGhlIHRpbWluZ3MgYWRkZWQgdG8K cGFuZWwtc2ltcGxlIHdlcmUganVzdCBjb3BpZWQgZnJvbSByYW5kb20gZGV2aWNlIHRyZWUgc291 cmNlcyBwYXJ0IG9mCm9ic2N1cmUgQlNQcy4gSXQncyB0aGVuIGhhcmQgdG8gZG8gYmV0dGVyIHRo YW4gImlmIGl0IHdvcmtzLCBzaGlwIGl0Igo6LSgKCj4gICAqIE1lY2hhbmlzbXMgdGhhdCBwcm9i ZSBpbmZvcm1hdGlvbiBmcm9tIGEgcGFuZWwgYXQgcnVudGltZSAoc3VjaCBhcwo+ICAgICBFRElE KSBhcmUgdG8gc2VlIHByZWZlcmVudGlhbCB0cmVhdG1lbnQuIEluIG90aGVyIHdvcmRzLCBpZiBh IEREQwo+ICAgICBjaGFubmVsIGV4aXN0cyB0byBhIHBhbmVsLCB0aGUgZHJpdmVyIHNob3VsZCBw YXJzZSB2aWRlbyB0aW1pbmdzCj4gICAgIGZyb20gdGhlIEVESUQuCj4gCj4gT25lIHRoaW5nIHRo YXQncyBub3QgY2xlYXIgdG8gbWUgaXMgd2hldGhlciBvciBub3Qgd2Ugd2FudCB0byBhbGxvdwo+ IHZpZGVvIHRpbWluZ3MgdG8gYmUgc3BlY2lmaWVkIGluIERULiBJIHVzZWQgdG8gdGhpbmsgdGhh dCB3ZSBkaWRuJ3QsCj4gYmVjYXVzZSB0aGUgdmlkZW8gdGltaW5ncyBhcmUgaW1wbGllZCBieSB0 aGUgc3BlY2lmaWMgY29tcGF0aWJsZSBzdHJpbmcKPiAod2hpY2ggd2UgYWxyZWFkeSBkZXRlcm1p bmVkIGlzIG1hbmRhdG9yeSBhbnl3YXkpLCBidXQgdGhlIHBhbmVsLWx2ZHMKPiBiaW5kaW5ncyBz dWdnZXN0IHRoYXQgZnJvbSBhIGRldmljZSB0cmVlIHBlcnNwZWN0aXZlIHRoaXMgd291bGQgYmUg ZmluZT8KPiBJIGFsc28gbm90aWNlIHRoYXQgdGhlIHBhbmVsLWx2ZHMgZG9lc24ndCBtYWtlIGFu eSBwcm92aXNpb25zIGZvciBwb3dlcgo+IHNlcXVlbmNlcy4gVGhlIHNhbWUgaXMgdHJ1ZSBmb3Ig cGFuZWwtZHBpLiBBcmUgYm90aCBMVkRTIGFuZCBEUEkgcGFuZWxzCj4gYWx3YXlzIGd1YXJhbnRl ZWQgbm90IHRvIG5lZWQgYW55IHNwZWNpZmljIHBvd2VyIHNlcXVlbmNlcz8KClRoZXkncmUgbm90 LCBhbmQgaWYgYSBwb3dlciBzZXF1ZW5jZSBpcyBuZWVkZWQsIHdlIG5lZWQgY3VzdG9tIGNvZGUK bWF0Y2hpbmcgYSBzcGVjaWZpYyBjb21wYXRpYmxlIHN0cmluZy4KCj4gSWYgdWx0aW1hdGVseSB3 ZSBkZWNpZGUgdGhhdCB2aWRlbyB0aW1pbmdzIGluIERUIGFyZSBva2F5LCB0aGVuIGhvdyBhcmUK PiB3ZSBnb2luZyB0byByZWNvbmNpbGUgdGhhdCB3aXRoIGV4aXN0aW5nIGJpbmRpbmdzPyBCeSBk ZWZpbml0aW9uIHRoZQo+IHZpZGVvIHRpbWluZ3Mgd291bGQgaGF2ZSB0byBiZSBvcHRpb25hbCwg b3RoZXJ3aXNlIHdlJ2QgYmUgYnJlYWtpbmcgQUJJCj4gZm9yIGV4aXN0aW5nIGRldmljZSB0cmVl cy4gQnV0IGlmIHRoZXkgYXJlIG9wdGlvbmFsLCB0aGVuIHdlJ3JlIGJhY2sgdG8KPiBzcXVhcmUg b25lLCBiZWNhdXNlIHdlIG5lZWQgdG8gcmVseSBvbiB0aGUgc3BlY2lmaWMgY29tcGF0aWJsZSBz dHJpbmcKPiB0byBnZXQgdGhlIGJpbmRpbmdzIGlmIHRoZXkgYXJlbid0IHByZXNlbnQgaW4gRFQu IEFuZCB0aGVuIGhhdmluZyB0aGVtCj4gaW4gRFQgaXMgcmVhbGx5IGp1c3QgcmVkdW5kYW50LiBF eGNlcHQgcGVyaGFwcyBpbiBvcmRlciB0byBzdXBwb3J0IHRoZQo+IGNhc2VzIHRoYXQgTWF4aW1l IGRlc2NyaWJlZCB3aGVyZSB5b3Ugd2FudCB0byBkbyBzb21lIHJlYWxseSBmaW5lIHR1bmluZwo+ IHRvIG1lZXQgRU1JIHJlcXVpcmVtZW50cyBvciBzb21lIHN1Y2guCj4gCj4gPiBUaGUgZmlyc3Qg aXMgdGhhdCBpdCBhbGxvd3MgdGhpcmQgcGFydHkgdXNlcnMgdG8gZW5hYmxlIGEgcmFuZG9tIHBh bmVsCj4gPiB3aXRob3V0IGhhdmluZyB0byBtb2RpZnkgYW5kIHJlY29tcGlsZSB0aGVpciBrZXJu ZWwgb2YgY2hvaWNlLiBUaGlzIG1pZ2h0Cj4gPiBzb3VuZCBsaWtlIHdoYXQgd2UncmUgdHJ5aW5n IHRvIGF2b2lkIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IGl0Cj4gPiBzaWduaWZpY2FudGx5IGxv d2VycyB0aGUgYmFycmllciBvZiBlbnRyeSwgYm90aCB0ZWNobmljYWwgYW5kIHByYWN0aWNhbC4K PiAKPiBJIHRoaW5rIHlvdSdyZSBleGFnZ2VyYXRpbmcuIE1vZGlmeWluZyB0aGUga2VybmVsIGFu ZCByZWJ1aWxkaW5nIGl0IGlzCj4gbm90IHNpZ25pZmljYW50bHkgbW9yZSBkaWZmaWN1bHQgdGhh biBkb2luZyB0aGUgc2FtZSBmb3IgYSBEVEIuCj4gCj4gPiBJbmRlZWQsIHVzZXJzIG1pZ2h0IG5v dCBoYXZlIHRoZSBrbm93bGVkZ2Ugb24gaG93IHRvIHJlY29tcGlsZSBhbmQgbW9kaWZ5IGEKPiA+ IGtlcm5lbCBieSB0aGVpciBvd24sIG9yIG1pZ2h0IG5vdCBoYXZlIGFueSBkb2N1bWVudGF0aW9u IG9uIHRoZSBwYW5lbAo+ID4gaXRzZWxmIHdoaWNoIHdvdWxkIHByZXZlbnQgYW55IGluY2x1c2lv bi4KPiAKPiBJZiB5b3UgZG9uJ3QgaGF2ZSBkb2N1bWVudGF0aW9uLCBob3cgYXJlIHlvdSBnb2lu ZyB0byBrbm93IHdoYXQgdGhlCj4gdmlkZW8gdGltaW5ncyBhcmU/IE9yIGhvdyB3aWxsIHlvdSBr bm93IGhvdyB0byB3aXJlIHRoZSBib2FyZCB1cCB0byB5b3VyCj4gYm9hcmQsIG9yIHdoYXQgdGhl IHBvd2VyIHNlcXVlbmNlIGlzIHRoYXQgeW91IG5lZWQgdG8gZm9sbG93LgoKQXMgZXhwbGFpbmVk IGFib3ZlLCB3ZSBvZnRlbiBnZXQgdGhlbSBmcm9tIHJhbmRvbSBkZXZpY2UgdHJlZSBzb3VyY2Vz LApvciBwb3NzaWJseSByYW5kb20gZm9ya3Mgb2YgcGFuZWwtc2ltcGxlIGluIEJTUHMuIFRob3Nl IHdpbGwgY29udGFpbiBhCnBhcnRpY3VsYXIgdGltaW5nIHRoYXQgaGFwcGVucyB0byB3b3JrIHdp dGggdGhlIHN5c3RlbSBhdCBoYW5kLiBBZGRpbmcKdGhlbSB0byBwYW5lbC1zaW1wbGUgaXNuJ3Qg dmVyeSBkaWZmaWN1bHQsIGJ1dCB3aGVuIGEgZGlmZmVyZW50IHN5c3RlbQp3aWxsIHRyeSB0byB1 c2UgdGhlIHNhbWUgcGFuZWwsIGl0IG1heSBmaW5kIG91dCB0aGF0IHRoZSB0aW1pbmdzIHRoZW4K YXZhaWxhYmxlIGluIHBhbmVsLXNpbXBsZSBkb24ndCB3b3JrLCBiZWNhdXNlIHRoZSB0d28gc3lz dGVtcyByZXF1aXJlCmRpZmZlcmVudCB0aW1pbmdzIGJvdGggd2l0aGluIHRoZSByYW5nZSBvZiB0 aW1pbmdzIHN1cHBwb3J0ZWQgYnkgdGhlCnBhbmVsLiBQYXRjaGluZyB0aGUgdGltaW5ncyBpbiBw YW5lbC1zaW1wbGUgd2l0aCB0aGUgdmFsdWVzIG9idGFpbmVkCmZyb20gdGhlIEJTUCBmb3IgdGhl IHNlY29uZCBzeXN0ZW0gd2lsbCBzb2x2ZSB0aGUgcHJvYmxlbSwgYnV0CnBvdGVudGlhbGx5IGJy ZWFrIHRoZSBmaXJzdCBzeXN0ZW0uCgpUaGUgcHJvYmxlbSByZWFsbHkgc3RlbXMgZnJvbSB0aGUg ZmFjdCB0aGF0IGRvY3VtZW50YXRpb24gaXMgbWlzc2luZy4KTW92aW5nIHRpbWluZ3MgdG8gRFQg aXMgYSB3YXkgdG8gd29yayBhcm91bmQgdGhhdCwgYnV0IGl0IGNsZWFybHkgbW9yZSBhCndvcmth cm91bmQgdGhhbiBhIHNvbHV0aW9uIGZvciB0aGlzIHNwZWNpZmljIGlzc3VlLiBUaGUgcXVlc3Rp b24gaXMgaWYKd2UgY2FuIGZpbmQgYSBiZXR0ZXIgc29sdXRpb24sIG9yIGEgYmV0dGVyIHdvcmth cm91bmQuCgo+ID4gQnV0IG1vZGVybnMgc3lzdGVtcyBhbHNvIHRlbmQgdG8gbW92ZSB0byBtZWNo YW5pc21zIGxpa2Ugc2VjdXJlIGJvb3Qgd2hpY2gKPiA+IHdvdWxkIHByZXZlbnQgdGhhdCBrZXJu ZWwsIHByb3ZpZGVkIHRoYXQgdGhlIGtlcm5lbCB3YXMgYWJsZSB0byBkbyB0aGF0LAo+ID4gZnJv bSBydW5uaW5nIGluIHRoZSBzeXN0ZW0sIHVubGVzcyB5b3Ugd291bGQga25vdyBob3cgKGFuZCBi ZSBhYmxlKSB0bwo+ID4gaW5zdGFsbCBjdXN0b20ga2V5cyBpbnRvIHlvdXIgc3lzdGVtLgo+ID4g Cj4gPiBXaGlsZSB0aGUgRFQgaXRzZWxmIG1pZ2h0IGhhdmUgdGhlIHNhbWUgY29uc3RyYWludHMs IG1lY2hhbmlzbXMgbGlrZSB0aGUKPiA+IG92ZXJsYXlzIGFsbG93cyB0byBjaXJjdW12ZW50IGl0 Lgo+IAo+IEknbSBub3Qgc3VyZSBzZWN1cmUgYm9vdCBpcyBhIHZlcnkgZ29vZCBhcmd1bWVudC4g WW91IHVzdWFsbHkgc2VlIHRoYXQKPiBvbiBjbG9zZWQgZGV2aWNlcywgYW5kIHRob3NlIGFyZSBu b3QgdHlwaWNhbGx5IGRldmljZXMgd2hlcmUgeW91IGNhbiBnbwo+IGFuZCBzd2FwIG91dCB0aGUg cGFuZWwgd2l0aCBhbm90aGVyIHJhbmRvbSBvbmUuCj4gCj4gPiBBbm90aGVyIHRoaW5nIHRoYXQg cGFuZWwtZHBpIGFsbG93cyB0byBhZGRyZXNzIGlzIEVNQywgd2hlcmUgZXZlbiB0aG91Z2gKPiA+ IHRoZSB0aW1pbmdzIGRlc2NyaWJlZCBpbiB0aGUgZHJpdmVyIGNvdWxkIGJlIGZ1bmN0aW9uYWwg b24gdGhlIGJvYXJkIGFuZAo+ID4gZm9yIHRoZSBwYW5lbCwgaXQgd291bGQgYmUgYmV0dGVyIHRv IHVzZSBhbm90aGVyIGFyYml0cmFyeSBmcmVxdWVuY3kgb24gYQo+ID4gcGFydGljdWxhciBib2Fy ZCB0byBpbmNyZWFzZSB0aGUgc3ByZWFkIG9mIHRoZSBFTSBlbWlzc2lvbnMuCj4gCj4gVGhhdCdz IGEgdmFsaWQgcG9pbnQsIGFuZCB0aGVyZSBoYXZlIGJlZW4gcHJvcG9zYWxzIGluIHRoZSBwYXN0 IHRvIGFsbG93Cj4gdGltaW5ncyB0byBiZSBvdmVycmlkZGVuIGJ5IERUIHRvIGFsbG93IHN1Y2gg ZmluZSB0dW5pbmcuIEkgdGhpbmsgc3VjaCBhCj4gbWVjaGFuaXNtIGlzIGdlbmVyYWxseSBmaW5l LCBidXQgaXQgYWxzbyBpbXBsaWVzIHRoYXQgdGhlIHZpZGVvIHRpbWluZ3MKPiBpbiBEVCB3b3Vs ZCBiZSBvcHRpb25hbCwgc28gaXQgdXN1YWxseSBkb2Vzbid0IGdpdmUgcGVvcGxlIHdoYXQgdGhl eQo+IHJlYWxseSB3YW50LCB3aGljaCBpcyB0byBhZGQgc3VwcG9ydCBmb3IgYXJiaXRyYXJ5IHBh bmVscyB0byB0aGUga2VybmVsLgoKSSB0aGluayB3ZSBuZWVkIHN1Y2ggYSBtZWNoYW5pc20uIFdl IG1heSBub3QgbmVlZCBhIGZ1bGwgb3ZlcnJpZGUKdGhvdWdoLCBwb3NzaWJseSBqdXN0IGEgcmVz dHJpY3RlZCByYW5nZSBvZiBwaXhlbCBjbG9jayBmcmVxdWVuY2llcy4gSQpjYW4ndCB0ZWxsIHll dCB3aGF0IHdvdWxkIGJlIG5lZWRlZCBleGFjdGx5LCBidXQgRU1DIGlzIGEgdmFsaWQgY29uY2Vy biwKYW5kIHdlIGhhZCB0byBhZGQgZXhwbGljaXQgcGl4ZWwgY2xvY2sgZnJlcXVlbmNpZXMgZm9y IGNhbWVyYXMgaW4gRFRzCmZvciB0aGlzIHJlYXNvbi4gTGV0J3Mga2VlcCB0aGlzIGluIG1pbmQg aW4gb3VyIGRlc2lnbi4KCj4gSSB3YW50IHRvIGV4cGxhaW4gd2h5IEknbSBiZWluZyBzbyByZWx1 Y3RhbnQgdG8gbWVyZ2Ugc3VwcG9ydCBmb3IgdGhpcywKPiBzbyB0aGF0IHBlcmhhcHMgcGVvcGxl IGJldHRlciB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgaXMgY29taW5nIGZyb20uIElmCj4gd2UgYWxs b3cgYXJiaXRyYXJ5IHBhbmVscyB0byBiZSBzdXBwb3J0ZWQgaW4gdGhpcyB3YXksIHdlIGNhbiBn ZXQgaW50byBhCj4gc2l0dWF0aW9uIHdoZXJlIHNvbWVvbmUgbWFrZXMgYSBkZXZpY2UsIHVwc3Ry ZWFtcyBzdXBwb3J0IGZvciBpdCwgdXNpbmcKPiB2aWRlbyB0aW1pbmdzIHNwZWNpZmllZCBpbiBE VCB3aXRob3V0IGEgc3BlY2lmaWMgY29tcGF0aWJsZSBzdHJpbmcgZm9yCj4gdGhlIHBhbmVsIG5v ZGUgYW5kIHRoZW4gYnVybiB0aGF0IERUQiBpbnRvIGEgUk9NIG9uIHRoZSBkZXZpY2UgYW5kIHNo aXAKPiBpdC4gTm93IGNvbnNpZGVyIHdoYXQgd291bGQgaGFwcGVuIGlmIHNvbWUgdGltZSBkb3du IHRoZSByb2FkIHdlIGdldCBhCj4gYnVnIHJlcG9ydCB0aGF0IHRoZSBwYW5lbCBvbiB0aGF0IGRl dmljZSBubyBsb25nZXIgd29ya3MuIFdlJ3ZlIG5pY2VseQo+IHBhaW50ZWQgb3Vyc2VsdmVzIGlu dG8gYSBjb3JuZXIsIGJlY2F1c2Ugd2UgY2FuJ3QgdGVsbCBwZW9wbGUgdG8gZml4IHRoZQo+IERU QiAoaXQncyBpbiBhIFJPTSkgYW5kIHdlIGNhbid0IGFkZCBhIHF1aXJrIGluIHRoZSBrZXJuZWwg YmVjYXVzZSB3ZQo+IGRvbid0IGhhdmUgYSB3YXkgb2YgaWRlbnRpZnlpbmcgdGhlIHBhbmVsLiBT byB3aGF0IGRvIHdlIHRlbGwgdGhlbT8KPiBUb3VnaCBsdWNrPwoKQ291bGQgdGhlIHBhbmVsLXNp bXBsZSAob3IgcGFuZWwtZHBpKSBkcml2ZXIgcmVqZWN0IHBhbmVscyB0aGF0IGhhdmUgYQpzaW5n bGUgY29tcGF0aWJsZSBzdHJpbmcsIGZvcmNpbmcgdGhlIERUIGF1dGhvciB0byBhZGQgYSBzcGVj aWZpYyBvbmUgPwpPZiBjb3Vyc2UgdGhhdCB3b3VsZG4ndCBwcmV2ZW50IHNvbWVvbmUgZnJvbSB3 cml0aW5nCgoJLyogRG9uJ3QgcmVtb3ZlIGZvbyxiYXIgb3IgdGhlIGRyaXZlciB3aWxsIG5vdCB3 b3JrICovCgljb21wYXRpYmxlID0gImZvbyxiYXIiLCAicGFuZWwtZHBpIjsKCj4gVGhlIHJvb3Qg Y2F1c2UgaGVyZSBpcyB0aGF0IHRoZXJlIGFyZSBubyBzdGFuZGFyZHMgYW5kIGRlc2lnbmVycyBq dXN0IGRvCj4gd2hhdGV2ZXIgdGhleSB3YW50IGJlY2F1c2Ugc29tZWJvZHkgd2lsbCBzb21laG93 IG1ha2UgdGhpbmdzIHdvcmsuIFdoaWxlCj4gdGhhdCBtYXkgd29yayBmaW5lIGZvciBwcm9kdWN0 cyB3aGVyZSB0aGUgT0VNIHByb3ZpZGVzIGEgY3VzdG9tIGtlcm5lbCwKPiBpdCdzIGEgbWFpbnRl bmFuY2UgbmlnaHRtYXJlIGZvciB1cHN0cmVhbS4gU28gSSB0aGluayB3ZSBuZWVkIHRvIGJlIG1v cmUKPiBzdHJpY3QgaW4gd2hhdCB3ZSBhY2NlcHQgYW5kIHBlcmhhcHMgZXZlbiBoZWxwIHNoYXBl IHNvbWUgZm9ybSBvZgo+IHN0YW5kYXJkIHRoYXQgd2lsbCBhdm9pZCBhbnkgb2YgdGhlIGNvbW1v biBwaXRmYWxscyB3ZSBrbm93IGFib3V0LgoKSSBhZ3JlZSB3aXRoIHlvdSwgYnV0IEkgd291bGQg YXJndWUgdGhhdCBoYXZpbmcgdGltaW5ncyBpbiBDIGNvZGUgY2FuCmFsc28gYmVjb21lcyBhIG1h aW50ZW5hbmNlIG5pZ2h0bWFyZSB3aGVuIHRoZSBzYW1lIHBhbmVsIGlzIHVzZWQgb24KbXVsdGlw bGUgc3lzdGVtcywgYXMgZXhwbGFpbmVkIGFib3ZlLgoKPiBJJ2QgYmUgaW50ZXJlc3RlZCB0byBr bm93IHdoZXRoZXIgdGhpcyBwcm9ibGVtIGV4aXN0cyBvbiBhbnkgb2YgdGhlCj4gb3RoZXIgYXJj aGl0ZWN0dXJlcywgYmVjYXVzZSB0aGlzIHNlZW1zIHRvIG1lIHRvIGJlIHNwZWNpZmljIHRvIHRo ZSBBUk0KPiBlY29zeXN0ZW0uIFRoZXJlJ3MgYSBteXJpYWQgb2YgeDg2IHN5c3RlbXMgb3V0IHRo ZXJlIHRoYXQgdXNlIHBhbmVscywgc28KPiBJIHdvbmRlciBob3cgd2Ugc29sdmUgdGhlc2UgcHJv YmxlbXMgZm9yIHRob3NlLCBvciB3aGV0aGVyIHRoZXkgc2ltcGx5Cj4gZG9uJ3QgZXhpc3QgdGhl cmUgYmVjYXVzZSBwZW9wbGUgaGF2ZSBwdXQgbW9yZSB0aG91Z2h0IGludG8gc3lzdGVtCj4gZGVz aWducz8KCkFyZW4ndCB0aW1pbmdzIHN0b3JlZCBpbiBBQ1BJLCBhdCBsZWFzdCBpbiBzb21lIGNh c2VzID8KCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=