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.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, FREEMAIL_REPLYTO_END_DIGIT,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 E965DC41517 for ; Thu, 25 Jul 2019 12:51:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B804B2190F for ; Thu, 25 Jul 2019 12:51:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KrxMTzFA" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389382AbfGYMve (ORCPT ); Thu, 25 Jul 2019 08:51:34 -0400 Received: from mail-lf1-f68.google.com ([209.85.167.68]:40955 "EHLO mail-lf1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388100AbfGYMve (ORCPT ); Thu, 25 Jul 2019 08:51:34 -0400 Received: by mail-lf1-f68.google.com with SMTP id b17so34470432lff.7; Thu, 25 Jul 2019 05:51:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=/Xsj00ljhBsEGtdT+wj7N34Rn+B2eibrc+3bGLHtXVM=; b=KrxMTzFAhzWFqULF0MbgezdmTCddBLW97aZPw3roEOocGi9PDJFCSZH+TnwulnpeHu 3dXe6bI5xxyAEbMIqJ7cE0SM5Oidx/BetTLPcq2iPyBBaZJUK4Fu316uFx+7yYEtQspd 7Wd9dy9MMx4pEro5eP9OpYcYTFB+yFEDUswcHd8NvJXkH/qh9HqcXpCcPo98DeGgu+Fz yDYtoOYw+cgpWw0MTtZg/sSmqRJkcceW1Rw7N/o+FwuIIM4y7hjxM6d7sVHRcrlWfviM tdoCkMRczvDnAkzxE4hW0IdrhEwqrpzzmBZ/wdXyF8q8+hkBo2kecS8AtzQnc4HOXUYY 4dAA== 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:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=/Xsj00ljhBsEGtdT+wj7N34Rn+B2eibrc+3bGLHtXVM=; b=ZVT5j4lZyHk5Z290cj99uRQ/hFuvQxsCgrVSyhSPiJCGNkpyrgoJjkAZRyP5dpZT1/ xvl78D10Oy9T9PwldTjVHarvnYvqn6eubZSBFntjLpBZMeS17NUaXlkYsumQ3S1tDMoa ajzNHvwXoEZQRd43Clx1Lxs/IVCDbnLknCwQpYUnrBmraqDu0I0ea9vxCtRlim5uZyZe SEdss2eYWVJgEPtNNHeFiMVS/ZdsfFP7BMZOI3PpQGd/Xxw9ZuynVwgNyf10P0xuc3ox FZQ5bU9Chfm/xeUFOJexF/a1HWxPx1j6aXhd0MQNM6ME8IMUi/OVy5fpcn1ZJwbzmU+S EbeA== X-Gm-Message-State: APjAAAU/W3x1jCfafWxhbgGHssldwjF631wi5GrBr4utXSsmuTGULu4t cb0iZwLSP5tKuWQFtb7dmd/UOSmVnxd8Zl5uXkE= X-Google-Smtp-Source: APXvYqxevdANPfOlkVtzMQ882vgwBXm0Jbm6vzvza8p7XXpVnciz9Vl5i1ZzZxjAhKyc6EfZHmf4aPb+4/23UDQiUlw= X-Received: by 2002:a19:914c:: with SMTP id y12mr41019898lfj.108.1564059090602; Thu, 25 Jul 2019 05:51:30 -0700 (PDT) MIME-Version: 1.0 References: <20190723122016.30279-1-a.swigon@partner.samsung.com> <20190723122016.30279-5-a.swigon@partner.samsung.com> In-Reply-To: <20190723122016.30279-5-a.swigon@partner.samsung.com> Reply-To: cwchoi00@gmail.com From: Chanwoo Choi Date: Thu, 25 Jul 2019 21:50:53 +0900 Message-ID: Subject: Re: [RFC PATCH 04/11] devfreq: exynos-bus: Clean up code To: =?UTF-8?B?QXJ0dXIgxZp3aWdvxYQ=?= Cc: devicetree , linux-arm-kernel , linux-samsung-soc , linux-kernel , Linux PM list , dri-devel , Krzysztof Kozlowski , Chanwoo Choi , MyungJoo Ham , inki.dae@samsung.com, Seung-Woo Kim , georgi.djakov@linaro.org, Marek Szyprowski Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2019=EB=85=84 7=EC=9B=94 24=EC=9D=BC (=EC=88=98) =EC=98=A4=EC=A0=84 8:07, A= rtur =C5=9Awigo=C5=84 =EB=8B=98=EC=9D=B4 =EC= =9E=91=EC=84=B1: > > This patch adds minor improvements to the exynos-bus driver. > > Signed-off-by: Artur =C5=9Awigo=C5=84 > --- > drivers/devfreq/exynos-bus.c | 49 ++++++++++++++++-------------------- > 1 file changed, 22 insertions(+), 27 deletions(-) > > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c > index 4bb83b945bf7..412511ca7703 100644 > --- a/drivers/devfreq/exynos-bus.c > +++ b/drivers/devfreq/exynos-bus.c > @@ -15,11 +15,10 @@ > #include > #include > #include > -#include > +#include > #include > #include > #include > -#include > > #define DEFAULT_SATURATION_RATIO 40 > #define DEFAULT_VOLTAGE_TOLERANCE 2 > @@ -256,7 +255,7 @@ static int exynos_bus_parent_parse_of(struct device_n= ode *np, > struct exynos_bus *bus) > { > struct device *dev =3D bus->dev; > - int i, ret, count, size; > + int i, ret, count; > > /* Get the regulator to provide each bus with the power */ > bus->regulator =3D devm_regulator_get(dev, "vdd"); > @@ -283,8 +282,7 @@ static int exynos_bus_parent_parse_of(struct device_n= ode *np, > } > bus->edev_count =3D count; > > - size =3D sizeof(*bus->edev) * count; > - bus->edev =3D devm_kzalloc(dev, size, GFP_KERNEL); > + bus->edev =3D devm_kcalloc(dev, count, sizeof(*bus->edev), GFP_KE= RNEL); > if (!bus->edev) { > ret =3D -ENOMEM; > goto err_regulator; > @@ -388,7 +386,7 @@ static int exynos_bus_profile_init(struct exynos_bus = *bus, > ondemand_data =3D devm_kzalloc(dev, sizeof(*ondemand_data), GFP_K= ERNEL); > if (!ondemand_data) { > ret =3D -ENOMEM; > - goto err; > + goto out; > } > ondemand_data->upthreshold =3D 40; > ondemand_data->downdifferential =3D 5; > @@ -400,14 +398,14 @@ static int exynos_bus_profile_init(struct exynos_bu= s *bus, > if (IS_ERR(bus->devfreq)) { > dev_err(dev, "failed to add devfreq device\n"); > ret =3D PTR_ERR(bus->devfreq); > - goto err; > + goto out; > } > > /* Register opp_notifier to catch the change of OPP */ > ret =3D devm_devfreq_register_opp_notifier(dev, bus->devfreq); > if (ret < 0) { > dev_err(dev, "failed to register opp notifier\n"); > - goto err; > + goto out; > } > > /* > @@ -417,16 +415,16 @@ static int exynos_bus_profile_init(struct exynos_bu= s *bus, > ret =3D exynos_bus_enable_edev(bus); > if (ret < 0) { > dev_err(dev, "failed to enable devfreq-event devices\n"); > - goto err; > + goto out; > } > > ret =3D exynos_bus_set_event(bus); > if (ret < 0) { > dev_err(dev, "failed to set event to devfreq-event device= s\n"); > - goto err; > + goto out; > } > > -err: > +out: > return ret; > } > > @@ -446,27 +444,28 @@ static int exynos_bus_profile_init_passive(struct e= xynos_bus *bus, > parent_devfreq =3D devfreq_get_devfreq_by_phandle(dev, 0); > if (IS_ERR(parent_devfreq)) { > ret =3D -EPROBE_DEFER; > - goto err; > + goto out; > } > > passive_data =3D devm_kzalloc(dev, sizeof(*passive_data), GFP_KER= NEL); > if (!passive_data) { > ret =3D -ENOMEM; > - goto err; > + goto out; > } > passive_data->parent =3D parent_devfreq; > > /* Add devfreq device for exynos bus with passive governor */ > - bus->devfreq =3D devm_devfreq_add_device(dev, profile, DEVFREQ_GO= V_PASSIVE, > + bus->devfreq =3D devm_devfreq_add_device(dev, profile, > + DEVFREQ_GOV_PASSIVE, > passive_data); > if (IS_ERR(bus->devfreq)) { > dev_err(dev, > "failed to add devfreq dev with passive governor\= n"); > ret =3D PTR_ERR(bus->devfreq); > - goto err; > + goto out; > } > > -err: > +out: > return ret; > } > > @@ -484,11 +483,11 @@ static int exynos_bus_probe(struct platform_device = *pdev) > return -EINVAL; > } > > - bus =3D devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL); > + bus =3D devm_kzalloc(dev, sizeof(*bus), GFP_KERNEL); > if (!bus) > return -ENOMEM; > mutex_init(&bus->lock); > - bus->dev =3D &pdev->dev; > + bus->dev =3D dev; > platform_set_drvdata(pdev, bus); > > /* Parse the device-tree to get the resource information */ > @@ -502,7 +501,7 @@ static int exynos_bus_probe(struct platform_device *p= dev) > goto err; > } > > - node =3D of_parse_phandle(dev->of_node, "devfreq", 0); > + node =3D of_parse_phandle(np, "devfreq", 0); > if (node) { > of_node_put(node); > ret =3D exynos_bus_profile_init_passive(bus, profile); > @@ -547,12 +546,10 @@ static int exynos_bus_resume(struct device *dev) > int ret; > > ret =3D exynos_bus_enable_edev(bus); > - if (ret < 0) { > + if (ret < 0) > dev_err(dev, "failed to enable the devfreq-event devices\= n"); > - return ret; > - } > > - return 0; > + return ret; > } > > static int exynos_bus_suspend(struct device *dev) > @@ -561,12 +558,10 @@ static int exynos_bus_suspend(struct device *dev) > int ret; > NACK. > ret =3D exynos_bus_disable_edev(bus); > - if (ret < 0) { > + if (ret < 0) > dev_err(dev, "failed to disable the devfreq-event devices= \n"); > - return ret; > - } > > - return 0; > + return ret; > } > #endif > > -- > 2.17.1 > NACK. As I already commented, It has never any benefit. I think that it is not usful. Please drop it. --=20 Best Regards, Chanwoo Choi 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_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, FREEMAIL_REPLYTO_END_DIGIT,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 B78B5C7618B for ; Thu, 25 Jul 2019 12:51:36 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 8BFDB2190F for ; Thu, 25 Jul 2019 12:51:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Xhbkghi/"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KrxMTzFA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8BFDB2190F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date: From:In-Reply-To:References:MIME-Version:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=V7GgDfUEE0weskJ5jgosXfYxMWGGpmIwfF9GcjYgJzE=; b=Xhbkghi/WaGaWz CDvZ0AteD1U0QgDNF9YY0OPfhZvcwVIMD2Kmov0eUn3ZiLZ1kL7yQzA7Cxp0DW1ejqwpKLisMwmDp Ln8fI31XjjbTiDIHhqgI+DZGy4CBc+JvC7gUxtOyX5oJkl3cVeDZze8QE7bSuYhrxNUxMEJZi2C6+ t23hyr4nOvootsDD0kGHQNfuT4SbSP5npS6S0IeQ27osxys4eB+1VROtpzRXzRGxONMb3tzOJV2ic OLY7m6wZ9lVKNxgfBojjAgOI/F2K18+I3E5wunDsZnVui8/LFHoPb/4lLZamuOI048G7P51J6Y3Io wZKYeHEXtM/TphJASREg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hqdDb-0002Dx-TU; Thu, 25 Jul 2019 12:51:35 +0000 Received: from mail-lf1-x143.google.com ([2a00:1450:4864:20::143]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hqdDY-0002DW-GH for linux-arm-kernel@lists.infradead.org; Thu, 25 Jul 2019 12:51:34 +0000 Received: by mail-lf1-x143.google.com with SMTP id z15so30173642lfh.13 for ; Thu, 25 Jul 2019 05:51:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=/Xsj00ljhBsEGtdT+wj7N34Rn+B2eibrc+3bGLHtXVM=; b=KrxMTzFAhzWFqULF0MbgezdmTCddBLW97aZPw3roEOocGi9PDJFCSZH+TnwulnpeHu 3dXe6bI5xxyAEbMIqJ7cE0SM5Oidx/BetTLPcq2iPyBBaZJUK4Fu316uFx+7yYEtQspd 7Wd9dy9MMx4pEro5eP9OpYcYTFB+yFEDUswcHd8NvJXkH/qh9HqcXpCcPo98DeGgu+Fz yDYtoOYw+cgpWw0MTtZg/sSmqRJkcceW1Rw7N/o+FwuIIM4y7hjxM6d7sVHRcrlWfviM tdoCkMRczvDnAkzxE4hW0IdrhEwqrpzzmBZ/wdXyF8q8+hkBo2kecS8AtzQnc4HOXUYY 4dAA== 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:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=/Xsj00ljhBsEGtdT+wj7N34Rn+B2eibrc+3bGLHtXVM=; b=os6k6zAbjNlToPhc+g7K0sUAcC9NSypkVzrnWrQuGRaW5ylegl9+X3ydibE3iqY+yR TIcwZ783mdkxSgo7Aczjrf6/kDAsXlg+MlcKdvz8CGBT4Js1+ml0Q0nCIGMhg4urbBMr IPsQGhMOZI/XFYeNhpo2W6RiQO9eZcCm+3cv9wrhj03j3oW6GHBgWogdf7m/M90hduG1 bkgFDSNMx8kMlnudao3cjcMuv3UuJM6NpCda0/bLqAVEpsvbdKz0DLhgzIMnpsj7Xqt+ A+WI0W29OSdTsnBMGXTezBfqUaCgo1ApWwSr9/a3wlDCMHKR9V2FOIxjC0iB2HXz03ET 9XLw== X-Gm-Message-State: APjAAAVipa6T73YhvboZdWI+cUdLQZRI5YBcExmjA9Bxr36HHVKK4oWq uAz/Or98tGfeR3MFxPEP1VqAbtjAn/qFnneQa7Y= X-Google-Smtp-Source: APXvYqxevdANPfOlkVtzMQ882vgwBXm0Jbm6vzvza8p7XXpVnciz9Vl5i1ZzZxjAhKyc6EfZHmf4aPb+4/23UDQiUlw= X-Received: by 2002:a19:914c:: with SMTP id y12mr41019898lfj.108.1564059090602; Thu, 25 Jul 2019 05:51:30 -0700 (PDT) MIME-Version: 1.0 References: <20190723122016.30279-1-a.swigon@partner.samsung.com> <20190723122016.30279-5-a.swigon@partner.samsung.com> In-Reply-To: <20190723122016.30279-5-a.swigon@partner.samsung.com> From: Chanwoo Choi Date: Thu, 25 Jul 2019 21:50:53 +0900 Message-ID: Subject: Re: [RFC PATCH 04/11] devfreq: exynos-bus: Clean up code To: =?UTF-8?B?QXJ0dXIgxZp3aWdvxYQ=?= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190725_055132_568920_0D2C341F X-CRM114-Status: GOOD ( 19.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: cwchoi00@gmail.com Cc: devicetree , linux-samsung-soc , Linux PM list , Seung-Woo Kim , linux-kernel , dri-devel , inki.dae@samsung.com, Chanwoo Choi , MyungJoo Ham , Krzysztof Kozlowski , georgi.djakov@linaro.org, linux-arm-kernel , Marek Szyprowski Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org MjAxOeuFhCA37JuUIDI07J28ICjsiJgpIOyYpOyghCA4OjA3LCBBcnR1ciDFmndpZ2/FhCA8YS5z d2lnb25AcGFydG5lci5zYW1zdW5nLmNvbT7ri5jsnbQg7J6R7ISxOgo+Cj4gVGhpcyBwYXRjaCBh ZGRzIG1pbm9yIGltcHJvdmVtZW50cyB0byB0aGUgZXh5bm9zLWJ1cyBkcml2ZXIuCj4KPiBTaWdu ZWQtb2ZmLWJ5OiBBcnR1ciDFmndpZ2/FhCA8YS5zd2lnb25AcGFydG5lci5zYW1zdW5nLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYyB8IDQ5ICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygr KSwgMjcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kZXZmcmVxL2V4eW5v cy1idXMuYyBiL2RyaXZlcnMvZGV2ZnJlcS9leHlub3MtYnVzLmMKPiBpbmRleCA0YmI4M2I5NDVi ZjcuLjQxMjUxMWNhNzcwMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1 cy5jCj4gKysrIGIvZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYwo+IEBAIC0xNSwxMSArMTUs MTAgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvZXhw b3J0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L29m X2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2YuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3Bt X29wcC5oPgo+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4K Pgo+ICAjZGVmaW5lIERFRkFVTFRfU0FUVVJBVElPTl9SQVRJTyAgICAgICA0MAo+ICAjZGVmaW5l IERFRkFVTFRfVk9MVEFHRV9UT0xFUkFOQ0UgICAgICAyCj4gQEAgLTI1Niw3ICsyNTUsNyBAQCBz dGF0aWMgaW50IGV4eW5vc19idXNfcGFyZW50X3BhcnNlX29mKHN0cnVjdCBkZXZpY2Vfbm9kZSAq bnAsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBleHlu b3NfYnVzICpidXMpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1cy0+ZGV2 Owo+IC0gICAgICAgaW50IGksIHJldCwgY291bnQsIHNpemU7Cj4gKyAgICAgICBpbnQgaSwgcmV0 LCBjb3VudDsKPgo+ICAgICAgICAgLyogR2V0IHRoZSByZWd1bGF0b3IgdG8gcHJvdmlkZSBlYWNo IGJ1cyB3aXRoIHRoZSBwb3dlciAqLwo+ICAgICAgICAgYnVzLT5yZWd1bGF0b3IgPSBkZXZtX3Jl Z3VsYXRvcl9nZXQoZGV2LCAidmRkIik7Cj4gQEAgLTI4Myw4ICsyODIsNyBAQCBzdGF0aWMgaW50 IGV4eW5vc19idXNfcGFyZW50X3BhcnNlX29mKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4gICAg ICAgICB9Cj4gICAgICAgICBidXMtPmVkZXZfY291bnQgPSBjb3VudDsKPgo+IC0gICAgICAgc2l6 ZSA9IHNpemVvZigqYnVzLT5lZGV2KSAqIGNvdW50Owo+IC0gICAgICAgYnVzLT5lZGV2ID0gZGV2 bV9remFsbG9jKGRldiwgc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gKyAgICAgICBidXMtPmVkZXYgPSBk ZXZtX2tjYWxsb2MoZGV2LCBjb3VudCwgc2l6ZW9mKCpidXMtPmVkZXYpLCBHRlBfS0VSTkVMKTsK PiAgICAgICAgIGlmICghYnVzLT5lZGV2KSB7Cj4gICAgICAgICAgICAgICAgIHJldCA9IC1FTk9N RU07Cj4gICAgICAgICAgICAgICAgIGdvdG8gZXJyX3JlZ3VsYXRvcjsKPiBAQCAtMzg4LDcgKzM4 Niw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wcm9maWxlX2luaXQoc3RydWN0IGV4eW5vc19i dXMgKmJ1cywKPiAgICAgICAgIG9uZGVtYW5kX2RhdGEgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXpl b2YoKm9uZGVtYW5kX2RhdGEpLCBHRlBfS0VSTkVMKTsKPiAgICAgICAgIGlmICghb25kZW1hbmRf ZGF0YSkgewo+ICAgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOwo+IC0gICAgICAgICAgICAg ICBnb3RvIGVycjsKPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAgICB9Cj4gICAg ICAgICBvbmRlbWFuZF9kYXRhLT51cHRocmVzaG9sZCA9IDQwOwo+ICAgICAgICAgb25kZW1hbmRf ZGF0YS0+ZG93bmRpZmZlcmVudGlhbCA9IDU7Cj4gQEAgLTQwMCwxNCArMzk4LDE0IEBAIHN0YXRp YyBpbnQgZXh5bm9zX2J1c19wcm9maWxlX2luaXQoc3RydWN0IGV4eW5vc19idXMgKmJ1cywKPiAg ICAgICAgIGlmIChJU19FUlIoYnVzLT5kZXZmcmVxKSkgewo+ICAgICAgICAgICAgICAgICBkZXZf ZXJyKGRldiwgImZhaWxlZCB0byBhZGQgZGV2ZnJlcSBkZXZpY2VcbiIpOwo+ICAgICAgICAgICAg ICAgICByZXQgPSBQVFJfRVJSKGJ1cy0+ZGV2ZnJlcSk7Cj4gLSAgICAgICAgICAgICAgIGdvdG8g ZXJyOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dDsKPiAgICAgICAgIH0KPgo+ICAgICAgICAg LyogUmVnaXN0ZXIgb3BwX25vdGlmaWVyIHRvIGNhdGNoIHRoZSBjaGFuZ2Ugb2YgT1BQICAqLwo+ ICAgICAgICAgcmV0ID0gZGV2bV9kZXZmcmVxX3JlZ2lzdGVyX29wcF9ub3RpZmllcihkZXYsIGJ1 cy0+ZGV2ZnJlcSk7Cj4gICAgICAgICBpZiAocmV0IDwgMCkgewo+ICAgICAgICAgICAgICAgICBk ZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBvcHAgbm90aWZpZXJcbiIpOwo+IC0gICAg ICAgICAgICAgICBnb3RvIGVycjsKPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAg ICB9Cj4KPiAgICAgICAgIC8qCj4gQEAgLTQxNywxNiArNDE1LDE2IEBAIHN0YXRpYyBpbnQgZXh5 bm9zX2J1c19wcm9maWxlX2luaXQoc3RydWN0IGV4eW5vc19idXMgKmJ1cywKPiAgICAgICAgIHJl dCA9IGV4eW5vc19idXNfZW5hYmxlX2VkZXYoYnVzKTsKPiAgICAgICAgIGlmIChyZXQgPCAwKSB7 Cj4gICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBkZXZmcmVx LWV2ZW50IGRldmljZXNcbiIpOwo+IC0gICAgICAgICAgICAgICBnb3RvIGVycjsKPiArICAgICAg ICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAgICB9Cj4KPiAgICAgICAgIHJldCA9IGV4eW5vc19i dXNfc2V0X2V2ZW50KGJ1cyk7Cj4gICAgICAgICBpZiAocmV0IDwgMCkgewo+ICAgICAgICAgICAg ICAgICBkZXZfZXJyKGRldiwgImZhaWxlZCB0byBzZXQgZXZlbnQgdG8gZGV2ZnJlcS1ldmVudCBk ZXZpY2VzXG4iKTsKPiAtICAgICAgICAgICAgICAgZ290byBlcnI7Cj4gKyAgICAgICAgICAgICAg IGdvdG8gb3V0Owo+ICAgICAgICAgfQo+Cj4gLWVycjoKPiArb3V0Ogo+ICAgICAgICAgcmV0dXJu IHJldDsKPiAgfQo+Cj4gQEAgLTQ0NiwyNyArNDQ0LDI4IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1 c19wcm9maWxlX2luaXRfcGFzc2l2ZShzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzLAo+ICAgICAgICAg cGFyZW50X2RldmZyZXEgPSBkZXZmcmVxX2dldF9kZXZmcmVxX2J5X3BoYW5kbGUoZGV2LCAwKTsK PiAgICAgICAgIGlmIChJU19FUlIocGFyZW50X2RldmZyZXEpKSB7Cj4gICAgICAgICAgICAgICAg IHJldCA9IC1FUFJPQkVfREVGRVI7Cj4gLSAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ICsgICAg ICAgICAgICAgICBnb3RvIG91dDsKPiAgICAgICAgIH0KPgo+ICAgICAgICAgcGFzc2l2ZV9kYXRh ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwYXNzaXZlX2RhdGEpLCBHRlBfS0VSTkVMKTsK PiAgICAgICAgIGlmICghcGFzc2l2ZV9kYXRhKSB7Cj4gICAgICAgICAgICAgICAgIHJldCA9IC1F Tk9NRU07Cj4gLSAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ICsgICAgICAgICAgICAgICBnb3Rv IG91dDsKPiAgICAgICAgIH0KPiAgICAgICAgIHBhc3NpdmVfZGF0YS0+cGFyZW50ID0gcGFyZW50 X2RldmZyZXE7Cj4KPiAgICAgICAgIC8qIEFkZCBkZXZmcmVxIGRldmljZSBmb3IgZXh5bm9zIGJ1 cyB3aXRoIHBhc3NpdmUgZ292ZXJub3IgKi8KPiAtICAgICAgIGJ1cy0+ZGV2ZnJlcSA9IGRldm1f ZGV2ZnJlcV9hZGRfZGV2aWNlKGRldiwgcHJvZmlsZSwgREVWRlJFUV9HT1ZfUEFTU0lWRSwKPiAr ICAgICAgIGJ1cy0+ZGV2ZnJlcSA9IGRldm1fZGV2ZnJlcV9hZGRfZGV2aWNlKGRldiwgcHJvZmls ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZG UkVRX0dPVl9QQVNTSVZFLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBhc3NpdmVfZGF0YSk7Cj4gICAgICAgICBpZiAoSVNfRVJSKGJ1cy0+ZGV2ZnJl cSkpIHsKPiAgICAgICAgICAgICAgICAgZGV2X2VycihkZXYsCj4gICAgICAgICAgICAgICAgICAg ICAgICAgImZhaWxlZCB0byBhZGQgZGV2ZnJlcSBkZXYgd2l0aCBwYXNzaXZlIGdvdmVybm9yXG4i KTsKPiAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihidXMtPmRldmZyZXEpOwo+IC0gICAg ICAgICAgICAgICBnb3RvIGVycjsKPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAg ICB9Cj4KPiAtZXJyOgo+ICtvdXQ6Cj4gICAgICAgICByZXR1cm4gcmV0Owo+ICB9Cj4KPiBAQCAt NDg0LDExICs0ODMsMTEgQEAgc3RhdGljIGludCBleHlub3NfYnVzX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICAg ICAgICAgfQo+Cj4gLSAgICAgICBidXMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9m KCpidXMpLCBHRlBfS0VSTkVMKTsKPiArICAgICAgIGJ1cyA9IGRldm1fa3phbGxvYyhkZXYsIHNp emVvZigqYnVzKSwgR0ZQX0tFUk5FTCk7Cj4gICAgICAgICBpZiAoIWJ1cykKPiAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gICAgICAgICBtdXRleF9pbml0KCZidXMtPmxvY2spOwo+ IC0gICAgICAgYnVzLT5kZXYgPSAmcGRldi0+ZGV2Owo+ICsgICAgICAgYnVzLT5kZXYgPSBkZXY7 Cj4gICAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBidXMpOwo+Cj4gICAgICAgICAv KiBQYXJzZSB0aGUgZGV2aWNlLXRyZWUgdG8gZ2V0IHRoZSByZXNvdXJjZSBpbmZvcm1hdGlvbiAq Lwo+IEBAIC01MDIsNyArNTAxLDcgQEAgc3RhdGljIGludCBleHlub3NfYnVzX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ICAg ICAgICAgfQo+Cj4gLSAgICAgICBub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUs ICJkZXZmcmVxIiwgMCk7Cj4gKyAgICAgICBub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShucCwgImRl dmZyZXEiLCAwKTsKPiAgICAgICAgIGlmIChub2RlKSB7Cj4gICAgICAgICAgICAgICAgIG9mX25v ZGVfcHV0KG5vZGUpOwo+ICAgICAgICAgICAgICAgICByZXQgPSBleHlub3NfYnVzX3Byb2ZpbGVf aW5pdF9wYXNzaXZlKGJ1cywgcHJvZmlsZSk7Cj4gQEAgLTU0NywxMiArNTQ2LDEwIEBAIHN0YXRp YyBpbnQgZXh5bm9zX2J1c19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAgICAgICAgaW50 IHJldDsKPgo+ICAgICAgICAgcmV0ID0gZXh5bm9zX2J1c19lbmFibGVfZWRldihidXMpOwo+IC0g ICAgICAgaWYgKHJldCA8IDApIHsKPiArICAgICAgIGlmIChyZXQgPCAwKQo+ICAgICAgICAgICAg ICAgICBkZXZfZXJyKGRldiwgImZhaWxlZCB0byBlbmFibGUgdGhlIGRldmZyZXEtZXZlbnQgZGV2 aWNlc1xuIik7Cj4gLSAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gLSAgICAgICB9Cj4KPiAt ICAgICAgIHJldHVybiAwOwo+ICsgICAgICAgcmV0dXJuIHJldDsKPiAgfQo+Cj4gIHN0YXRpYyBp bnQgZXh5bm9zX2J1c19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiBAQCAtNTYxLDEyICs1 NTgsMTAgQEAgc3RhdGljIGludCBleHlub3NfYnVzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2 KQo+ICAgICAgICAgaW50IHJldDsKPgoKTkFDSy4KPiAgICAgICAgIHJldCA9IGV4eW5vc19idXNf ZGlzYWJsZV9lZGV2KGJ1cyk7Cj4gLSAgICAgICBpZiAocmV0IDwgMCkgewo+ICsgICAgICAgaWYg KHJldCA8IDApCj4gICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGRpc2Fi bGUgdGhlIGRldmZyZXEtZXZlbnQgZGV2aWNlc1xuIik7Cj4gLSAgICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4gLSAgICAgICB9Cj4KPiAtICAgICAgIHJldHVybiAwOwo+ICsgICAgICAgcmV0dXJu IHJldDsKPiAgfQo+ICAjZW5kaWYKPgo+IC0tCj4gMi4xNy4xCj4KCk5BQ0suCgpBcyBJIGFscmVh ZHkgY29tbWVudGVkLCBJdCBoYXMgbmV2ZXIgYW55IGJlbmVmaXQuCkkgdGhpbmsgdGhhdCBpdCBp cyBub3QgdXNmdWwuIFBsZWFzZSBkcm9wIGl0LgoKCgotLSAKQmVzdCBSZWdhcmRzLApDaGFud29v IENob2kKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK