From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/2] components: multiple components for a device Date: Mon, 4 Feb 2019 17:00:25 +0100 Message-ID: <20190204160025.GV3271@phenom.ffwll.local> References: <1548917996-28081-2-git-send-email-ramalingam.c@intel.com> <20190131144640.17896-1-daniel.vetter@ffwll.ch> <20190131144640.17896-2-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF3126E55D for ; Mon, 4 Feb 2019 16:00:30 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id p6so337756eds.0 for ; Mon, 04 Feb 2019 08:00:30 -0800 (PST) Content-Disposition: inline In-Reply-To: <20190131144640.17896-2-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: "Rafael J . Wysocki" , Daniel Vetter , Takashi Iwai , LKML , Jaroslav Kysela , Rodrigo Vivi , Greg Kroah-Hartman , Russell King List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKYW4gMzEsIDIwMTkgYXQgMDM6NDY6NDBQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBDb21wb25lbnQgZnJhbWV3b3JrIGlzIGV4dGVuZGVkIHRvIHN1cHBvcnQgbXVsdGlw bGUgY29tcG9uZW50cyBmb3IKPiBhIHN0cnVjdCBkZXZpY2UuIFRoZXNlIHdpbGwgYmUgbWF0Y2hl ZCB3aXRoIGRpZmZlcmVudCBtYXN0ZXJzIGJhc2VkIG9uCj4gaXRzIHN1YiBjb21wb25lbnQgdmFs dWUuCj4gCj4gV2UgYXJlIGludHJvZHVjaW5nIHRoaXMsIGFzIEk5MTUgbmVlZHMgdHdvIGRpZmZl cmVudCBjb21wb25lbnRzCj4gd2l0aCBkaWZmZXJlbnQgc3ViY29tcG9uZW50IHZhbHVlLCB3aGlj aCB3aWxsIGJlIG1hdGNoZWQgdG8gdHdvCj4gZGlmZmVyZW50IGNvbXBvbmVudCBtYXN0ZXJzKEF1 ZGlvIGFuZCBIRENQKSBiYXNlZCBvbiB0aGUgc3ViY29tcG9uZW50Cj4gdmFsdWVzLgo+IAo+IHYy OiBBZGQgZG9jdW1lbmF0aW9uLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+ICh2MSBjb2RlKQo+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5n YW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4gKHYxIGNvbW1pdCBtZXNzYWdlKQo+IENjOiBS YW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gQ2M6IEdyZWcgS3JvYWgtSGFy dG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+Cj4gQ2M6IFJ1c3NlbGwgS2luZyA8cm1r K2tlcm5lbEBhcm0ubGludXgub3JnLnVrPgo+IENjOiBSYWZhZWwgSi4gV3lzb2NraSA8cmFmYWVs QGtlcm5lbC5vcmc+Cj4gQ2M6IEphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+Cj4gQ2M6 IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5jb20+Cj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmln by52aXZpQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZm d2xsLmNoPgoKSGkgR3JlZyZSdXNzZWxsLAoKTm93IHRoYXQgdGhlcmUncyBuaWNlIGRvY3VtZW50 YXRpb24gb24gZXZlcnl0aGluZywgYW55IGNvbW1lbnRzIG9uIHRoZXNlCnR3byBwYXRjaGVzPwoK VGhhbmtzLCBEYW5pZWwKCj4gLS0tCj4gIGRyaXZlcnMvYmFzZS9jb21wb25lbnQuYyAgfCAxNTkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgaW5jbHVkZS9saW51eC9j b21wb25lbnQuaCB8ICAxMCArKy0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygr KSwgMzkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9jb21wb25l bnQuYyBiL2RyaXZlcnMvYmFzZS9jb21wb25lbnQuYwo+IGluZGV4IGU1YjA0YmNlODU0NC4uZWI3 OTE1ZmM1Mjc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvYmFzZS9jb21wb25lbnQuYwo+ICsrKyBi L2RyaXZlcnMvYmFzZS9jb21wb25lbnQuYwo+IEBAIC00OCw2ICs0OCw3IEBAIHN0cnVjdCBjb21w b25lbnQ7Cj4gIHN0cnVjdCBjb21wb25lbnRfbWF0Y2hfYXJyYXkgewo+ICAJdm9pZCAqZGF0YTsK PiAgCWludCAoKmNvbXBhcmUpKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqKTsKPiArCWludCAoKmNv bXBhcmVfdHlwZWQpKHN0cnVjdCBkZXZpY2UgKiwgaW50LCB2b2lkICopOwo+ICAJdm9pZCAoKnJl bGVhc2UpKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqKTsKPiAgCXN0cnVjdCBjb21wb25lbnQgKmNv bXBvbmVudDsKPiAgCWJvb2wgZHVwbGljYXRlOwo+IEBAIC03NSw2ICs3Niw3IEBAIHN0cnVjdCBj b21wb25lbnQgewo+ICAJYm9vbCBib3VuZDsKPiAgCj4gIAljb25zdCBzdHJ1Y3QgY29tcG9uZW50 X29wcyAqb3BzOwo+ICsJaW50IHN1YmNvbXBvbmVudDsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsK PiAgfTsKPiAgCj4gQEAgLTE1OSw3ICsxNjEsNyBAQCBzdGF0aWMgc3RydWN0IG1hc3RlciAqX19t YXN0ZXJfZmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3Qg Y29tcG9uZW50ICpmaW5kX2NvbXBvbmVudChzdHJ1Y3QgbWFzdGVyICptYXN0ZXIsCj4gLQlpbnQg KCpjb21wYXJlKShzdHJ1Y3QgZGV2aWNlICosIHZvaWQgKiksIHZvaWQgKmNvbXBhcmVfZGF0YSkK PiArCXN0cnVjdCBjb21wb25lbnRfbWF0Y2hfYXJyYXkgKm1jKQo+ICB7Cj4gIAlzdHJ1Y3QgY29t cG9uZW50ICpjOwo+ICAKPiBAQCAtMTY3LDggKzE2OSwxMyBAQCBzdGF0aWMgc3RydWN0IGNvbXBv bmVudCAqZmluZF9jb21wb25lbnQoc3RydWN0IG1hc3RlciAqbWFzdGVyLAo+ICAJCWlmIChjLT5t YXN0ZXIgJiYgYy0+bWFzdGVyICE9IG1hc3RlcikKPiAgCQkJY29udGludWU7Cj4gIAo+IC0JCWlm IChjb21wYXJlKGMtPmRldiwgY29tcGFyZV9kYXRhKSkKPiArCQlpZiAobWMtPmNvbXBhcmVfdHlw ZWQpIHsKPiArCQkJaWYgKG1jLT5jb21wYXJlX3R5cGVkKGMtPmRldiwgYy0+c3ViY29tcG9uZW50 LAo+ICsJCQkJCSAgICAgIG1jLT5kYXRhKSkKPiArCQkJCXJldHVybiBjOwo+ICsJCX0gZWxzZSBp ZiAobWMtPmNvbXBhcmUoYy0+ZGV2LCBtYy0+ZGF0YSkpIHsKPiAgCQkJcmV0dXJuIGM7Cj4gKwkJ fQo+ICAJfQo+ICAKPiAgCXJldHVybiBOVUxMOwo+IEBAIC0xOTMsNyArMjAwLDcgQEAgc3RhdGlj IGludCBmaW5kX2NvbXBvbmVudHMoc3RydWN0IG1hc3RlciAqbWFzdGVyKQo+ICAJCWlmIChtYXRj aC0+Y29tcGFyZVtpXS5jb21wb25lbnQpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQljID0gZmlu ZF9jb21wb25lbnQobWFzdGVyLCBtYy0+Y29tcGFyZSwgbWMtPmRhdGEpOwo+ICsJCWMgPSBmaW5k X2NvbXBvbmVudChtYXN0ZXIsIG1jKTsKPiAgCQlpZiAoIWMpIHsKPiAgCQkJcmV0ID0gLUVOWElP Owo+ICAJCQlicmVhazsKPiBAQCAtMzI4LDI5ICszMzUsMTIgQEAgc3RhdGljIGludCBjb21wb25l bnRfbWF0Y2hfcmVhbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAtLyoqCj4gLSAqIGNvbXBvbmVudF9tYXRjaF9hZGRfcmVsZWFzZSAtIGFkZCBhIGNvbXBl bnQgbWF0Y2ggd2l0aCByZWxlYXNlIGNhbGxiYWNrCj4gLSAqIEBtYXN0ZXI6IGRldmljZSB3aXRo IHRoZSBhZ2dyZWdhdGUgZHJpdmVyCj4gLSAqIEBtYXRjaHB0cjogcG9pbnRlciB0byB0aGUgbGlz dCBvZiBjb21wb25lbnQgbWF0Y2hlcwo+IC0gKiBAcmVsZWFzZTogcmVsZWFzZSBmdW5jdGlvbiBm b3IgQGNvbXBhcmVfZGF0YQo+IC0gKiBAY29tcGFyZTogY29tcGFyZSBmdW5jdGlvbiB0byBtYXRj aCBhZ2FpbnN0IGFsbCBjb21wb25lbnRzCj4gLSAqIEBjb21wYXJlX2RhdGE6IG9wYXF1ZSBwb2lu dGVyIHBhc3NlZCB0byB0aGUgQGNvbXBhcmUgZnVuY3Rpb24KPiAtICoKPiAtICogVGhpcyBhZGRz IGEgbmV3IGNvbXBvbmVudCBtYXRjaCB0byB0aGUgbGlzdCBzdG9yZWQgaW4gQG1hdGNocHRyLCB3 aGljaCB0aGUKPiAtICogQG1hc3RlciBhZ2dyZWdhdGUgZHJpdmVyIG5lZWRzIHRvIGZ1bmN0aW9u LiBAbWF0Y2hwdHIgbXVzdCBiZSBpbml0aWFsaXplZCB0bwo+IC0gKiBOVUxMIGJlZm9yZSBhZGRp bmcgdGhlIGZpcnN0IG1hdGNoLgo+IC0gKgo+IC0gKiBUaGUgYWxsb2NhdGVkIG1hdGNoIGxpc3Qg aW4gQG1hdGNocHRyIGlzIGF1dG9tYXRpY2FsbHkgcmVsZWFzZWQgdXNpbmcgZGV2bQo+IC0gKiBh Y3Rpb25zLiBBdCB0aGF0IHBvaW50IEByZWxlYXNlIHdpbGwgYmUgY2FsbGVkLCB0byBmcmVlIGFu eSByZWZlcmVuY2VzIGhlbGQKPiAtICogYnkgQGNvbXBhcmVfZGF0YSwgZS5nLiB3aGVuIEBjb21w YXJlX2RhdGEgaXMgYSAmZGV2aWNlX25vZGUgdGhhdCBtdXN0IGJlCj4gLSAqIHJlbGVhc2VkIHdp dGggb2Zfbm9kZV9wdXQoKS4KPiAtICoKPiAtICogU2VlIGFsc28gY29tcG9uZW50X21hdGNoX2Fk ZCgpLgo+IC0gKi8KPiAtdm9pZCBjb21wb25lbnRfbWF0Y2hfYWRkX3JlbGVhc2Uoc3RydWN0IGRl dmljZSAqbWFzdGVyLAo+ICtzdGF0aWMgdm9pZCBfX2NvbXBvbmVudF9tYXRjaF9hZGQoc3RydWN0 IGRldmljZSAqbWFzdGVyLAo+ICAJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqKm1hdGNocHRyLAo+ ICAJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqKSwKPiAtCWludCAoKmNv bXBhcmUpKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqKSwgdm9pZCAqY29tcGFyZV9kYXRhKQo+ICsJ aW50ICgqY29tcGFyZSkoc3RydWN0IGRldmljZSAqLCB2b2lkICopLAo+ICsJaW50ICgqY29tcGFy ZV90eXBlZCkoc3RydWN0IGRldmljZSAqLCBpbnQsIHZvaWQgKiksCj4gKwl2b2lkICpjb21wYXJl X2RhdGEpCj4gIHsKPiAgCXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1hdGNoID0gKm1hdGNocHRy Owo+ICAKPiBAQCAtMzgyLDEzICszNzIsNjkgQEAgdm9pZCBjb21wb25lbnRfbWF0Y2hfYWRkX3Jl bGVhc2Uoc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAJfQo+ICAKPiAgCW1hdGNoLT5jb21wYXJl W21hdGNoLT5udW1dLmNvbXBhcmUgPSBjb21wYXJlOwo+ICsJbWF0Y2gtPmNvbXBhcmVbbWF0Y2gt Pm51bV0uY29tcGFyZV90eXBlZCA9IGNvbXBhcmVfdHlwZWQ7Cj4gIAltYXRjaC0+Y29tcGFyZVtt YXRjaC0+bnVtXS5yZWxlYXNlID0gcmVsZWFzZTsKPiAgCW1hdGNoLT5jb21wYXJlW21hdGNoLT5u dW1dLmRhdGEgPSBjb21wYXJlX2RhdGE7Cj4gIAltYXRjaC0+Y29tcGFyZVttYXRjaC0+bnVtXS5j b21wb25lbnQgPSBOVUxMOwo+ICAJbWF0Y2gtPm51bSsrOwo+ICB9Cj4gKwo+ICsvKioKPiArICog Y29tcG9uZW50X21hdGNoX2FkZF9yZWxlYXNlIC0gYWRkIGEgY29tcGVudCBtYXRjaCB3aXRoIHJl bGVhc2UgY2FsbGJhY2sKPiArICogQG1hc3RlcjogZGV2aWNlIHdpdGggdGhlIGFnZ3JlZ2F0ZSBk cml2ZXIKPiArICogQG1hdGNocHRyOiBwb2ludGVyIHRvIHRoZSBsaXN0IG9mIGNvbXBvbmVudCBt YXRjaGVzCj4gKyAqIEByZWxlYXNlOiByZWxlYXNlIGZ1bmN0aW9uIGZvciBAY29tcGFyZV9kYXRh Cj4gKyAqIEBjb21wYXJlOiBjb21wYXJlIGZ1bmN0aW9uIHRvIG1hdGNoIGFnYWluc3QgYWxsIGNv bXBvbmVudHMKPiArICogQGNvbXBhcmVfZGF0YTogb3BhcXVlIHBvaW50ZXIgcGFzc2VkIHRvIHRo ZSBAY29tcGFyZSBmdW5jdGlvbgo+ICsgKgo+ICsgKiBUaGlzIGFkZHMgYSBuZXcgY29tcG9uZW50 IG1hdGNoIHRvIHRoZSBsaXN0IHN0b3JlZCBpbiBAbWF0Y2hwdHIsIHdoaWNoIHRoZQo+ICsgKiBA bWFzdGVyIGFnZ3JlZ2F0ZSBkcml2ZXIgbmVlZHMgdG8gZnVuY3Rpb24uIEBtYXRjaHB0ciBtdXN0 IGJlIGluaXRpYWxpemVkIHRvCj4gKyAqIE5VTEwgYmVmb3JlIGFkZGluZyB0aGUgZmlyc3QgbWF0 Y2guCj4gKyAqCj4gKyAqIFRoZSBhbGxvY2F0ZWQgbWF0Y2ggbGlzdCBpbiBAbWF0Y2hwdHIgaXMg YXV0b21hdGljYWxseSByZWxlYXNlZCB1c2luZyBkZXZtCj4gKyAqIGFjdGlvbnMuIEF0IHRoYXQg cG9pbnQgQHJlbGVhc2Ugd2lsbCBiZSBjYWxsZWQsIHRvIGZyZWUgYW55IHJlZmVyZW5jZXMgaGVs ZAo+ICsgKiBieSBAY29tcGFyZV9kYXRhLCBlLmcuIHdoZW4gQGNvbXBhcmVfZGF0YSBpcyBhICZk ZXZpY2Vfbm9kZSB0aGF0IG11c3QgYmUKPiArICogcmVsZWFzZWQgd2l0aCBvZl9ub2RlX3B1dCgp LiBUaGlzIG9ubHkgbWF0Y2hlcyBhZ2FpbnN0IGNvbXBvbmVudHMKPiArICogYWRkZWQgd2l0aCBj b21wb25lbnRfYWRkKCkuCj4gKyAqCj4gKyAqIFNlZSBhbHNvIGNvbXBvbmVudF9tYXRjaF9hZGQo KSBhbmQgY29tcG9uZW50X21hdGNoX2FkZF90eXBlZCgpLgo+ICsgKi8KPiArdm9pZCBjb21wb25l bnRfbWF0Y2hfYWRkX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICsJc3RydWN0IGNv bXBvbmVudF9tYXRjaCAqKm1hdGNocHRyLAo+ICsJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkZXZp Y2UgKiwgdm9pZCAqKSwKPiArCWludCAoKmNvbXBhcmUpKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAq KSwgdm9pZCAqY29tcGFyZV9kYXRhKQo+ICt7Cj4gKwlfX2NvbXBvbmVudF9tYXRjaF9hZGQobWFz dGVyLCBtYXRjaHB0ciwgcmVsZWFzZSwgY29tcGFyZSwgTlVMTCwKPiArCQkJICAgICAgY29tcGFy ZV9kYXRhKTsKPiArfQo+ICBFWFBPUlRfU1lNQk9MKGNvbXBvbmVudF9tYXRjaF9hZGRfcmVsZWFz ZSk7Cj4gIAo+ICsvKioKPiArICogY29tcG9uZW50X21hdGNoX2FkZF90eXBlZCAtIGFkZCBhIGNv bXBlbnQgbWF0Y2ggZm9yIGEgdHlwZWQgY29tcG9uZW50Cj4gKyAqIEBtYXN0ZXI6IGRldmljZSB3 aXRoIHRoZSBhZ2dyZWdhdGUgZHJpdmVyCj4gKyAqIEBtYXRjaHB0cjogcG9pbnRlciB0byB0aGUg bGlzdCBvZiBjb21wb25lbnQgbWF0Y2hlcwo+ICsgKiBAY29tcGFyZV90eXBlZDogY29tcGFyZSBm dW5jdGlvbiB0byBtYXRjaCBhZ2FpbnN0IGFsbCB0eXBlZCBjb21wb25lbnRzCj4gKyAqIEBjb21w YXJlX2RhdGE6IG9wYXF1ZSBwb2ludGVyIHBhc3NlZCB0byB0aGUgQGNvbXBhcmUgZnVuY3Rpb24K PiArICoKPiArICogVGhpcyBhZGRzIGEgbmV3IGNvbXBvbmVudCBtYXRjaCB0byB0aGUgbGlzdCBz dG9yZWQgaW4gQG1hdGNocHRyLCB3aGljaCB0aGUKPiArICogQG1hc3RlciBhZ2dyZWdhdGUgZHJp dmVyIG5lZWRzIHRvIGZ1bmN0aW9uLiBAbWF0Y2hwdHIgbXVzdCBiZSBpbml0aWFsaXplZCB0bwo+ ICsgKiBOVUxMIGJlZm9yZSBhZGRpbmcgdGhlIGZpcnN0IG1hdGNoLiBUaGlzIG9ubHkgbWF0Y2hl cyBhZ2FpbnN0IGNvbXBvbmVudHMKPiArICogYWRkZWQgd2l0aCBjb21wb25lbnRfYWRkX3R5cGVk KCkuCj4gKyAqCj4gKyAqIFRoZSBhbGxvY2F0ZWQgbWF0Y2ggbGlzdCBpbiBAbWF0Y2hwdHIgaXMg YXV0b21hdGljYWxseSByZWxlYXNlZCB1c2luZyBkZXZtCj4gKyAqIGFjdGlvbnMuCj4gKyAqCj4g KyAqIFNlZSBhbHNvIGNvbXBvbmVudF9tYXRjaF9hZGRfcmVsZWFzZSgpIGFuZCBjb21wb25lbnRf bWF0Y2hfYWRkX3R5cGVkKCkuCj4gKyAqLwo+ICt2b2lkIGNvbXBvbmVudF9tYXRjaF9hZGRfdHlw ZWQoc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICsJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqKm1h dGNocHRyLAo+ICsJaW50ICgqY29tcGFyZV90eXBlZCkoc3RydWN0IGRldmljZSAqLCBpbnQsIHZv aWQgKiksIHZvaWQgKmNvbXBhcmVfZGF0YSkKPiArewo+ICsJX19jb21wb25lbnRfbWF0Y2hfYWRk KG1hc3RlciwgbWF0Y2hwdHIsIE5VTEwsIE5VTEwsIGNvbXBhcmVfdHlwZWQsCj4gKwkJCSAgICAg IGNvbXBhcmVfZGF0YSk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChjb21wb25lbnRfbWF0Y2hfYWRk X3R5cGVkKTsKPiArCj4gIHN0YXRpYyB2b2lkIGZyZWVfbWFzdGVyKHN0cnVjdCBtYXN0ZXIgKm1h c3RlcikKPiAgewo+ICAJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBtYXN0ZXItPm1h dGNoOwo+IEBAIC02MTcsMTkgKzY2Myw4IEBAIGludCBjb21wb25lbnRfYmluZF9hbGwoc3RydWN0 IGRldmljZSAqbWFzdGVyX2Rldiwgdm9pZCAqZGF0YSkKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQ TChjb21wb25lbnRfYmluZF9hbGwpOwo+ICAKPiAtLyoqCj4gLSAqIGNvbXBvbmVudF9hZGQgLSBy ZWdpc3RlciBhIGNvbXBvbmVudAo+IC0gKiBAZGV2OiBjb21wb25lbnQgZGV2aWNlCj4gLSAqIEBv cHM6IGNvbXBvbmVudCBjYWxsYmFja3MKPiAtICoKPiAtICogUmVnaXN0ZXIgYSBuZXcgY29tcG9u ZW50IGZvciBAZGV2LiBGdW5jdGlvbnMgaW4gQG9wcyB3aWxsIGJlIGNhbGwgd2hlbiB0aGUKPiAt ICogYWdncmVnYXRlIGRyaXZlciBpcyByZWFkeSB0byBiaW5kIHRoZSBvdmVyYWxsIGRyaXZlciBi eSBjYWxsaW5nCj4gLSAqIGNvbXBvbmVudF9iaW5kX2FsbCgpLiBTZWUgYWxzbyAmc3RydWN0IGNv bXBvbmVudF9vcHMuCj4gLSAqCj4gLSAqIFRoZSBjb21wb25lbnQgbmVlZHMgdG8gYmUgdW5yZWdp c3RlcmVkIGFnYWluIGF0IGRyaXZlciB1bmxvYWQvZGlzY29ubmVjdCBieQo+IC0gKiBjYWxsaW5n IGNvbXBvbmVudF9kZWwoKS4KPiAtICovCj4gLWludCBjb21wb25lbnRfYWRkKHN0cnVjdCBkZXZp Y2UgKmRldiwgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgKm9wcykKPiArc3RhdGljIGludCBf X2NvbXBvbmVudF9hZGQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgY29tcG9uZW50 X29wcyAqb3BzLAo+ICsJaW50IHN1YmNvbXBvbmVudCkKPiAgewo+ICAJc3RydWN0IGNvbXBvbmVu dCAqY29tcG9uZW50Owo+ICAJaW50IHJldDsKPiBAQCAtNjQwLDYgKzY3NSw3IEBAIGludCBjb21w b25lbnRfYWRkKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMg Km9wcykKPiAgCj4gIAljb21wb25lbnQtPm9wcyA9IG9wczsKPiAgCWNvbXBvbmVudC0+ZGV2ID0g ZGV2Owo+ICsJY29tcG9uZW50LT5zdWJjb21wb25lbnQgPSBzdWJjb21wb25lbnQ7Cj4gIAo+ICAJ ZGV2X2RiZyhkZXYsICJhZGRpbmcgY29tcG9uZW50IChvcHMgJXBzKVxuIiwgb3BzKTsKPiAgCj4g QEAgLTY1OCw2ICs2OTQsNTUgQEAgaW50IGNvbXBvbmVudF9hZGQoc3RydWN0IGRldmljZSAqZGV2 LCBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyAqb3BzKQo+ICAKPiAgCXJldHVybiByZXQgPCAw ID8gcmV0IDogMDsKPiAgfQo+ICsKPiArLyoqCj4gKyAqIGNvbXBvbmVudF9hZGRfdHlwZWQgLSBy ZWdpc3RlciBhIGNvbXBvbmVudAo+ICsgKiBAZGV2OiBjb21wb25lbnQgZGV2aWNlCj4gKyAqIEBv cHM6IGNvbXBvbmVudCBjYWxsYmFja3MKPiArICogQHN1YmNvbXBvbmVudDogbm9uemVybyBpZGVu dGlmaWVyIGZvciBzdWJjb21wb25lbnRzCj4gKyAqCj4gKyAqIFJlZ2lzdGVyIGEgbmV3IGNvbXBv bmVudCBmb3IgQGRldi4gRnVuY3Rpb25zIGluIEBvcHMgd2lsbCBiZSBjYWxsIHdoZW4gdGhlCj4g KyAqIGFnZ3JlZ2F0ZSBkcml2ZXIgaXMgcmVhZHkgdG8gYmluZCB0aGUgb3ZlcmFsbCBkcml2ZXIg YnkgY2FsbGluZwo+ICsgKiBjb21wb25lbnRfYmluZF9hbGwoKS4gU2VlIGFsc28gJnN0cnVjdCBj b21wb25lbnRfb3BzLgo+ICsgKgo+ICsgKiBAc3ViY29tcG9uZW50IG11c3QgYmUgbm9uemVybyBh bmQgaXMgdXNlZCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbXVsdGlwbGUKPiArICogY29tcG9u ZW50cyByZWdpc3RlcmQgb24gdGhlIHNhbWUgZGV2aWNlIEBkZXYuIFRoZXNlIGNvbXBvbmVudHMg YXJlIG1hdGNoCj4gKyAqIHVzaW5nIGNvbXBvbmVudF9tYXRjaF9hZGRfdHlwZWQoKS4KPiArICoK PiArICogVGhlIGNvbXBvbmVudCBuZWVkcyB0byBiZSB1bnJlZ2lzdGVyZWQgYWdhaW4gYXQgZHJp dmVyIHVubG9hZC9kaXNjb25uZWN0IGJ5Cj4gKyAqIGNhbGxpbmcgY29tcG9uZW50X2RlbCgpLgo+ ICsgKgo+ICsgKiBTZWUgYWxzbyBjb21wb25lbnRfYWRkKCkuCj4gKyAqLwo+ICtpbnQgY29tcG9u ZW50X2FkZF90eXBlZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBjb21wb25lbnRf b3BzICpvcHMsCj4gKwlpbnQgc3ViY29tcG9uZW50KQo+ICt7Cj4gKwlpZiAoV0FSTl9PTihzdWJj b21wb25lbnQgPT0gMCkpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0dXJuIF9fY29t cG9uZW50X2FkZChkZXYsIG9wcywgc3ViY29tcG9uZW50KTsKPiArfQo+ICtFWFBPUlRfU1lNQk9M X0dQTChjb21wb25lbnRfYWRkX3R5cGVkKTsKPiArCj4gKy8qKgo+ICsgKiBjb21wb25lbnRfYWRk IC0gcmVnaXN0ZXIgYSBjb21wb25lbnQKPiArICogQGRldjogY29tcG9uZW50IGRldmljZQo+ICsg KiBAb3BzOiBjb21wb25lbnQgY2FsbGJhY2tzCj4gKyAqCj4gKyAqIFJlZ2lzdGVyIGEgbmV3IGNv bXBvbmVudCBmb3IgQGRldi4gRnVuY3Rpb25zIGluIEBvcHMgd2lsbCBiZSBjYWxsIHdoZW4gdGhl Cj4gKyAqIGFnZ3JlZ2F0ZSBkcml2ZXIgaXMgcmVhZHkgdG8gYmluZCB0aGUgb3ZlcmFsbCBkcml2 ZXIgYnkgY2FsbGluZwo+ICsgKiBjb21wb25lbnRfYmluZF9hbGwoKS4gU2VlIGFsc28gJnN0cnVj dCBjb21wb25lbnRfb3BzLgo+ICsgKgo+ICsgKiBUaGUgY29tcG9uZW50IG5lZWRzIHRvIGJlIHVu cmVnaXN0ZXJlZCBhZ2FpbiBhdCBkcml2ZXIgdW5sb2FkL2Rpc2Nvbm5lY3QgYnkKPiArICogY2Fs bGluZyBjb21wb25lbnRfZGVsKCkuCj4gKyAqCj4gKyAqIFNlZSBhbHNvIGNvbXBvbmVudF9hZGRf dHlwZWQoKSBmb3IgYSB2YXJpYW50IHRoYXQgYWxsb3dzIG11bHRpcGxlZCBkaWZmZXJlbnQKPiAr ICogY29tcG9uZW50cyBvbiB0aGUgc2FtZSBkZXZpY2UuCj4gKyAqLwo+ICtpbnQgY29tcG9uZW50 X2FkZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzICpvcHMp Cj4gK3sKPiArCXJldHVybiBfX2NvbXBvbmVudF9hZGQoZGV2LCBvcHMsIDApOwo+ICt9Cj4gIEVY UE9SVF9TWU1CT0xfR1BMKGNvbXBvbmVudF9hZGQpOwo+ICAKPiAgLyoqCj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvY29tcG9uZW50LmggYi9pbmNsdWRlL2xpbnV4L2NvbXBvbmVudC5oCj4g aW5kZXggNjdhODk5ZGQyZTEwLi45ZTY5ZTIxMTdmMGIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9s aW51eC9jb21wb25lbnQuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvY29tcG9uZW50LmgKPiBAQCAt MzQsNiArMzQsOCBAQCBzdHJ1Y3QgY29tcG9uZW50X29wcyB7Cj4gIH07Cj4gIAo+ICBpbnQgY29t cG9uZW50X2FkZChzdHJ1Y3QgZGV2aWNlICosIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzICop Owo+ICtpbnQgY29tcG9uZW50X2FkZF90eXBlZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0 cnVjdCBjb21wb25lbnRfb3BzICpvcHMsCj4gKwlpbnQgc3ViY29tcG9uZW50KTsKPiAgdm9pZCBj b21wb25lbnRfZGVsKHN0cnVjdCBkZXZpY2UgKiwgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMg Kik7Cj4gIAo+ICBpbnQgY29tcG9uZW50X2JpbmRfYWxsKHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwg dm9pZCAqbWFzdGVyX2RhdGEpOwo+IEBAIC05MSw2ICs5Myw5IEBAIHZvaWQgY29tcG9uZW50X21h dGNoX2FkZF9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCXN0cnVjdCBjb21wb25l bnRfbWF0Y2ggKiptYXRjaHB0ciwKPiAgCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICos IHZvaWQgKiksCj4gIAlpbnQgKCpjb21wYXJlKShzdHJ1Y3QgZGV2aWNlICosIHZvaWQgKiksIHZv aWQgKmNvbXBhcmVfZGF0YSk7Cj4gK3ZvaWQgY29tcG9uZW50X21hdGNoX2FkZF90eXBlZChzdHJ1 Y3QgZGV2aWNlICptYXN0ZXIsCj4gKwlzdHJ1Y3QgY29tcG9uZW50X21hdGNoICoqbWF0Y2hwdHIs Cj4gKwlpbnQgKCpjb21wYXJlX3R5cGVkKShzdHJ1Y3QgZGV2aWNlICosIGludCwgdm9pZCAqKSwg dm9pZCAqY29tcGFyZV9kYXRhKTsKPiAgCj4gIC8qKgo+ICAgKiBjb21wb25lbnRfbWF0Y2hfYWRk IC0gYWRkIGEgY29tcGVudCBtYXRjaAo+IEBAIC0xMDEsMTIgKzEwNiwxMyBAQCB2b2lkIGNvbXBv bmVudF9tYXRjaF9hZGRfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gICAqCj4gICAq IFRoaXMgYWRkcyBhIG5ldyBjb21wb25lbnQgbWF0Y2ggdG8gdGhlIGxpc3Qgc3RvcmVkIGluIEBt YXRjaHB0ciwgd2hpY2ggdGhlCj4gICAqIEBtYXN0ZXIgYWdncmVnYXRlIGRyaXZlciBuZWVkcyB0 byBmdW5jdGlvbi4gQG1hdGNocHRyIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8KPiAtICogTlVMTCBi ZWZvcmUgYWRkaW5nIHRoZSBmaXJzdCBtYXRjaC4KPiArICogTlVMTCBiZWZvcmUgYWRkaW5nIHRo ZSBmaXJzdCBtYXRjaC4gVGhpcyBvbmx5IG1hdGNoZXMgYWdhaW5zdCBjb21wb25lbnRzCj4gKyAq IGFkZGVkIHdpdGggY29tcG9uZW50X2FkZCgpLgo+ICAgKgo+ICAgKiBUaGUgYWxsb2NhdGVkIG1h dGNoIGxpc3QgaW4gQG1hdGNocHRyIGlzIGF1dG9tYXRpY2FsbHkgcmVsZWFzZWQgdXNpbmcgZGV2 bQo+ICAgKiBhY3Rpb25zLgo+ICAgKgo+IC0gKiBTZWUgYWxzbyBjb21wb25lbnRfbWF0Y2hfYWRk X3JlbGVhc2UoKS4KPiArICogU2VlIGFsc28gY29tcG9uZW50X21hdGNoX2FkZF9yZWxlYXNlKCkg YW5kIGNvbXBvbmVudF9tYXRjaF9hZGRfdHlwZWQoKS4KPiAgICovCj4gIHN0YXRpYyBpbmxpbmUg dm9pZCBjb21wb25lbnRfbWF0Y2hfYWRkKHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCXN0cnVj dCBjb21wb25lbnRfbWF0Y2ggKiptYXRjaHB0ciwKPiAtLSAKPiAyLjIwLjEKPiAKCi0tIApEYW5p ZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxv Zy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK