From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A87D33C9 for ; Mon, 31 Oct 2022 17:24:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A6A5C433C1; Mon, 31 Oct 2022 17:24:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1667237098; bh=L2DTKbzzG8agvR9eg8iwoy8a6p94nxgFrdIuJOLI3hM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=alRFXgOXTskmXTUkD7pX+beDjAWS7SHjyseUhGzvEb5sCQwK9BR9d0/ucv2yDIOtf zV/UlD8xiDUAeiXEXCcINfJvVIV5WWyIBGJ/WE+vAmQQOmGEpt7P5OV5/jvOHDPx9A TGGQyRbfjTVC+Bj9U9YRcz66nzJxgf/TlE5YTimFTd2hzB8+lQ+Oixc4Se883V7kcM MalfjFA1OY5d0yMr6gGIuX1jNuDVTOeisDEZdbFoCMyxByYXyD1hoOiqZfZdSbhtDP WXObWPjbiPPUKNmkLQBzSikHqdqxrlFb89IhkA8OOadsYu8FsAlwRBhKkaVO3ydXza QKI4rMY5z8Urw== Date: Mon, 31 Oct 2022 17:24:53 +0000 From: Lee Jones To: "Russell King (Oracle)" Cc: Hector Martin , Arnd Bergmann , Linus Walleij , Alyssa Rosenzweig , asahi@lists.linux.dev, Bartosz Golaszewski , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, Sven Peter Subject: Re: [PATCH 4/6] platform/apple: Add new Apple Mac SMC driver Message-ID: References: <8f30a490-f970-6605-20cb-c2256daab9de@marcan.st> <82088b05-2a0d-69cc-ba2c-d61c74c9d855@marcan.st> Precedence: bulk X-Mailing-List: asahi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Mon, 31 Oct 2022, Russell King (Oracle) wrote: > On Mon, Oct 31, 2022 at 08:46:25AM +0000, Lee Jones wrote: > > On Fri, 28 Oct 2022, Russell King (Oracle) wrote: > > > > > On Mon, Sep 12, 2022 at 11:55:14AM +0100, Lee Jones wrote: > > > > > I'm guessing this series is now dead, and Hector needs to re-spin the > > > > > patch set according to your views. I'm guessing this is going to take > > > > > a major re-work of the patch series. > > > > > > > > > > I suspect my attempt and trying to get this upstream has made things > > > > > more complicated, because I doubt Hector has updated his patch set > > > > > with the review comments that have been made so far... so this is > > > > > now quite a mess. I think, once this is sorted, the entire series > > > > > will need to be re-reviewed entirely afresh. > > > > > > > > I have no insight into what Hector is doing, or plans to do. > > > > > > It seems there's no plans by Hector to address this, so it comes down > > > to me. > > > > > > So, guessing what you're after, would something like the following > > > work for you? I don't see *any* point in creating more yet more > > > platform devices unless we're on a mission to maximise wasted memory > > > resources (which this split will already be doing by creating two > > > small modules instead of one.) > > > > > > Obviously, this is not an official patch yet, it's just to find out > > > what code structure you are looking for. > > > > > > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > > > index 78c6d9d99c3f..8d4c0508a2c8 100644 > > > --- a/drivers/mfd/Makefile > > > +++ b/drivers/mfd/Makefile > > > @@ -18,6 +18,8 @@ obj-$(CONFIG_MFD_ENE_KB3930) += ene-kb3930.o > > > obj-$(CONFIG_MFD_EXYNOS_LPASS) += exynos-lpass.o > > > obj-$(CONFIG_MFD_GATEWORKS_GSC) += gateworks-gsc.o > > > > > > +obj-$(CONFIG_APPLE_SMC) += apple-smc.o > > > + > > > obj-$(CONFIG_HTC_PASIC3) += htc-pasic3.o > > > obj-$(CONFIG_HTC_I2CPLD) += htc-i2cpld.o > > > > > > diff --git a/drivers/mfd/apple-smc.c b/drivers/mfd/apple-smc.c > > > new file mode 100644 > > > index 000000000000..bc59d1c5e13d > > > --- /dev/null > > > +++ b/drivers/mfd/apple-smc.c > > > @@ -0,0 +1,38 @@ > > > +#include > > > +#include > > > + > > > +static const struct mfd_cell apple_smc_devs[] = { > > > + { > > > + .name = "macsmc-gpio", > > > + .of_compatible = "apple,smc-gpio", > > > + }, > > > + { > > > + .name = "macsmc-hid", > > > + }, > > > + { > > > + .name = "macsmc-power", > > > + }, > > > + { > > > + .name = "macsmc-reboot", > > > + }, > > > + { > > > + .name = "macsmc-rtc", > > > + }, > > > +}; > > > + > > > +int apple_smc_mfd_probe(struct device *dev) > > > +{ > > > + return mfd_add_devices(dev, -1, apple_smc_devs, > > > + ARRAY_SIZE(apple_smc_devs), NULL, 0, NULL); > > > +} > > > +EXPORT_SYMBOL(apple_smc_mfd_probe); > > > + > > > +void apple_smc_mfd_remove(struct device *dev) > > > +{ > > > + mfd_remove_devices(dev); > > > +} > > > +EXPORT_SYMBOL(apple_smc_mfd_remove); > > > + > > > +MODULE_AUTHOR("Hector Martin "); > > > +MODULE_LICENSE("Dual MIT/GPL"); > > > +MODULE_DESCRIPTION("Apple SMC MFD core"); > > > > Conceptually interesting, not seen this one before, but clearly a > > hack, no? Pretty sure all of the other cores in MFD are represented > > by a Platform Device. > > No one seems to understand what you actually want to see with the > smc-core.c part, so I'm trying to find out what code structure > would suit you. > > It seemed from the thread that moving smc-core.c to drivers/mfd > wasn't desirable, but there was the desire to move the mfd bits > into there - so that's what I've done with this patch. It doesn't > make any sense what so ever to add yet another platform device > into this structure with all of the complication around what happens > if the user forces it to unbind, so I didn't. > > > Why not implement the inverse? > > What do you mean "the inverse" ? The inverse of this patch is moving > everything of smc-core.c except the MFD bits into drivers/mfd leaving > the MFD bits in drivers/platform/apple, which makes no sense. > > > The Apple SMC is clearly an MFD, in > > Linux terms, so why not move the Platform Device into here, fetch all > > of the global resources, register the sub-devices, then call into the > > rtkit implementation in drivers/platform? > > I thought you had previously ruled out the idea of moving the contents > of drivers/platform/apple into drivers/mfd, but maybe your position on > that had changed through the course of the discussion. It's really not > obvious to me what you want from what's been said in this thread. > > So, I ask the direct question - would moving the code that is in this > patch set from drivers/platform/apple to drivers/mfd then make it > acceptable to you? In other words: > > drivers/platform/apple/smc_core.c > drivers/platform/apple/smc.h > drivers/platform/apple/smc_rtkit.c > > If not, then please clearly and fully state what you want to see. Sorry Russell, I'm out of time today. Please see my recent reply to Hector for now and I'll get back to you first thing. -- Lee Jones [李琼斯] 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1FEDDECAAA1 for ; Mon, 31 Oct 2022 17:26:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=d7Rr2NQ7ZmkYAEyGeghcHgOq4uFcqqQywuyG5wxpw5A=; b=zjjOrxtK5K7k4X yiILT6rtH2jEoK7hFvXlwH7KTwoGiXgKyP6xAusRRBAWaNuNMdYxiM9bGzMeKcIq00mnhra1WQssr 2RlbhC5Nl+h65JrdS97E6C6A3ksVoqI8tnB2GRsUFXuVgyx6spu3lGefz59HG0OIC0qjEPByYM22r EL9mUhfaL3YGd/9r1lspmAYQE02x0p+/kS8rnKTU6jTi7NA+VnWj+CG8jGdJh+gpFntU368LlHVJ0 7yrdMKlUUzQjlvA1VkioherhyMDuMWvRWo572acptdZeeJFpjmc2usnk3n1pauDPUXmKts3ODh2ug PT1NUnY6LDR420sy/jOQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1opYX3-00DLoQ-5o; Mon, 31 Oct 2022 17:25:05 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1opYWz-00DLnB-FF for linux-arm-kernel@lists.infradead.org; Mon, 31 Oct 2022 17:25:03 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 28FC0B8189E; Mon, 31 Oct 2022 17:25:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A6A5C433C1; Mon, 31 Oct 2022 17:24:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1667237098; bh=L2DTKbzzG8agvR9eg8iwoy8a6p94nxgFrdIuJOLI3hM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=alRFXgOXTskmXTUkD7pX+beDjAWS7SHjyseUhGzvEb5sCQwK9BR9d0/ucv2yDIOtf zV/UlD8xiDUAeiXEXCcINfJvVIV5WWyIBGJ/WE+vAmQQOmGEpt7P5OV5/jvOHDPx9A TGGQyRbfjTVC+Bj9U9YRcz66nzJxgf/TlE5YTimFTd2hzB8+lQ+Oixc4Se883V7kcM MalfjFA1OY5d0yMr6gGIuX1jNuDVTOeisDEZdbFoCMyxByYXyD1hoOiqZfZdSbhtDP WXObWPjbiPPUKNmkLQBzSikHqdqxrlFb89IhkA8OOadsYu8FsAlwRBhKkaVO3ydXza QKI4rMY5z8Urw== Date: Mon, 31 Oct 2022 17:24:53 +0000 From: Lee Jones To: "Russell King (Oracle)" Cc: Hector Martin , Arnd Bergmann , Linus Walleij , Alyssa Rosenzweig , asahi@lists.linux.dev, Bartosz Golaszewski , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, Sven Peter Subject: Re: [PATCH 4/6] platform/apple: Add new Apple Mac SMC driver Message-ID: References: <8f30a490-f970-6605-20cb-c2256daab9de@marcan.st> <82088b05-2a0d-69cc-ba2c-d61c74c9d855@marcan.st> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221031_102501_818390_EC5635C9 X-CRM114-Status: GOOD ( 52.06 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCAzMSBPY3QgMjAyMiwgUnVzc2VsbCBLaW5nIChPcmFjbGUpIHdyb3RlOgoKPiBPbiBN b24sIE9jdCAzMSwgMjAyMiBhdCAwODo0NjoyNUFNICswMDAwLCBMZWUgSm9uZXMgd3JvdGU6Cj4g PiBPbiBGcmksIDI4IE9jdCAyMDIyLCBSdXNzZWxsIEtpbmcgKE9yYWNsZSkgd3JvdGU6Cj4gPiAK PiA+ID4gT24gTW9uLCBTZXAgMTIsIDIwMjIgYXQgMTE6NTU6MTRBTSArMDEwMCwgTGVlIEpvbmVz IHdyb3RlOgo+ID4gPiA+ID4gSSdtIGd1ZXNzaW5nIHRoaXMgc2VyaWVzIGlzIG5vdyBkZWFkLCBh bmQgSGVjdG9yIG5lZWRzIHRvIHJlLXNwaW4gdGhlCj4gPiA+ID4gPiBwYXRjaCBzZXQgYWNjb3Jk aW5nIHRvIHlvdXIgdmlld3MuIEknbSBndWVzc2luZyB0aGlzIGlzIGdvaW5nIHRvIHRha2UKPiA+ ID4gPiA+IGEgbWFqb3IgcmUtd29yayBvZiB0aGUgcGF0Y2ggc2VyaWVzLgo+ID4gPiA+ID4gCj4g PiA+ID4gPiBJIHN1c3BlY3QgbXkgYXR0ZW1wdCBhbmQgdHJ5aW5nIHRvIGdldCB0aGlzIHVwc3Ry ZWFtIGhhcyBtYWRlIHRoaW5ncwo+ID4gPiA+ID4gbW9yZSBjb21wbGljYXRlZCwgYmVjYXVzZSBJ IGRvdWJ0IEhlY3RvciBoYXMgdXBkYXRlZCBoaXMgcGF0Y2ggc2V0Cj4gPiA+ID4gPiB3aXRoIHRo ZSByZXZpZXcgY29tbWVudHMgdGhhdCBoYXZlIGJlZW4gbWFkZSBzbyBmYXIuLi4gc28gdGhpcyBp cwo+ID4gPiA+ID4gbm93IHF1aXRlIGEgbWVzcy4gSSB0aGluaywgb25jZSB0aGlzIGlzIHNvcnRl ZCwgdGhlIGVudGlyZSBzZXJpZXMKPiA+ID4gPiA+IHdpbGwgbmVlZCB0byBiZSByZS1yZXZpZXdl ZCBlbnRpcmVseSBhZnJlc2guCj4gPiA+ID4gCj4gPiA+ID4gSSBoYXZlIG5vIGluc2lnaHQgaW50 byB3aGF0IEhlY3RvciBpcyBkb2luZywgb3IgcGxhbnMgdG8gZG8uCj4gPiA+IAo+ID4gPiBJdCBz ZWVtcyB0aGVyZSdzIG5vIHBsYW5zIGJ5IEhlY3RvciB0byBhZGRyZXNzIHRoaXMsIHNvIGl0IGNv bWVzIGRvd24KPiA+ID4gdG8gbWUuCj4gPiA+IAo+ID4gPiBTbywgZ3Vlc3Npbmcgd2hhdCB5b3Un cmUgYWZ0ZXIsIHdvdWxkIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcKPiA+ID4gd29yayBm b3IgeW91PyBJIGRvbid0IHNlZSAqYW55KiBwb2ludCBpbiBjcmVhdGluZyBtb3JlIHlldCBtb3Jl Cj4gPiA+IHBsYXRmb3JtIGRldmljZXMgdW5sZXNzIHdlJ3JlIG9uIGEgbWlzc2lvbiB0byBtYXhp bWlzZSB3YXN0ZWQgbWVtb3J5Cj4gPiA+IHJlc291cmNlcyAod2hpY2ggdGhpcyBzcGxpdCB3aWxs IGFscmVhZHkgYmUgZG9pbmcgYnkgY3JlYXRpbmcgdHdvCj4gPiA+IHNtYWxsIG1vZHVsZXMgaW5z dGVhZCBvZiBvbmUuKQo+ID4gPiAKPiA+ID4gT2J2aW91c2x5LCB0aGlzIGlzIG5vdCBhbiBvZmZp Y2lhbCBwYXRjaCB5ZXQsIGl0J3MganVzdCB0byBmaW5kIG91dAo+ID4gPiB3aGF0IGNvZGUgc3Ry dWN0dXJlIHlvdSBhcmUgbG9va2luZyBmb3IuCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZmQvTWFrZWZpbGUgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQo+ID4gPiBpbmRleCA3OGM2 ZDlkOTljM2YuLjhkNGMwNTA4YTJjOCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9tZmQvTWFr ZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy9tZmQvTWFrZWZpbGUKPiA+ID4gQEAgLTE4LDYgKzE4 LDggQEAgb2JqLSQoQ09ORklHX01GRF9FTkVfS0IzOTMwKQkrPSBlbmUta2IzOTMwLm8KPiA+ID4g IG9iai0kKENPTkZJR19NRkRfRVhZTk9TX0xQQVNTKQkrPSBleHlub3MtbHBhc3Mubwo+ID4gPiAg b2JqLSQoQ09ORklHX01GRF9HQVRFV09SS1NfR1NDKQkrPSBnYXRld29ya3MtZ3NjLm8KPiA+ID4g IAo+ID4gPiArb2JqLSQoQ09ORklHX0FQUExFX1NNQykJCSs9IGFwcGxlLXNtYy5vCj4gPiA+ICsK PiA+ID4gIG9iai0kKENPTkZJR19IVENfUEFTSUMzKQkrPSBodGMtcGFzaWMzLm8KPiA+ID4gIG9i ai0kKENPTkZJR19IVENfSTJDUExEKQkrPSBodGMtaTJjcGxkLm8KPiA+ID4gIAo+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZmQvYXBwbGUtc21jLmMgYi9kcml2ZXJzL21mZC9hcHBsZS1zbWMu Ywo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmJj NTlkMWM1ZTEzZAo+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ICsrKyBiL2RyaXZlcnMvbWZkL2Fw cGxlLXNtYy5jCj4gPiA+IEBAIC0wLDAgKzEsMzggQEAKPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9t ZmQvY29yZS5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L21mZC9hcHBsZS1zbWMuaD4KPiA+ID4g Kwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBhcHBsZV9zbWNfZGV2c1tdID0g ewo+ID4gPiArCXsKPiA+ID4gKwkJLm5hbWUgPSAibWFjc21jLWdwaW8iLAo+ID4gPiArCQkub2Zf Y29tcGF0aWJsZSA9ICJhcHBsZSxzbWMtZ3BpbyIsCj4gPiA+ICsJfSwKPiA+ID4gKwl7Cj4gPiA+ ICsJCS5uYW1lID0gIm1hY3NtYy1oaWQiLAo+ID4gPiArCX0sCj4gPiA+ICsJewo+ID4gPiArCQku bmFtZSA9ICJtYWNzbWMtcG93ZXIiLAo+ID4gPiArCX0sCj4gPiA+ICsJewo+ID4gPiArCQkubmFt ZSA9ICJtYWNzbWMtcmVib290IiwKPiA+ID4gKwl9LAo+ID4gPiArCXsKPiA+ID4gKwkJLm5hbWUg PSAibWFjc21jLXJ0YyIsCj4gPiA+ICsJfSwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK2ludCBh cHBsZV9zbWNfbWZkX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ID4gK3sKPiA+ID4gKwly ZXR1cm4gbWZkX2FkZF9kZXZpY2VzKGRldiwgLTEsIGFwcGxlX3NtY19kZXZzLAo+ID4gPiArCQkJ ICAgICAgIEFSUkFZX1NJWkUoYXBwbGVfc21jX2RldnMpLCBOVUxMLCAwLCBOVUxMKTsKPiA+ID4g K30KPiA+ID4gK0VYUE9SVF9TWU1CT0woYXBwbGVfc21jX21mZF9wcm9iZSk7Cj4gPiA+ICsKPiA+ ID4gK3ZvaWQgYXBwbGVfc21jX21mZF9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiAr ewo+ID4gPiArCW1mZF9yZW1vdmVfZGV2aWNlcyhkZXYpOwo+ID4gPiArfQo+ID4gPiArRVhQT1JU X1NZTUJPTChhcHBsZV9zbWNfbWZkX3JlbW92ZSk7Cj4gPiA+ICsKPiA+ID4gK01PRFVMRV9BVVRI T1IoIkhlY3RvciBNYXJ0aW4gPG1hcmNhbkBtYXJjYW4uc3Q+Iik7Cj4gPiA+ICtNT0RVTEVfTElD RU5TRSgiRHVhbCBNSVQvR1BMIik7Cj4gPiA+ICtNT0RVTEVfREVTQ1JJUFRJT04oIkFwcGxlIFNN QyBNRkQgY29yZSIpOwo+ID4gCj4gPiBDb25jZXB0dWFsbHkgaW50ZXJlc3RpbmcsIG5vdCBzZWVu IHRoaXMgb25lIGJlZm9yZSwgYnV0IGNsZWFybHkgYQo+ID4gaGFjaywgbm8/ICBQcmV0dHkgc3Vy ZSBhbGwgb2YgdGhlIG90aGVyIGNvcmVzIGluIE1GRCBhcmUgcmVwcmVzZW50ZWQKPiA+IGJ5IGEg UGxhdGZvcm0gRGV2aWNlLgo+IAo+IE5vIG9uZSBzZWVtcyB0byB1bmRlcnN0YW5kIHdoYXQgeW91 IGFjdHVhbGx5IHdhbnQgdG8gc2VlIHdpdGggdGhlCj4gc21jLWNvcmUuYyBwYXJ0LCBzbyBJJ20g dHJ5aW5nIHRvIGZpbmQgb3V0IHdoYXQgY29kZSBzdHJ1Y3R1cmUKPiB3b3VsZCBzdWl0IHlvdS4K PiAKPiBJdCBzZWVtZWQgZnJvbSB0aGUgdGhyZWFkIHRoYXQgbW92aW5nIHNtYy1jb3JlLmMgdG8g ZHJpdmVycy9tZmQKPiB3YXNuJ3QgZGVzaXJhYmxlLCBidXQgdGhlcmUgd2FzIHRoZSBkZXNpcmUg dG8gbW92ZSB0aGUgbWZkIGJpdHMKPiBpbnRvIHRoZXJlIC0gc28gdGhhdCdzIHdoYXQgSSd2ZSBk b25lIHdpdGggdGhpcyBwYXRjaC4gSXQgZG9lc24ndAo+IG1ha2UgYW55IHNlbnNlIHdoYXQgc28g ZXZlciB0byBhZGQgeWV0IGFub3RoZXIgcGxhdGZvcm0gZGV2aWNlCj4gaW50byB0aGlzIHN0cnVj dHVyZSB3aXRoIGFsbCBvZiB0aGUgY29tcGxpY2F0aW9uIGFyb3VuZCB3aGF0IGhhcHBlbnMKPiBp ZiB0aGUgdXNlciBmb3JjZXMgaXQgdG8gdW5iaW5kLCBzbyBJIGRpZG4ndC4KPiAKPiA+IFdoeSBu b3QgaW1wbGVtZW50IHRoZSBpbnZlcnNlPwo+IAo+IFdoYXQgZG8geW91IG1lYW4gInRoZSBpbnZl cnNlIiA/IFRoZSBpbnZlcnNlIG9mIHRoaXMgcGF0Y2ggaXMgbW92aW5nCj4gZXZlcnl0aGluZyBv ZiBzbWMtY29yZS5jIGV4Y2VwdCB0aGUgTUZEIGJpdHMgaW50byBkcml2ZXJzL21mZCBsZWF2aW5n Cj4gdGhlIE1GRCBiaXRzIGluIGRyaXZlcnMvcGxhdGZvcm0vYXBwbGUsIHdoaWNoIG1ha2VzIG5v IHNlbnNlLgo+IAo+ID4gVGhlIEFwcGxlIFNNQyBpcyBjbGVhcmx5IGFuIE1GRCwgaW4KPiA+IExp bnV4IHRlcm1zLCBzbyB3aHkgbm90IG1vdmUgdGhlIFBsYXRmb3JtIERldmljZSBpbnRvIGhlcmUs IGZldGNoIGFsbAo+ID4gb2YgdGhlIGdsb2JhbCByZXNvdXJjZXMsIHJlZ2lzdGVyIHRoZSBzdWIt ZGV2aWNlcywgdGhlbiBjYWxsIGludG8gdGhlCj4gPiBydGtpdCBpbXBsZW1lbnRhdGlvbiBpbiBk cml2ZXJzL3BsYXRmb3JtPyAKPiAKPiBJIHRob3VnaHQgeW91IGhhZCBwcmV2aW91c2x5IHJ1bGVk IG91dCB0aGUgaWRlYSBvZiBtb3ZpbmcgdGhlIGNvbnRlbnRzCj4gb2YgZHJpdmVycy9wbGF0Zm9y bS9hcHBsZSBpbnRvIGRyaXZlcnMvbWZkLCBidXQgbWF5YmUgeW91ciBwb3NpdGlvbiBvbgo+IHRo YXQgaGFkIGNoYW5nZWQgdGhyb3VnaCB0aGUgY291cnNlIG9mIHRoZSBkaXNjdXNzaW9uLiBJdCdz IHJlYWxseSBub3QKPiBvYnZpb3VzIHRvIG1lIHdoYXQgeW91IHdhbnQgZnJvbSB3aGF0J3MgYmVl biBzYWlkIGluIHRoaXMgdGhyZWFkLgo+IAo+IFNvLCBJIGFzayB0aGUgZGlyZWN0IHF1ZXN0aW9u IC0gd291bGQgbW92aW5nIHRoZSBjb2RlIHRoYXQgaXMgaW4gdGhpcwo+IHBhdGNoIHNldCBmcm9t IGRyaXZlcnMvcGxhdGZvcm0vYXBwbGUgdG8gZHJpdmVycy9tZmQgdGhlbiBtYWtlIGl0Cj4gYWNj ZXB0YWJsZSB0byB5b3U/IEluIG90aGVyIHdvcmRzOgo+IAo+ICBkcml2ZXJzL3BsYXRmb3JtL2Fw cGxlL3NtY19jb3JlLmMKPiAgZHJpdmVycy9wbGF0Zm9ybS9hcHBsZS9zbWMuaAo+ICBkcml2ZXJz L3BsYXRmb3JtL2FwcGxlL3NtY19ydGtpdC5jCj4gCj4gSWYgbm90LCB0aGVuIHBsZWFzZSBjbGVh cmx5IGFuZCBmdWxseSBzdGF0ZSB3aGF0IHlvdSB3YW50IHRvIHNlZS4KClNvcnJ5IFJ1c3NlbGws IEknbSBvdXQgb2YgdGltZSB0b2RheS4gIFBsZWFzZSBzZWUgbXkgcmVjZW50IHJlcGx5IHRvCkhl Y3RvciBmb3Igbm93IGFuZCBJJ2xsIGdldCBiYWNrIHRvIHlvdSBmaXJzdCB0aGluZy4KCi0tIApM ZWUgSm9uZXMgW+adjueQvOaWr10KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK