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=-8.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 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 51956C432C1 for ; Wed, 25 Sep 2019 05:44:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 13DEF21D7C for ; Wed, 25 Sep 2019 05:44:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="HwblHVWg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2411779AbfIYFom (ORCPT ); Wed, 25 Sep 2019 01:44:42 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:49276 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404508AbfIYFom (ORCPT ); Wed, 25 Sep 2019 01:44:42 -0400 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190925054438euoutp0150827e99ef6880724deda8e42d75116d~HmCTHqMpD0515305153euoutp01r for ; Wed, 25 Sep 2019 05:44:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20190925054438euoutp0150827e99ef6880724deda8e42d75116d~HmCTHqMpD0515305153euoutp01r DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1569390278; bh=kYIVoeIsDZViEyQtoAUGXK4fxaz0KwTD7EylbtIhnqY=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=HwblHVWgUg45oQOao8CkgXOzQ0d3qfnEH2faJeR9CDcI4CjKwA/dttL96cTe6Rm4A j1o2vCrh7CPq7ItV/XPN5BZbfLceIi6icRdzMCBKRMYIwyrsBsJlqSkC3a3XnpPHH7 3ACNyBLlUD6I7UhJ4s5uydXnPDXtrNJdFxVm2FH0= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20190925054437eucas1p108c8908cb95482cff91297ba3fa5a2e2~HmCRwrvU62405424054eucas1p15; Wed, 25 Sep 2019 05:44:37 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id A8.80.04469.5CEFA8D5; Wed, 25 Sep 2019 06:44:37 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190925054437eucas1p1faa58a48a75c43fd5b5c7424e3d658e7~HmCRdetQF1488914889eucas1p1b; Wed, 25 Sep 2019 05:44:37 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20190925054437eusmtrp12dae90d5d9dd472b8fbea5f7cbab0880~HmCRcM_cn1789117891eusmtrp1F; Wed, 25 Sep 2019 05:44:37 +0000 (GMT) X-AuditID: cbfec7f2-54fff70000001175-b2-5d8afec5d574 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id A6.64.04117.4CEFA8D5; Wed, 25 Sep 2019 06:44:36 +0100 (BST) Received: from AMDC3555 (unknown [106.120.51.67]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190925054436eusmtip11d852d14d1080b152186c05430a580ba~HmCQp4U1h2516225162eusmtip1Z; Wed, 25 Sep 2019 05:44:36 +0000 (GMT) Message-ID: Subject: Re: [RFC PATCH v2 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init() From: Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= To: Chanwoo Choi , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= , myungjoo.ham@samsung.com, inki.dae@samsung.com, sw0312.kim@samsung.com, georgi.djakov@linaro.org, leonard.crestez@nxp.com, m.szyprowski@samsung.com, b.zolnierkie@samsung.com, krzk@kernel.org Date: Wed, 25 Sep 2019 07:44:35 +0200 In-Reply-To: <2e49bd2c-e074-038b-f8a2-7dd8dea4a9af@samsung.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRju29k5O0qzr2n4UlI4qCgqEypOVFYUcaB+SPmrqytPOtym7aip QS27UCuXTUubXU1KDSnnLJUuNJdLJVdpVl5QnCZaaWtqRddtZ2L/nvc5z+V74NCE7CU5k1Zq UjitRqGSU4Hi+/U/HIuf/dHvWvpJD0z31ROIqSi4SzJvRwdI5pqtmWRax0YoJv+RmWKM3Tli xuG4J2FKulwkY3a2kUxL7WWKcWfbEFPgeCxiym1dEqbjaAnFFOQOUusway47TbGdbQ8ptvuM XcRWFh9hK4arRazBUoZYt3l2tGR74Oo4TqVM47QRUbGBCeO9ODmfTa/vKiF1qGilHgXQgJdB 7vBtkR4F0jJcguDh+Y+kcIwisOQ1IK9Kht0IdEWSCUejxeEX3UZQ1P9LIhwfEPS4q3wOKWah uFZHeHEw3g7NXS4fpvBaeNEx7usLwcMI+p58IbwHgY+LYMA0JPaqxHgumJ898PUFeBxljlZK 6F4EnxsNHg3taZgOv6uDvTSB58CxqkJCkLgkMGJY45UA3gjHs7YKdDAM2S3+BWHQlHtWLGAe +mu6fWsA6xCYb9n8Oaugzv6K9OYQeAHcrY0Q6PVQ2usSCfFB8O7zdOEFQWC8n08ItBROnZQJ UA61l4IEI0DWnTZ/NgtO+3WUg8JNk0tM/y0xTbZeR0QZCuVSeXU8x0dquINLeIWaT9XEL9mX pDYjz3/W9Mf+tRqNvd5rRZhG8qnSdaR+l4xUpPEZaisCmpCHSE1hHkoap8jI5LRJe7SpKo63 olm0WB4qPTSlZ4cMxytSuESOS+a0E19FdMBMHcoLi0qZ5mqvSp8Rt2l/zV+Ypor+2axBrbFu 45aY7xvC3+xsWZFnHd+cdVU978pzw5VHzRfrtJ2FU849GDCmGZ72fVse3FLjJBMzY8uLx/oh plJ52HbAeelWUXrHgPJC4s068m92ZfQ2x5epuWtK2wcbfn8y36hIzq46+W33+4+i+flyMZ+g iFxIaHnFPyjBADNjAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFIsWRmVeSWpSXmKPExsVy+t/xu7pH/3XFGvyWsrg/r5XRYuOM9awW 1788Z7WYf+Qcq8WVr+/ZLKbv3cRmMen+BBaL8+c3sFusuPuR1WLT42usFpd3zWGz+Nx7hNFi xvl9TBZrj9xlt7jduILNYsbkl2wOAh6bVnWyedy5tofN4373cSaPzUvqPTa+28Hk0bdlFaPH 501yAexRejZF+aUlqQoZ+cUltkrRhhZGeoaWFnpGJpZ6hsbmsVZGpkr6djYpqTmZZalF+nYJ ehnfHgkUTPeoOHZ3BWsD4yLLLkZODgkBE4lTW86zdjFycQgJLGWUWLblEwtEQkLi4/obrBC2 sMSfa11sEEVPGCW2TT0AVsQr4CGxZFcDM4gtLBAlce7uRzCbTcBe4uztb0wgDSIC7xklPmx/ xw7iMAu0MUkc6tsMNpZFQFVi09Ht7CA2J1DHqvNXoFZ8ZpTofXaDESTBLKAp0br9NzvEHToS b0/1Aa3mAFotKPF3hzBEibxE89bZzBMYBWch6ZiFUDULSdUCRuZVjCKppcW56bnFRnrFibnF pXnpesn5uZsYgfG67djPLTsYu94FH2IU4GBU4uF1YO2KFWJNLCuuzD3EKMHBrCTCO0sGKMSb klhZlVqUH19UmpNafIjRFOificxSosn5wFSSVxJvaGpobmFpaG5sbmxmoSTO2yFwMEZIID2x JDU7NbUgtQimj4mDU6qB0bXZWSdMPKdE+vrT8wpn3jTNuWa487DI/efcW0+wWjaz3735U9x0 76WHks9nrPv1X85rSv+SC9pVCsdPT3BfqJR4N2HGsZeTQ1eyH4u/oezQeyhjYeL9xnuTn+za 1re8Q2+tqRmzTNAfL6ePzGGxr+IXxCSEaXu0ms4/wforbMOFTK4zOS/12JVYijMSDbWYi4oT ARfkJE7tAgAA X-CMS-MailID: 20190925054437eucas1p1faa58a48a75c43fd5b5c7424e3d658e7 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20190919142322eucas1p24bc477ee6e1bcd65546c305d55af097d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190919142322eucas1p24bc477ee6e1bcd65546c305d55af097d References: <20190919142236.4071-1-a.swigon@samsung.com> <20190919142236.4071-2-a.swigon@samsung.com> <2e49bd2c-e074-038b-f8a2-7dd8dea4a9af@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Fri, 2019-09-20 at 11:15 +0900, Chanwoo Choi wrote: > Hi, > > As I already replied on v1, patch1/2/3 clean-up code > for readability without any behavior changes. > > I think that you better to merge patch1/2/3 to one patch. Yes, when writing the cover letter I think I forgot to explain why I decided not to merge these patches. Basically, none of the diff algorithms available in git (I've got v2.17.1) is able to produce a readable patch with these changes combined together into a single patch (functions are intermixed together in the output, git thinks that 'exynos_bus_probe' is a new function). Please take a look at the diff at the bottom of this message to see how patches 01..03 look when combined. If such patch looks acceptable to you, I can merge. > On 19. 9. 19. 오후 11:22, Artur Świgoń wrote: > > From: Artur Świgoń > > > > This patch adds a new static function, exynos_bus_profile_init(), extracted > > from exynos_bus_probe(). > > > > Signed-off-by: Artur Świgoń > > --- > > drivers/devfreq/exynos-bus.c | 92 +++++++++++++++++++++--------------- > > 1 file changed, 53 insertions(+), 39 deletions(-) > > > > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c > > index 29f422469960..78f38b7fb596 100644 > > --- a/drivers/devfreq/exynos-bus.c > > +++ b/drivers/devfreq/exynos-bus.c > > @@ -287,12 +287,62 @@ static int exynos_bus_parse_of(struct device_node *np, > > return ret; > > } > > > > +static int exynos_bus_profile_init(struct exynos_bus *bus, > > + struct devfreq_dev_profile *profile) > > +{ > > + struct device *dev = bus->dev; > > + struct devfreq_simple_ondemand_data *ondemand_data; > > + int ret; > > + > > + /* Initialize the struct profile and governor data for parent device */ > > + profile->polling_ms = 50; > > + profile->target = exynos_bus_target; > > + profile->get_dev_status = exynos_bus_get_dev_status; > > + profile->exit = exynos_bus_exit; > > + > > + ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL); > > + if (!ondemand_data) { > > + ret = -ENOMEM; > > + goto err; > > + } > > + ondemand_data->upthreshold = 40; > > + ondemand_data->downdifferential = 5; > > + > > + /* Add devfreq device to monitor and handle the exynos bus */ > > + bus->devfreq = devm_devfreq_add_device(dev, profile, > > + DEVFREQ_GOV_SIMPLE_ONDEMAND, > > + ondemand_data); > > + if (IS_ERR(bus->devfreq)) { > > + dev_err(dev, "failed to add devfreq device\n"); > > + ret = PTR_ERR(bus->devfreq); > > + goto err; > > + } > > + > > + /* > > + * Enable devfreq-event to get raw data which is used to determine > > + * current bus load. > > + */ > > + ret = exynos_bus_enable_edev(bus); > > + if (ret < 0) { > > + dev_err(dev, "failed to enable devfreq-event devices\n"); > > + goto err; > > + } > > + > > + ret = exynos_bus_set_event(bus); > > + if (ret < 0) { > > + dev_err(dev, "failed to set event to devfreq-event devices\n"); > > + goto err; > > + } > > + > > +err: > > + return ret; > > +} > > + > > static int exynos_bus_probe(struct platform_device *pdev) > > { > > struct device *dev = &pdev->dev; > > struct device_node *np = dev->of_node, *node; > > struct devfreq_dev_profile *profile; > > - struct devfreq_simple_ondemand_data *ondemand_data; > > struct devfreq_passive_data *passive_data; > > struct devfreq *parent_devfreq; > > struct exynos_bus *bus; > > @@ -334,45 +384,9 @@ static int exynos_bus_probe(struct platform_device *pdev) > > if (passive) > > goto passive; > > > > - /* Initialize the struct profile and governor data for parent device */ > > - profile->polling_ms = 50; > > - profile->target = exynos_bus_target; > > - profile->get_dev_status = exynos_bus_get_dev_status; > > - profile->exit = exynos_bus_exit; > > - > > - ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL); > > - if (!ondemand_data) { > > - ret = -ENOMEM; > > + ret = exynos_bus_profile_init(bus, profile); > > + if (ret < 0) > > goto err; > > - } > > - ondemand_data->upthreshold = 40; > > - ondemand_data->downdifferential = 5; > > - > > - /* Add devfreq device to monitor and handle the exynos bus */ > > - bus->devfreq = devm_devfreq_add_device(dev, profile, > > - DEVFREQ_GOV_SIMPLE_ONDEMAND, > > - ondemand_data); > > - if (IS_ERR(bus->devfreq)) { > > - dev_err(dev, "failed to add devfreq device\n"); > > - ret = PTR_ERR(bus->devfreq); > > - goto err; > > - } > > - > > - /* > > - * Enable devfreq-event to get raw data which is used to determine > > - * current bus load. > > - */ > > - ret = exynos_bus_enable_edev(bus); > > - if (ret < 0) { > > - dev_err(dev, "failed to enable devfreq-event devices\n"); > > - goto err; > > - } > > - > > - ret = exynos_bus_set_event(bus); > > - if (ret < 0) { > > - dev_err(dev, "failed to set event to devfreq-event devices\n"); > > - goto err; > > - } > > > > goto out; > > passive: commit cacf8e4ea0e111908d11779977c81e29d6418801 Author: Artur Świgoń Date: Tue Aug 27 13:17:28 2019 +0200 tmp: merge patches 01-03 Signed-off-by: Artur Świgoń diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c index 29f422469960..60ad4319fd80 100644 --- a/drivers/devfreq/exynos-bus.c +++ b/drivers/devfreq/exynos-bus.c @@ -287,52 +287,12 @@ static int exynos_bus_parse_of(struct device_node *np, return ret; } -static int exynos_bus_probe(struct platform_device *pdev) +static int exynos_bus_profile_init(struct exynos_bus *bus, + struct devfreq_dev_profile *profile) { - struct device *dev = &pdev->dev; - struct device_node *np = dev->of_node, *node; - struct devfreq_dev_profile *profile; + struct device *dev = bus->dev; struct devfreq_simple_ondemand_data *ondemand_data; - struct devfreq_passive_data *passive_data; - struct devfreq *parent_devfreq; - struct exynos_bus *bus; - int ret, max_state; - unsigned long min_freq, max_freq; - bool passive = false; - - if (!np) { - dev_err(dev, "failed to find devicetree node\n"); - return -EINVAL; - } - - bus = devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL); - if (!bus) - return -ENOMEM; - mutex_init(&bus->lock); - bus->dev = &pdev->dev; - platform_set_drvdata(pdev, bus); - - profile = devm_kzalloc(dev, sizeof(*profile), GFP_KERNEL); - if (!profile) - return -ENOMEM; - - node = of_parse_phandle(dev->of_node, "devfreq", 0); - if (node) { - of_node_put(node); - passive = true; - } else { - ret = exynos_bus_parent_parse_of(np, bus); - if (ret < 0) - return ret; - } - - /* Parse the device-tree to get the resource information */ - ret = exynos_bus_parse_of(np, bus); - if (ret < 0) - goto err_reg; - - if (passive) - goto passive; + int ret; /* Initialize the struct profile and governor data for parent device */ profile->polling_ms = 50; @@ -374,8 +334,18 @@ static int exynos_bus_probe(struct platform_device *pdev) goto err; } - goto out; -passive: +err: + return ret; +} + +static int exynos_bus_profile_init_passive(struct exynos_bus *bus, + struct devfreq_dev_profile *profile) +{ + struct device *dev = bus->dev; + struct devfreq_passive_data *passive_data; + struct devfreq *parent_devfreq; + int ret = 0; + /* Initialize the struct profile and governor data for passive device */ profile->target = exynos_bus_target; profile->exit = exynos_bus_passive_exit; @@ -404,7 +374,59 @@ static int exynos_bus_probe(struct platform_device *pdev) goto err; } -out: +err: + return ret; +} + +static int exynos_bus_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct device_node *np = dev->of_node, *node; + struct devfreq_dev_profile *profile; + struct exynos_bus *bus; + int ret, max_state; + unsigned long min_freq, max_freq; + bool passive = false; + + if (!np) { + dev_err(dev, "failed to find devicetree node\n"); + return -EINVAL; + } + + bus = devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL); + if (!bus) + return -ENOMEM; + mutex_init(&bus->lock); + bus->dev = &pdev->dev; + platform_set_drvdata(pdev, bus); + + profile = devm_kzalloc(dev, sizeof(*profile), GFP_KERNEL); + if (!profile) + return -ENOMEM; + + node = of_parse_phandle(dev->of_node, "devfreq", 0); + if (node) { + of_node_put(node); + passive = true; + } else { + ret = exynos_bus_parent_parse_of(np, bus); + if (ret < 0) + return ret; + } + + /* Parse the device-tree to get the resource information */ + ret = exynos_bus_parse_of(np, bus); + if (ret < 0) + goto err_reg; + + if (passive) + ret = exynos_bus_profile_init_passive(bus, profile); + else + ret = exynos_bus_profile_init(bus, profile); + + if (ret < 0) + goto err; + max_state = bus->devfreq->profile->max_state; min_freq = (bus->devfreq->profile->freq_table[0] / 1000); max_freq = (bus->devfreq->profile->freq_table[max_state - 1] / 1000); 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=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 43996C432C1 for ; Wed, 25 Sep 2019 05:44:56 +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 1020521D7E for ; Wed, 25 Sep 2019 05:44:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="bd40I59A"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="HwblHVWg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1020521D7E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:Mime-Version:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=np87iiTg3Cp0j42m21Bvj5NN74z8bpEuuN0VxlAGcn4=; b=bd40I59Akd3+Zg raLw2iG0raXgfCoVScoizw0SQHqZdERMov5cXxXMrsIiTyffp/Hw2D1budsoXpgZc7/8W418fs/+4 dsGte8VsLO4USGy1E2EAlWfbjWUog/QXvXbyf+PZ+tZANKZ1H1fh0YKegxNQa3bk5OGKEYIIyDPC+ 0nQWmOVNUVdGVsTqrl939/MOyjdED1A8ZpKRVsW6e/XTsEM5iEZ1ifE7PR+PY603vS0B9pQuUNvDL vI/ud2MBTvQ0xfPWFfM68P2ICo4wr0nX8MYmyAcbysd2x0WtOZNiODKYlfItazZL2CbATMLpNFHrT R+8x5F9M2ptCIA9KhsyA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iD06c-00040V-3g; Wed, 25 Sep 2019 05:44:50 +0000 Received: from mailout2.w1.samsung.com ([210.118.77.12]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iD06X-0003za-Tg for linux-arm-kernel@lists.infradead.org; Wed, 25 Sep 2019 05:44:48 +0000 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20190925054438euoutp02d23942ba9c5f37bbdb7cf5f35bf909fb~HmCTCEOdl1314613146euoutp02F for ; Wed, 25 Sep 2019 05:44:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20190925054438euoutp02d23942ba9c5f37bbdb7cf5f35bf909fb~HmCTCEOdl1314613146euoutp02F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1569390278; bh=kYIVoeIsDZViEyQtoAUGXK4fxaz0KwTD7EylbtIhnqY=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=HwblHVWgUg45oQOao8CkgXOzQ0d3qfnEH2faJeR9CDcI4CjKwA/dttL96cTe6Rm4A j1o2vCrh7CPq7ItV/XPN5BZbfLceIi6icRdzMCBKRMYIwyrsBsJlqSkC3a3XnpPHH7 3ACNyBLlUD6I7UhJ4s5uydXnPDXtrNJdFxVm2FH0= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20190925054437eucas1p108c8908cb95482cff91297ba3fa5a2e2~HmCRwrvU62405424054eucas1p15; Wed, 25 Sep 2019 05:44:37 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id A8.80.04469.5CEFA8D5; Wed, 25 Sep 2019 06:44:37 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190925054437eucas1p1faa58a48a75c43fd5b5c7424e3d658e7~HmCRdetQF1488914889eucas1p1b; Wed, 25 Sep 2019 05:44:37 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20190925054437eusmtrp12dae90d5d9dd472b8fbea5f7cbab0880~HmCRcM_cn1789117891eusmtrp1F; Wed, 25 Sep 2019 05:44:37 +0000 (GMT) X-AuditID: cbfec7f2-54fff70000001175-b2-5d8afec5d574 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id A6.64.04117.4CEFA8D5; Wed, 25 Sep 2019 06:44:36 +0100 (BST) Received: from AMDC3555 (unknown [106.120.51.67]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190925054436eusmtip11d852d14d1080b152186c05430a580ba~HmCQp4U1h2516225162eusmtip1Z; Wed, 25 Sep 2019 05:44:36 +0000 (GMT) Message-ID: Subject: Re: [RFC PATCH v2 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init() From: Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= To: Chanwoo Choi , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, dri-devel@lists.freedesktop.org Date: Wed, 25 Sep 2019 07:44:35 +0200 In-Reply-To: <2e49bd2c-e074-038b-f8a2-7dd8dea4a9af@samsung.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRju29k5O0qzr2n4UlI4qCgqEypOVFYUcaB+SPmrqytPOtym7aip QS27UCuXTUubXU1KDSnnLJUuNJdLJVdpVl5QnCZaaWtqRddtZ2L/nvc5z+V74NCE7CU5k1Zq UjitRqGSU4Hi+/U/HIuf/dHvWvpJD0z31ROIqSi4SzJvRwdI5pqtmWRax0YoJv+RmWKM3Tli xuG4J2FKulwkY3a2kUxL7WWKcWfbEFPgeCxiym1dEqbjaAnFFOQOUusway47TbGdbQ8ptvuM XcRWFh9hK4arRazBUoZYt3l2tGR74Oo4TqVM47QRUbGBCeO9ODmfTa/vKiF1qGilHgXQgJdB 7vBtkR4F0jJcguDh+Y+kcIwisOQ1IK9Kht0IdEWSCUejxeEX3UZQ1P9LIhwfEPS4q3wOKWah uFZHeHEw3g7NXS4fpvBaeNEx7usLwcMI+p58IbwHgY+LYMA0JPaqxHgumJ898PUFeBxljlZK 6F4EnxsNHg3taZgOv6uDvTSB58CxqkJCkLgkMGJY45UA3gjHs7YKdDAM2S3+BWHQlHtWLGAe +mu6fWsA6xCYb9n8Oaugzv6K9OYQeAHcrY0Q6PVQ2usSCfFB8O7zdOEFQWC8n08ItBROnZQJ UA61l4IEI0DWnTZ/NgtO+3WUg8JNk0tM/y0xTbZeR0QZCuVSeXU8x0dquINLeIWaT9XEL9mX pDYjz3/W9Mf+tRqNvd5rRZhG8qnSdaR+l4xUpPEZaisCmpCHSE1hHkoap8jI5LRJe7SpKo63 olm0WB4qPTSlZ4cMxytSuESOS+a0E19FdMBMHcoLi0qZ5mqvSp8Rt2l/zV+Ypor+2axBrbFu 45aY7xvC3+xsWZFnHd+cdVU978pzw5VHzRfrtJ2FU849GDCmGZ72fVse3FLjJBMzY8uLx/oh plJ52HbAeelWUXrHgPJC4s068m92ZfQ2x5epuWtK2wcbfn8y36hIzq46+W33+4+i+flyMZ+g iFxIaHnFPyjBADNjAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFIsWRmVeSWpSXmKPExsVy+t/xu7pH/3XFGvyWsrg/r5XRYuOM9awW 1788Z7WYf+Qcq8WVr+/ZLKbv3cRmMen+BBaL8+c3sFusuPuR1WLT42usFpd3zWGz+Nx7hNFi xvl9TBZrj9xlt7jduILNYsbkl2wOAh6bVnWyedy5tofN4373cSaPzUvqPTa+28Hk0bdlFaPH 501yAexRejZF+aUlqQoZ+cUltkrRhhZGeoaWFnpGJpZ6hsbmsVZGpkr6djYpqTmZZalF+nYJ ehnfHgkUTPeoOHZ3BWsD4yLLLkZODgkBE4lTW86zdjFycQgJLGWUWLblEwtEQkLi4/obrBC2 sMSfa11sEEVPGCW2TT0AVsQr4CGxZFcDM4gtLBAlce7uRzCbTcBe4uztb0wgDSIC7xklPmx/ xw7iMAu0MUkc6tsMNpZFQFVi09Ht7CA2J1DHqvNXoFZ8ZpTofXaDESTBLKAp0br9NzvEHToS b0/1Aa3mAFotKPF3hzBEibxE89bZzBMYBWch6ZiFUDULSdUCRuZVjCKppcW56bnFRnrFibnF pXnpesn5uZsYgfG67djPLTsYu94FH2IU4GBU4uF1YO2KFWJNLCuuzD3EKMHBrCTCO0sGKMSb klhZlVqUH19UmpNafIjRFOificxSosn5wFSSVxJvaGpobmFpaG5sbmxmoSTO2yFwMEZIID2x JDU7NbUgtQimj4mDU6qB0bXZWSdMPKdE+vrT8wpn3jTNuWa487DI/efcW0+wWjaz3735U9x0 76WHks9nrPv1X85rSv+SC9pVCsdPT3BfqJR4N2HGsZeTQ1eyH4u/oezQeyhjYeL9xnuTn+za 1re8Q2+tqRmzTNAfL6ePzGGxr+IXxCSEaXu0ms4/wforbMOFTK4zOS/12JVYijMSDbWYi4oT ARfkJE7tAgAA X-CMS-MailID: 20190925054437eucas1p1faa58a48a75c43fd5b5c7424e3d658e7 X-Msg-Generator: CA X-RootMTR: 20190919142322eucas1p24bc477ee6e1bcd65546c305d55af097d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190919142322eucas1p24bc477ee6e1bcd65546c305d55af097d References: <20190919142236.4071-1-a.swigon@samsung.com> <20190919142236.4071-2-a.swigon@samsung.com> <2e49bd2c-e074-038b-f8a2-7dd8dea4a9af@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190924_224446_847901_AF35D5CF X-CRM114-Status: GOOD ( 25.76 ) 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: , Cc: b.zolnierkie@samsung.com, sw0312.kim@samsung.com, Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= , krzk@kernel.org, inki.dae@samsung.com, myungjoo.ham@samsung.com, leonard.crestez@nxp.com, georgi.djakov@linaro.org, m.szyprowski@samsung.com 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 SGksCgpPbiBGcmksIDIwMTktMDktMjAgYXQgMTE6MTUgKzA5MDAsIENoYW53b28gQ2hvaSB3cm90 ZToKPiBIaSwKPiAKPiBBcyBJIGFscmVhZHkgcmVwbGllZCBvbiB2MSwgcGF0Y2gxLzIvMyBjbGVh bi11cCBjb2RlCj4gZm9yIHJlYWRhYmlsaXR5IHdpdGhvdXQgYW55IGJlaGF2aW9yIGNoYW5nZXMu IAo+IAo+IEkgdGhpbmsgdGhhdCB5b3UgYmV0dGVyIHRvIG1lcmdlIHBhdGNoMS8yLzMgdG8gb25l IHBhdGNoLgoKWWVzLCB3aGVuIHdyaXRpbmcgdGhlIGNvdmVyIGxldHRlciBJIHRoaW5rIEkgZm9y Z290IHRvIGV4cGxhaW4gd2h5IEkgZGVjaWRlZCBub3QKdG8gbWVyZ2UgdGhlc2UgcGF0Y2hlcy4g QmFzaWNhbGx5LCBub25lIG9mIHRoZSBkaWZmIGFsZ29yaXRobXMgYXZhaWxhYmxlIGluIGdpdAoo SSd2ZSBnb3QgdjIuMTcuMSkgaXMgYWJsZSB0byBwcm9kdWNlIGEgcmVhZGFibGUgcGF0Y2ggd2l0 aCB0aGVzZSBjaGFuZ2VzCmNvbWJpbmVkIHRvZ2V0aGVyIGludG8gYSBzaW5nbGUgcGF0Y2ggKGZ1 bmN0aW9ucyBhcmUgaW50ZXJtaXhlZCB0b2dldGhlciBpbiB0aGUKb3V0cHV0LCBnaXQgdGhpbmtz IHRoYXQgJ2V4eW5vc19idXNfcHJvYmUnIGlzIGEgbmV3IGZ1bmN0aW9uKS4KClBsZWFzZSB0YWtl IGEgbG9vayBhdCB0aGUgZGlmZiBhdCB0aGUgYm90dG9tIG9mIHRoaXMgbWVzc2FnZSB0byBzZWUg aG93IHBhdGNoZXMKMDEuLjAzIGxvb2sgd2hlbiBjb21iaW5lZC4gSWYgc3VjaCBwYXRjaCBsb29r cyBhY2NlcHRhYmxlIHRvIHlvdSwgSSBjYW4gbWVyZ2UuCgo+IE9uIDE5LiA5LiAxOS4g7Jik7ZuE IDExOjIyLCBBcnR1ciDFmndpZ2/FhCB3cm90ZToKPiA+IEZyb206IEFydHVyIMWad2lnb8WEIDxh LnN3aWdvbkBwYXJ0bmVyLnNhbXN1bmcuY29tPgo+ID4gCj4gPiBUaGlzIHBhdGNoIGFkZHMgYSBu ZXcgc3RhdGljIGZ1bmN0aW9uLCBleHlub3NfYnVzX3Byb2ZpbGVfaW5pdCgpLCBleHRyYWN0ZWQK PiA+IGZyb20gZXh5bm9zX2J1c19wcm9iZSgpLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBBcnR1 ciDFmndpZ2/FhCA8YS5zd2lnb25AcGFydG5lci5zYW1zdW5nLmNvbT4KPiA+IC0tLQo+ID4gIGRy aXZlcnMvZGV2ZnJlcS9leHlub3MtYnVzLmMgfCA5MiArKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMzkgZGVs ZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1 cy5jIGIvZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYwo+ID4gaW5kZXggMjlmNDIyNDY5OTYw Li43OGYzOGI3ZmI1OTYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1 cy5jCj4gPiArKysgYi9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5jCj4gPiBAQCAtMjg3LDEy ICsyODcsNjIgQEAgc3RhdGljIGludCBleHlub3NfYnVzX3BhcnNlX29mKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnAsCj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBpbnQg ZXh5bm9zX2J1c19wcm9maWxlX2luaXQoc3RydWN0IGV4eW5vc19idXMgKmJ1cywKPiA+ICsJCQkJ ICAgc3RydWN0IGRldmZyZXFfZGV2X3Byb2ZpbGUgKnByb2ZpbGUpCj4gPiArewo+ID4gKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSBidXMtPmRldjsKPiA+ICsJc3RydWN0IGRldmZyZXFfc2ltcGxlX29u ZGVtYW5kX2RhdGEgKm9uZGVtYW5kX2RhdGE7Cj4gPiArCWludCByZXQ7Cj4gPiArCj4gPiArCS8q IEluaXRpYWxpemUgdGhlIHN0cnVjdCBwcm9maWxlIGFuZCBnb3Zlcm5vciBkYXRhIGZvciBwYXJl bnQgZGV2aWNlICovCj4gPiArCXByb2ZpbGUtPnBvbGxpbmdfbXMgPSA1MDsKPiA+ICsJcHJvZmls ZS0+dGFyZ2V0ID0gZXh5bm9zX2J1c190YXJnZXQ7Cj4gPiArCXByb2ZpbGUtPmdldF9kZXZfc3Rh dHVzID0gZXh5bm9zX2J1c19nZXRfZGV2X3N0YXR1czsKPiA+ICsJcHJvZmlsZS0+ZXhpdCA9IGV4 eW5vc19idXNfZXhpdDsKPiA+ICsKPiA+ICsJb25kZW1hbmRfZGF0YSA9IGRldm1fa3phbGxvYyhk ZXYsIHNpemVvZigqb25kZW1hbmRfZGF0YSksIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoIW9uZGVt YW5kX2RhdGEpIHsKPiA+ICsJCXJldCA9IC1FTk9NRU07Cj4gPiArCQlnb3RvIGVycjsKPiA+ICsJ fQo+ID4gKwlvbmRlbWFuZF9kYXRhLT51cHRocmVzaG9sZCA9IDQwOwo+ID4gKwlvbmRlbWFuZF9k YXRhLT5kb3duZGlmZmVyZW50aWFsID0gNTsKPiA+ICsKPiA+ICsJLyogQWRkIGRldmZyZXEgZGV2 aWNlIHRvIG1vbml0b3IgYW5kIGhhbmRsZSB0aGUgZXh5bm9zIGJ1cyAqLwo+ID4gKwlidXMtPmRl dmZyZXEgPSBkZXZtX2RldmZyZXFfYWRkX2RldmljZShkZXYsIHByb2ZpbGUsCj4gPiArCQkJCQkJ REVWRlJFUV9HT1ZfU0lNUExFX09OREVNQU5ELAo+ID4gKwkJCQkJCW9uZGVtYW5kX2RhdGEpOwo+ ID4gKwlpZiAoSVNfRVJSKGJ1cy0+ZGV2ZnJlcSkpIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAiZmFp bGVkIHRvIGFkZCBkZXZmcmVxIGRldmljZVxuIik7Cj4gPiArCQlyZXQgPSBQVFJfRVJSKGJ1cy0+ ZGV2ZnJlcSk7Cj4gPiArCQlnb3RvIGVycjsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKgo+ID4gKwkg KiBFbmFibGUgZGV2ZnJlcS1ldmVudCB0byBnZXQgcmF3IGRhdGEgd2hpY2ggaXMgdXNlZCB0byBk ZXRlcm1pbmUKPiA+ICsJICogY3VycmVudCBidXMgbG9hZC4KPiA+ICsJICovCj4gPiArCXJldCA9 IGV4eW5vc19idXNfZW5hYmxlX2VkZXYoYnVzKTsKPiA+ICsJaWYgKHJldCA8IDApIHsKPiA+ICsJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBkZXZmcmVxLWV2ZW50IGRldmljZXNcbiIp Owo+ID4gKwkJZ290byBlcnI7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0ID0gZXh5bm9zX2J1c19z ZXRfZXZlbnQoYnVzKTsKPiA+ICsJaWYgKHJldCA8IDApIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAi ZmFpbGVkIHRvIHNldCBldmVudCB0byBkZXZmcmVxLWV2ZW50IGRldmljZXNcbiIpOwo+ID4gKwkJ Z290byBlcnI7Cj4gPiArCX0KPiA+ICsKPiA+ICtlcnI6Cj4gPiArCXJldHVybiByZXQ7Cj4gPiAr fQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRl djsKPiA+ICAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZSwgKm5vZGU7Cj4g PiAgCXN0cnVjdCBkZXZmcmVxX2Rldl9wcm9maWxlICpwcm9maWxlOwo+ID4gLQlzdHJ1Y3QgZGV2 ZnJlcV9zaW1wbGVfb25kZW1hbmRfZGF0YSAqb25kZW1hbmRfZGF0YTsKPiA+ICAJc3RydWN0IGRl dmZyZXFfcGFzc2l2ZV9kYXRhICpwYXNzaXZlX2RhdGE7Cj4gPiAgCXN0cnVjdCBkZXZmcmVxICpw YXJlbnRfZGV2ZnJlcTsKPiA+ICAJc3RydWN0IGV4eW5vc19idXMgKmJ1czsKPiA+IEBAIC0zMzQs NDUgKzM4NCw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ID4gIAlpZiAocGFzc2l2ZSkKPiA+ICAJCWdvdG8gcGFzc2l2ZTsKPiA+ ICAKPiA+IC0JLyogSW5pdGlhbGl6ZSB0aGUgc3RydWN0IHByb2ZpbGUgYW5kIGdvdmVybm9yIGRh dGEgZm9yIHBhcmVudCBkZXZpY2UgKi8KPiA+IC0JcHJvZmlsZS0+cG9sbGluZ19tcyA9IDUwOwo+ ID4gLQlwcm9maWxlLT50YXJnZXQgPSBleHlub3NfYnVzX3RhcmdldDsKPiA+IC0JcHJvZmlsZS0+ Z2V0X2Rldl9zdGF0dXMgPSBleHlub3NfYnVzX2dldF9kZXZfc3RhdHVzOwo+ID4gLQlwcm9maWxl LT5leGl0ID0gZXh5bm9zX2J1c19leGl0Owo+ID4gLQo+ID4gLQlvbmRlbWFuZF9kYXRhID0gZGV2 bV9remFsbG9jKGRldiwgc2l6ZW9mKCpvbmRlbWFuZF9kYXRhKSwgR0ZQX0tFUk5FTCk7Cj4gPiAt CWlmICghb25kZW1hbmRfZGF0YSkgewo+ID4gLQkJcmV0ID0gLUVOT01FTTsKPiA+ICsJcmV0ID0g ZXh5bm9zX2J1c19wcm9maWxlX2luaXQoYnVzLCBwcm9maWxlKTsKPiA+ICsJaWYgKHJldCA8IDAp Cj4gPiAgCQlnb3RvIGVycjsKPiA+IC0JfQo+ID4gLQlvbmRlbWFuZF9kYXRhLT51cHRocmVzaG9s ZCA9IDQwOwo+ID4gLQlvbmRlbWFuZF9kYXRhLT5kb3duZGlmZmVyZW50aWFsID0gNTsKPiA+IC0K PiA+IC0JLyogQWRkIGRldmZyZXEgZGV2aWNlIHRvIG1vbml0b3IgYW5kIGhhbmRsZSB0aGUgZXh5 bm9zIGJ1cyAqLwo+ID4gLQlidXMtPmRldmZyZXEgPSBkZXZtX2RldmZyZXFfYWRkX2RldmljZShk ZXYsIHByb2ZpbGUsCj4gPiAtCQkJCQkJREVWRlJFUV9HT1ZfU0lNUExFX09OREVNQU5ELAo+ID4g LQkJCQkJCW9uZGVtYW5kX2RhdGEpOwo+ID4gLQlpZiAoSVNfRVJSKGJ1cy0+ZGV2ZnJlcSkpIHsK PiA+IC0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFkZCBkZXZmcmVxIGRldmljZVxuIik7Cj4g PiAtCQlyZXQgPSBQVFJfRVJSKGJ1cy0+ZGV2ZnJlcSk7Cj4gPiAtCQlnb3RvIGVycjsKPiA+IC0J fQo+ID4gLQo+ID4gLQkvKgo+ID4gLQkgKiBFbmFibGUgZGV2ZnJlcS1ldmVudCB0byBnZXQgcmF3 IGRhdGEgd2hpY2ggaXMgdXNlZCB0byBkZXRlcm1pbmUKPiA+IC0JICogY3VycmVudCBidXMgbG9h ZC4KPiA+IC0JICovCj4gPiAtCXJldCA9IGV4eW5vc19idXNfZW5hYmxlX2VkZXYoYnVzKTsKPiA+ IC0JaWYgKHJldCA8IDApIHsKPiA+IC0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBk ZXZmcmVxLWV2ZW50IGRldmljZXNcbiIpOwo+ID4gLQkJZ290byBlcnI7Cj4gPiAtCX0KPiA+IC0K PiA+IC0JcmV0ID0gZXh5bm9zX2J1c19zZXRfZXZlbnQoYnVzKTsKPiA+IC0JaWYgKHJldCA8IDAp IHsKPiA+IC0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldCBldmVudCB0byBkZXZmcmVxLWV2 ZW50IGRldmljZXNcbiIpOwo+ID4gLQkJZ290byBlcnI7Cj4gPiAtCX0KPiA+ICAKPiA+ICAJZ290 byBvdXQ7Cj4gPiAgcGFzc2l2ZToKCmNvbW1pdCBjYWNmOGU0ZWEwZTExMTkwOGQxMTc3OTk3N2M4 MWUyOWQ2NDE4ODAxCkF1dGhvcjogQXJ0dXIgxZp3aWdvxYQgPGEuc3dpZ29uQHBhcnRuZXIuc2Ft c3VuZy5jb20+CkRhdGU6ICAgVHVlIEF1ZyAyNyAxMzoxNzoyOCAyMDE5ICswMjAwCgogICAgdG1w OiBtZXJnZSBwYXRjaGVzIDAxLTAzCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IEFydHVyIMWad2ln b8WEIDxhLnN3aWdvbkBwYXJ0bmVyLnNhbXN1bmcuY29tPgoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZGV2ZnJlcS9leHlub3MtYnVzLmMgYi9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5jCmluZGV4 IDI5ZjQyMjQ2OTk2MC4uNjBhZDQzMTlmZDgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RldmZyZXEv ZXh5bm9zLWJ1cy5jCisrKyBiL2RyaXZlcnMvZGV2ZnJlcS9leHlub3MtYnVzLmMKQEAgLTI4Nyw1 MiArMjg3LDEyIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wYXJzZV9vZihzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZXh5bm9zX2J1c19wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIGludCBleHlub3NfYnVzX3By b2ZpbGVfaW5pdChzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzLAorCQkJCSAgIHN0cnVjdCBkZXZmcmVx X2Rldl9wcm9maWxlICpwcm9maWxlKQogewotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5k ZXY7Ci0Jc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZSwgKm5vZGU7Ci0Jc3Ry dWN0IGRldmZyZXFfZGV2X3Byb2ZpbGUgKnByb2ZpbGU7CisJc3RydWN0IGRldmljZSAqZGV2ID0g YnVzLT5kZXY7CiAJc3RydWN0IGRldmZyZXFfc2ltcGxlX29uZGVtYW5kX2RhdGEgKm9uZGVtYW5k X2RhdGE7Ci0Jc3RydWN0IGRldmZyZXFfcGFzc2l2ZV9kYXRhICpwYXNzaXZlX2RhdGE7Ci0Jc3Ry dWN0IGRldmZyZXEgKnBhcmVudF9kZXZmcmVxOwotCXN0cnVjdCBleHlub3NfYnVzICpidXM7Ci0J aW50IHJldCwgbWF4X3N0YXRlOwotCXVuc2lnbmVkIGxvbmcgbWluX2ZyZXEsIG1heF9mcmVxOwot CWJvb2wgcGFzc2l2ZSA9IGZhbHNlOwotCi0JaWYgKCFucCkgewotCQlkZXZfZXJyKGRldiwgImZh aWxlZCB0byBmaW5kIGRldmljZXRyZWUgbm9kZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0K LQotCWJ1cyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmJ1cyksIEdGUF9LRVJO RUwpOwotCWlmICghYnVzKQotCQlyZXR1cm4gLUVOT01FTTsKLQltdXRleF9pbml0KCZidXMtPmxv Y2spOwotCWJ1cy0+ZGV2ID0gJnBkZXYtPmRldjsKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2 LCBidXMpOwotCi0JcHJvZmlsZSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJvZmlsZSks IEdGUF9LRVJORUwpOwotCWlmICghcHJvZmlsZSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlub2Rl ID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJkZXZmcmVxIiwgMCk7Ci0JaWYgKG5v ZGUpIHsKLQkJb2Zfbm9kZV9wdXQobm9kZSk7Ci0JCXBhc3NpdmUgPSB0cnVlOwotCX0gZWxzZSB7 Ci0JCXJldCA9IGV4eW5vc19idXNfcGFyZW50X3BhcnNlX29mKG5wLCBidXMpOwotCQlpZiAocmV0 IDwgMCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0JLyogUGFyc2UgdGhlIGRldmljZS10cmVlIHRv IGdldCB0aGUgcmVzb3VyY2UgaW5mb3JtYXRpb24gKi8KLQlyZXQgPSBleHlub3NfYnVzX3BhcnNl X29mKG5wLCBidXMpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIGVycl9yZWc7Ci0KLQlpZiAocGFz c2l2ZSkKLQkJZ290byBwYXNzaXZlOworCWludCByZXQ7CiAKIAkvKiBJbml0aWFsaXplIHRoZSBz dHJ1Y3QgcHJvZmlsZSBhbmQgZ292ZXJub3IgZGF0YSBmb3IgcGFyZW50IGRldmljZSAqLwogCXBy b2ZpbGUtPnBvbGxpbmdfbXMgPSA1MDsKQEAgLTM3NCw4ICszMzQsMTggQEAgc3RhdGljIGludCBl eHlub3NfYnVzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJy OwogCX0KIAotCWdvdG8gb3V0OwotcGFzc2l2ZToKK2VycjoKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMgaW50IGV4eW5vc19idXNfcHJvZmlsZV9pbml0X3Bhc3NpdmUoc3RydWN0IGV4eW5vc19i dXMgKmJ1cywKKwkJCQkJICAgc3RydWN0IGRldmZyZXFfZGV2X3Byb2ZpbGUgKnByb2ZpbGUpCit7 CisJc3RydWN0IGRldmljZSAqZGV2ID0gYnVzLT5kZXY7CisJc3RydWN0IGRldmZyZXFfcGFzc2l2 ZV9kYXRhICpwYXNzaXZlX2RhdGE7CisJc3RydWN0IGRldmZyZXEgKnBhcmVudF9kZXZmcmVxOwor CWludCByZXQgPSAwOworCiAJLyogSW5pdGlhbGl6ZSB0aGUgc3RydWN0IHByb2ZpbGUgYW5kIGdv dmVybm9yIGRhdGEgZm9yIHBhc3NpdmUgZGV2aWNlICovCiAJcHJvZmlsZS0+dGFyZ2V0ID0gZXh5 bm9zX2J1c190YXJnZXQ7CiAJcHJvZmlsZS0+ZXhpdCA9IGV4eW5vc19idXNfcGFzc2l2ZV9leGl0 OwpAQCAtNDA0LDcgKzM3NCw1OSBAQCBzdGF0aWMgaW50IGV4eW5vc19idXNfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJZ290byBlcnI7CiAJfQogCi1vdXQ6CitlcnI6CisJ cmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBleHlub3NfYnVzX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsK KwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2RlLCAqbm9kZTsKKwlzdHJ1Y3Qg ZGV2ZnJlcV9kZXZfcHJvZmlsZSAqcHJvZmlsZTsKKwlzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzOwor CWludCByZXQsIG1heF9zdGF0ZTsKKwl1bnNpZ25lZCBsb25nIG1pbl9mcmVxLCBtYXhfZnJlcTsK Kwlib29sIHBhc3NpdmUgPSBmYWxzZTsKKworCWlmICghbnApIHsKKwkJZGV2X2VycihkZXYsICJm YWlsZWQgdG8gZmluZCBkZXZpY2V0cmVlIG5vZGVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisKKwlidXMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpidXMpLCBHRlBfS0VS TkVMKTsKKwlpZiAoIWJ1cykKKwkJcmV0dXJuIC1FTk9NRU07CisJbXV0ZXhfaW5pdCgmYnVzLT5s b2NrKTsKKwlidXMtPmRldiA9ICZwZGV2LT5kZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRl diwgYnVzKTsKKworCXByb2ZpbGUgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByb2ZpbGUp LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByb2ZpbGUpCisJCXJldHVybiAtRU5PTUVNOworCisJbm9k ZSA9IG9mX3BhcnNlX3BoYW5kbGUoZGV2LT5vZl9ub2RlLCAiZGV2ZnJlcSIsIDApOworCWlmIChu b2RlKSB7CisJCW9mX25vZGVfcHV0KG5vZGUpOworCQlwYXNzaXZlID0gdHJ1ZTsKKwl9IGVsc2Ug eworCQlyZXQgPSBleHlub3NfYnVzX3BhcmVudF9wYXJzZV9vZihucCwgYnVzKTsKKwkJaWYgKHJl dCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCS8qIFBhcnNlIHRoZSBkZXZpY2UtdHJlZSB0 byBnZXQgdGhlIHJlc291cmNlIGluZm9ybWF0aW9uICovCisJcmV0ID0gZXh5bm9zX2J1c19wYXJz ZV9vZihucCwgYnVzKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnJfcmVnOworCisJaWYgKHBh c3NpdmUpCisJCXJldCA9IGV4eW5vc19idXNfcHJvZmlsZV9pbml0X3Bhc3NpdmUoYnVzLCBwcm9m aWxlKTsKKwllbHNlCisJCXJldCA9IGV4eW5vc19idXNfcHJvZmlsZV9pbml0KGJ1cywgcHJvZmls ZSk7CisKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnI7CisKIAltYXhfc3RhdGUgPSBidXMtPmRl dmZyZXEtPnByb2ZpbGUtPm1heF9zdGF0ZTsKIAltaW5fZnJlcSA9IChidXMtPmRldmZyZXEtPnBy b2ZpbGUtPmZyZXFfdGFibGVbMF0gLyAxMDAwKTsKIAltYXhfZnJlcSA9IChidXMtPmRldmZyZXEt PnByb2ZpbGUtPmZyZXFfdGFibGVbbWF4X3N0YXRlIC0gMV0gLyAxMDAwKTsKCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=