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 72719C2D0C3 for ; Wed, 18 Dec 2019 10:48:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2BA40227BF for ; Wed, 18 Dec 2019 10:48:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="X82LBPWz" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726774AbfLRKsg (ORCPT ); Wed, 18 Dec 2019 05:48:36 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:55853 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726141AbfLRKsf (ORCPT ); Wed, 18 Dec 2019 05:48:35 -0500 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20191218104832euoutp011c8fa9526ead54ffdd9bbd22eceb389f~hcXnetQB12478424784euoutp010 for ; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20191218104832euoutp011c8fa9526ead54ffdd9bbd22eceb389f~hcXnetQB12478424784euoutp010 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1576666112; bh=V23I87IP9W3FOEDeKEQDrstnF+dxDxFw8ePbIb+Djlk=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=X82LBPWzdebiwERxx9mmKyjHfCldftL7mUKic3lLALhOKBBUxLhArpLeRhkHvagZ6 yeajfmKfLrDKJKjAY+nrm8wHOEAnzlP7z0mtFEelItAKP9yLm+fOV22IozCvJngdzN NsPBmzfbl+wYK72fmcpzBNBR0JIXmPhaLO61pzZ0= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20191218104832eucas1p1b43e0be03190e68bb1a65d416ecea640~hcXnGqwoO3274832748eucas1p1Y; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 56.D9.60679.0040AFD5; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20191218104831eucas1p2fdf3fad04bf0604068e780a234f8cb38~hcXmqyPYX1525415254eucas1p2Q; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20191218104831eusmtrp16e9db9ffda73d6f83066cd33e3bf4665~hcXmp845R1078710787eusmtrp1b; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-03-5dfa0400d452 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id CB.A1.07950.FF30AFD5; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) Received: from AMDC3555 (unknown [106.120.51.67]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20191218104830eusmtip12a2a8a41bee3bfe0c56cec3c6bc2f016~hcXlt1aMS0087600876eusmtip1r; Wed, 18 Dec 2019 10:48:30 +0000 (GMT) Message-ID: Subject: Re: [RFC PATCH v2 09/11] devfreq: exynos-bus: Add interconnect functionality to exynos-bus From: Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= To: Chanwoo Choi Cc: Chanwoo Choi , devicetree , linux-arm-kernel , linux-samsung-soc , linux-kernel , Linux PM list , dri-devel , MyungJoo Ham , inki.dae@samsung.com, Seung-Woo Kim , georgi.djakov@linaro.org, Leonard Crestez , Marek Szyprowski , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski Date: Wed, 18 Dec 2019 11:48:30 +0100 In-Reply-To: X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRju27nsbDQ5bpYvJpWLfhTlpdJOVJZRcCgCg/4USZ3ypJLXnbzk jzKtsHnXTFtaEaZLE3VNm0MjdSnkHS+ZGhKRkmlpXsiVkdtR7N/zPc/7PM/7wkdhym7ChQoJ v8prwrlQNSnHa5oXOnauwa0BnpbbKqYqv4JgsgZ6ceb97BjBPLZ0EEzv3A+Syas3kEz2SCbO dHZWShn9x2mCMXzuJ5gecwHJzKRZEJPf+VrClFs+Spmhm3qSyc/5Sh6mWUPpXZId7q8j2ZGU Fgn7sugGW/XdJGHTjaWInTFs9JeelR8I5ENDYniNh+8FefBEahMReT8grnKqjkxA5X5aJKOA 3gONXVVSLZJTSlqP4Fv1PCE+ZhF0pmmXlRkE1hIzuWLJmJpGNqykSxB8MF0Xh0YR5NYX2ocU NAsJ8+MSG1bRPBSUv8JsmKQPQfvQvJ13ordC5c9mex1GZxGgr/lrT8WXhGnzJzuW0adgru+X VGzeAZPv0nEtopYKHGHRpLLRGL0JkqofYrYcoBekMJNilNhmgD4Ko+0y0aqC8RbjcowrtOak 4iIW4EvtCCF6ExAYii2YKOyHppZuwpaD0dugwuwh0n7QljiIi/EOMDDpKK7gANk1eZhIKyD5 jlKEajA/cBCNAIll/cvZLBiTCvBM5KZbPUX33ym61dYnCCtFzny0EBbEC7vC+Vh3gQsTosOD 3C9FhBnQ0kdr/dsya0LmPxcbEU0h9VqF55qFACXBxQjXwhoRUJjaSTGUvEQpArlr8bwm4rwm OpQXGtEGClc7K3Y//RqgpIO4q/wVno/kNSuqhJK5JCBdoiY0F1QTLhPP4xu8Dlq7tMRIideN ihCfEO7RXFnUaPU5t6hhU/6JIznDPlihVXZscXiB5IZUsf5b1uteHL+V+sb0NrbPqbL2jKFo 82/vxbh1rhti2ArBmePGjHH7LjcU97T5WovvtBt7pzLkz4pOd/d43PPeO9irP+mXlFqjxoVg zms7phG4f3zIkxhkAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFIsWRmVeSWpSXmKPExsVy+t/xu7r/mX/FGiw5ZmCxccZ6VouJN66w WFz/8pzVYv6Rc6wWV76+Z7OYvncTm8Wk+xNYLM6f38BuseLuR1aLTY+vsVpc3jWHzeJz7xFG ixnn9zFZrD1yl93iduMKNosZk1+yOQh4bFrVyeZx59oeNo/73ceZPDYvqffY+G4Hk0ffllWM Hp83yQWwR+nZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hkam8daGZkq6dvZpKTmZJalFunb JehlvOk5zFowLbZiw4c9bA2Max27GDk5JARMJPo/fGTsYuTiEBJYyiixZeVBNoiEhMTH9TdY IWxhiT/Xutggip4wSizfNp0RJMEr4CHR8O0VE4gtLJAqMWftdmYQm03AXuLs7W9gcREBVYkN n46xgjQzC0xklTi8/xHYBhagxMddD8EGcQoESny9+oMdxBYS+MMkMWmNIIjNLKAp0br9NzvE FToSb0/1sXQxcgAtFpT4u0MYokReonnrbOYJjIKzkHTMQqiahaRqASPzKkaR1NLi3PTcYiO9 4sTc4tK8dL3k/NxNjMB43Xbs55YdjF3vgg8xCnAwKvHw3vj7I1aINbGsuDL3EKMEB7OSCO/t jp+xQrwpiZVVqUX58UWlOanFhxhNgd6ZyCwlmpwPTCV5JfGGpobmFpaG5sbmxmYWSuK8HQIH Y4QE0hNLUrNTUwtSi2D6mDg4pRoYN/7ut11/blPi3MP2nZZM6R1M5XacBxq05T9JSv6dX6O7 a6601A+byGcdvVe8O1Ol7sk+VLqSELThTFvod7eMex1zluqvaGL3fbVf69S+j1kpyZ9PRyy/ elTObpPktp2WM+bwn81q2nh62oQ/sxZEb/0kGnb+55+zARu3yyYv1Swqzy5PNT+VrcRSnJFo qMVcVJwIANH1SwDtAgAA X-CMS-MailID: 20191218104831eucas1p2fdf3fad04bf0604068e780a234f8cb38 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e References: <20190919142236.4071-1-a.swigon@samsung.com> <20190919142236.4071-10-a.swigon@samsung.com> <35053bad-3f08-190a-0ffa-9aacd16da272@samsung.com> <95ac6056bc6c790b1de7e975f44faa320fd9876f.camel@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2019-12-18 at 19:39 +0900, Chanwoo Choi wrote: > Hi, > > 2019년 12월 18일 (수) 오후 7:19, Artur Świgoń 님이 작성: > > > > Hi, > > > > Thank you for the review. > > > > On Mon, 2019-12-16 at 09:44 +0900, Chanwoo Choi wrote: > > > Hi, > > > > > > On 9/19/19 11:22 PM, Artur Świgoń wrote: > > > > From: Artur Świgoń > > > > > > > > This patch adds interconnect functionality to the exynos-bus devfreq > > > > driver. > > > > > > > > The SoC topology is a graph (or, more specifically, a tree) and most of > > > > its edges are taken from the devfreq parent-child hierarchy (cf. > > > > Documentation/devicetree/bindings/devfreq/exynos-bus.txt). Due to > > > > unspecified relative probing order, -EPROBE_DEFER may be propagated to > > > > guarantee that a child is probed before its parent. > > > > > > > > Each bus is now an interconnect provider and an interconnect node as well > > > > (cf. Documentation/interconnect/interconnect.rst), i.e. every bus registers > > > > itself as a node. Node IDs are not hardcoded but rather assigned at > > > > runtime, in probing order (subject to the above-mentioned exception > > > > regarding relative order). This approach allows for using this driver with > > > > various Exynos SoCs. > > > > > > > > Frequencies requested via the interconnect API for a given node are > > > > propagated to devfreq using dev_pm_qos_update_request(). Please note that > > > > it is not an error when CONFIG_INTERCONNECT is 'n', in which case all > > > > interconnect API functions are no-op. > > > > > > > > Signed-off-by: Artur Świgoń > > > > --- > > > > drivers/devfreq/exynos-bus.c | 153 +++++++++++++++++++++++++++++++++++ > > > > 1 file changed, 153 insertions(+) > > > > > > > > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c > > > > index 8d44810cac69..e0232202720d 100644 > > > > --- a/drivers/devfreq/exynos-bus.c > > > > +++ b/drivers/devfreq/exynos-bus.c > > > > @@ -14,14 +14,19 @@ > > > > #include > > > > #include > > > > #include > > > > +#include > > > > +#include > > > > #include > > > > #include > > > > #include > > > > +#include > > > > #include > > > > #include > > > > > > > > #define DEFAULT_SATURATION_RATIO 40 > > > > > > > > +#define icc_units_to_khz(x) ((x) / 8) > > > > > > icc_units_to_khz() -> kpbs_to_khz() > > > > OK > > > > > > + > > > > struct exynos_bus { > > > > struct device *dev; > > > > > > > > @@ -35,6 +40,12 @@ struct exynos_bus { > > > > struct opp_table *opp_table; > > > > struct clk *clk; > > > > unsigned int ratio; > > > > + > > > > + /* One provider per bus, one node per provider */ > > > > + struct icc_provider provider; > > > > + struct icc_node *node; > > > > + > > > > + struct dev_pm_qos_request qos_req; > > > > }; > > > > > > > > /* > > > > @@ -59,6 +70,13 @@ exynos_bus_ops_edev(enable_edev); > > > > exynos_bus_ops_edev(disable_edev); > > > > exynos_bus_ops_edev(set_event); > > > > > > > > +static int exynos_bus_next_id(void) > > > > +{ > > > > + static DEFINE_IDA(exynos_bus_icc_ida); > > > > + > > > > + return ida_alloc(&exynos_bus_icc_ida, GFP_KERNEL); > > > > +} > > > > + > > > > static int exynos_bus_get_event(struct exynos_bus *bus, > > > > struct devfreq_event_data *edata) > > > > { > > > > @@ -171,6 +189,38 @@ static void exynos_bus_passive_exit(struct device *dev) > > > > clk_disable_unprepare(bus->clk); > > > > } > > > > > > > > +static int exynos_bus_icc_set(struct icc_node *src, struct icc_node *dst) > > > > +{ > > > > + struct exynos_bus *src_bus = src->data, *dst_bus = dst->data; > > > > + s32 src_freq = icc_units_to_khz(src->avg_bw); > > > > + s32 dst_freq = icc_units_to_khz(dst->avg_bw); > > > > + > > > > + dev_pm_qos_update_request(&src_bus->qos_req, src_freq); > > > > > > Have to check the return value. > > > If return error, show the waring with dev_warn. > > > > OK, I will change it to: > > > > ret = dev_pm_qos_update_request(&src_bus->qos_req, src_freq); > > if (ret < 0) { > > dev_warn(src_bus->dev, "failed to update PM QoS request"); > > return ret; > > If you return right after, better to use dev_err. > If you use dev_warn, just show the warning message without return. OK, I will use dev_err(). > > } > > > > > > + dev_pm_qos_update_request(&dst_bus->qos_req, dst_freq); > > > > > > ditto. > > > > OK (same as above). > > ditto. > > > > > > > + > > > > + return 0; > > > > +} > > > > + > > > > +static int exynos_bus_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, > > > > + u32 peak_bw, u32 *agg_avg, u32 *agg_peak) > > > > +{ > > > > + *agg_avg += avg_bw; > > > > + *agg_peak = max(*agg_peak, peak_bw); > > > > + > > > > + return 0; > > > > +} > > > > + > > > > +static struct icc_node *exynos_bus_icc_xlate(struct of_phandle_args *spec, > > > > + void *data) > > > > +{ > > > > + struct exynos_bus *bus = data; > > > > + > > > > + if (spec->np != bus->dev->of_node) > > > > + return ERR_PTR(-EINVAL); > > > > + > > > > + return bus->node; > > > > +} > > > > + > > > > static int exynos_bus_parent_parse_of(struct device_node *np, > > > > struct exynos_bus *bus) > > > > { > > > > @@ -366,6 +416,101 @@ static int exynos_bus_profile_init_passive(struct exynos_bus *bus, > > > > return 0; > > > > } > > > > > > > > +static int exynos_bus_icc_connect(struct exynos_bus *bus) > > > > +{ > > > > + struct device_node *np = bus->dev->of_node; > > > > + struct devfreq *parent_devfreq; > > > > + struct icc_node *parent_node = NULL; > > > > + struct of_phandle_args args; > > > > + int ret = 0; > > > > + > > > > + parent_devfreq = devfreq_get_devfreq_by_phandle(bus->dev, 0); > > > > + if (!IS_ERR(parent_devfreq)) { > > > > + struct exynos_bus *parent_bus; > > > > + > > > > + parent_bus = dev_get_drvdata(parent_devfreq->dev.parent); > > > > + parent_node = parent_bus->node; > > > > + } else { > > > > + /* Look for parent in DT */ > > > > + int num = of_count_phandle_with_args(np, "parent", > > > > + "#interconnect-cells"); > > > > + if (num != 1) > > > > + goto out; /* 'parent' is optional */ > > > > + > > > > + ret = of_parse_phandle_with_args(np, "parent", > > > > + "#interconnect-cells", > > > > + 0, &args); > > > > > > > > > Actually, I agree your approach. I think that it is very useful > > > and necessary to guarantee the PM QoS requirements between devices. > > > > > > But, > > > As I already commented, I'm not sure that the "parent" property > > > is proper for only this driver. If possible, you better to get > > > the parent phandle through other way like OF graph. > > > > > > If you suggest the standard way to make the tree between > > > the exynos-bus, I'll agree. > > > > As I commented in the answer to patch 08, I will use the > > 'exynos,interconnect-parent-node' property for bus_display, > > bus_leftbus and bus_dmc. > > OK. > > > > > > Also, for interconnect path, you have to add the connection > > > between 'bus_display' and 'bus_leftbus' regardless > > > of the existing 'devfreq' property. > > > - bus_display - bus_leftbus - bus_dmc > > > > > > > + if (ret < 0) > > > > + goto out; > > > > + > > > > + of_node_put(args.np); > > > > + > > > > + parent_node = of_icc_get_from_provider(&args); > > > > + if (IS_ERR(parent_node)) { > > > > + /* May be -EPROBE_DEFER */ > > > > + ret = PTR_ERR(parent_node); > > > > + goto out; > > > > + } > > > > + } > > > > + > > > > + ret = icc_link_create(bus->node, parent_node->id); > > > > + > > > > +out: > > > > + return ret; > > > > +} > > > > + > > > > +static int exynos_bus_icc_init(struct exynos_bus *bus) > > > > +{ > > > > + struct device *dev = bus->dev; > > > > + struct icc_provider *provider = &bus->provider; > > > > + struct icc_node *node; > > > > + int id, ret; > > > > + > > > > + /* Initialize the interconnect provider */ > > > > + provider->set = exynos_bus_icc_set; > > > > + provider->aggregate = exynos_bus_icc_aggregate; > > > > + provider->xlate = exynos_bus_icc_xlate; > > > > + provider->dev = dev; > > > > + provider->data = bus; > > > > + > > > > + ret = icc_provider_add(provider); > > > > + if (ret < 0) > > > > + goto out; > > > > > > Return error without goto because there is no any requirement > > > to free the resource before. > > > > OK. > > > > > > + > > > > + ret = id = exynos_bus_next_id(); > > > > + if (ret < 0) > > > > + goto err_node; > > > > + > > > > + node = icc_node_create(id); > > > > + if (IS_ERR(node)) { > > > > + ret = PTR_ERR(node); > > > > + goto err_node; > > > > + } > > > > + > > > > + bus->node = node; > > > > + node->name = dev->of_node->name; > > > > + node->data = bus; > > > > + icc_node_add(node, provider); > > > > + > > > > + ret = exynos_bus_icc_connect(bus); > > > > + if (ret < 0) > > > > + goto err_connect; > > > > + > > > > + ret = dev_pm_qos_add_request(bus->devfreq->dev.parent, &bus->qos_req, > > > > > > Check whether this line is over 80 char. > > > > It looks like 77 columns to me. > > > > > > > > > + DEV_PM_QOS_MIN_FREQUENCY, 0); > > > > > > Check the return value. > > > > OK. > > > > > > > > > + > > > > +out: > > > > > > Remove this goto due to not necessary. > > > > > > > + return ret; > > > > > > return 0; > > > > OK. > > > > Please also note that this function as well as exynos_bus_icc_connect() > > will > > slightly change in v3 due to the changes regarding DT properties. > > > > > > > > > + > > > > +err_connect: > > > > + icc_node_del(node); > > > > + icc_node_destroy(id); > > > > +err_node: > > > > + icc_provider_del(provider); > > > > + > > > > + return ret; > > > > +} > > > > + > > > > static int exynos_bus_probe(struct platform_device *pdev) > > > > { > > > > struct device *dev = &pdev->dev; > > > > @@ -415,6 +560,14 @@ static int exynos_bus_probe(struct platform_device *pdev) > > > > if (ret < 0) > > > > goto err; > > > > > > > > + /* > > > > + * Initialize interconnect provider. A return value of -ENOTSUPP means > > > > + * that CONFIG_INTERCONNECT is disabled. > > > > + */ > > > > + ret = exynos_bus_icc_init(bus); > > > > + if (ret < 0 && ret != -ENOTSUPP) > > > > + goto err; > > > > > > Print error message. > > > dev_err(dev, "failed to initialize the interconnect provider"); > > > > OK. > > > > > > > > > + > > > > 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); > > > > -- Artur Świgoń Samsung R&D Institute Poland Samsung Electronics 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.3 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,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 60B94C2D0D1 for ; Wed, 18 Dec 2019 10:48:38 +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 3322221582 for ; Wed, 18 Dec 2019 10:48:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="bVaMiLEB"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="X82LBPWz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3322221582 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=yRY/rMMr0AdltFHI3yTF9HAL6NaT123pMO4JpmEzSTU=; b=bVaMiLEBEwqr8L plCAuo2BfnVx2z+k4oIEQ5XzOoVmFmdzoT/jGDW0EebNph1/XO1iqElc3bBbY83MHZYyVtX0Xe5Fj K8JUN7/GE3FzPMko+rcvF9c6aFv/crndlL/YgWgj3MrWRq5mUran/wtaeT8aT4gFGb3gQnz+KEhWz sEsTItSpE4WDlPid1/2li0IncFcKEEScHboPZi44LKFUr0womHYD/GLPYECZyLD92CSMkd6HTkQSB EJnLagC1NrU7/bqHvk7Bg78vfwX8Kafz8ZjApdUHRKnO4IrC32BhuOGIDR1G50VBpmz8oCpHG2S7P 37D/qFM7WjWoMzsqY6+Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ihWsf-0007RW-J9; Wed, 18 Dec 2019 10:48:37 +0000 Received: from mailout2.w1.samsung.com ([210.118.77.12]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ihWsc-0007Qf-9L for linux-arm-kernel@lists.infradead.org; Wed, 18 Dec 2019 10:48:36 +0000 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20191218104832euoutp0268af35197cae0a0d154ffb18e3bfc7d9~hcXnVwTzN2728327283euoutp02f for ; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20191218104832euoutp0268af35197cae0a0d154ffb18e3bfc7d9~hcXnVwTzN2728327283euoutp02f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1576666112; bh=V23I87IP9W3FOEDeKEQDrstnF+dxDxFw8ePbIb+Djlk=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=X82LBPWzdebiwERxx9mmKyjHfCldftL7mUKic3lLALhOKBBUxLhArpLeRhkHvagZ6 yeajfmKfLrDKJKjAY+nrm8wHOEAnzlP7z0mtFEelItAKP9yLm+fOV22IozCvJngdzN NsPBmzfbl+wYK72fmcpzBNBR0JIXmPhaLO61pzZ0= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20191218104832eucas1p1b43e0be03190e68bb1a65d416ecea640~hcXnGqwoO3274832748eucas1p1Y; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 56.D9.60679.0040AFD5; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20191218104831eucas1p2fdf3fad04bf0604068e780a234f8cb38~hcXmqyPYX1525415254eucas1p2Q; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20191218104831eusmtrp16e9db9ffda73d6f83066cd33e3bf4665~hcXmp845R1078710787eusmtrp1b; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-03-5dfa0400d452 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id CB.A1.07950.FF30AFD5; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) Received: from AMDC3555 (unknown [106.120.51.67]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20191218104830eusmtip12a2a8a41bee3bfe0c56cec3c6bc2f016~hcXlt1aMS0087600876eusmtip1r; Wed, 18 Dec 2019 10:48:30 +0000 (GMT) Message-ID: Subject: Re: [RFC PATCH v2 09/11] devfreq: exynos-bus: Add interconnect functionality to exynos-bus From: Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= To: Chanwoo Choi Date: Wed, 18 Dec 2019 11:48:30 +0100 In-Reply-To: X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRju27nsbDQ5bpYvJpWLfhTlpdJOVJZRcCgCg/4USZ3ypJLXnbzk jzKtsHnXTFtaEaZLE3VNm0MjdSnkHS+ZGhKRkmlpXsiVkdtR7N/zPc/7PM/7wkdhym7ChQoJ v8prwrlQNSnHa5oXOnauwa0BnpbbKqYqv4JgsgZ6ceb97BjBPLZ0EEzv3A+Syas3kEz2SCbO dHZWShn9x2mCMXzuJ5gecwHJzKRZEJPf+VrClFs+Spmhm3qSyc/5Sh6mWUPpXZId7q8j2ZGU Fgn7sugGW/XdJGHTjaWInTFs9JeelR8I5ENDYniNh+8FefBEahMReT8grnKqjkxA5X5aJKOA 3gONXVVSLZJTSlqP4Fv1PCE+ZhF0pmmXlRkE1hIzuWLJmJpGNqykSxB8MF0Xh0YR5NYX2ocU NAsJ8+MSG1bRPBSUv8JsmKQPQfvQvJ13ordC5c9mex1GZxGgr/lrT8WXhGnzJzuW0adgru+X VGzeAZPv0nEtopYKHGHRpLLRGL0JkqofYrYcoBekMJNilNhmgD4Ko+0y0aqC8RbjcowrtOak 4iIW4EvtCCF6ExAYii2YKOyHppZuwpaD0dugwuwh0n7QljiIi/EOMDDpKK7gANk1eZhIKyD5 jlKEajA/cBCNAIll/cvZLBiTCvBM5KZbPUX33ym61dYnCCtFzny0EBbEC7vC+Vh3gQsTosOD 3C9FhBnQ0kdr/dsya0LmPxcbEU0h9VqF55qFACXBxQjXwhoRUJjaSTGUvEQpArlr8bwm4rwm OpQXGtEGClc7K3Y//RqgpIO4q/wVno/kNSuqhJK5JCBdoiY0F1QTLhPP4xu8Dlq7tMRIideN ihCfEO7RXFnUaPU5t6hhU/6JIznDPlihVXZscXiB5IZUsf5b1uteHL+V+sb0NrbPqbL2jKFo 82/vxbh1rhti2ArBmePGjHH7LjcU97T5WovvtBt7pzLkz4pOd/d43PPeO9irP+mXlFqjxoVg zms7phG4f3zIkxhkAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFIsWRmVeSWpSXmKPExsVy+t/xu7r/mX/FGiw5ZmCxccZ6VouJN66w WFz/8pzVYv6Rc6wWV76+Z7OYvncTm8Wk+xNYLM6f38BuseLuR1aLTY+vsVpc3jWHzeJz7xFG ixnn9zFZrD1yl93iduMKNosZk1+yOQh4bFrVyeZx59oeNo/73ceZPDYvqffY+G4Hk0ffllWM Hp83yQWwR+nZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hkam8daGZkq6dvZpKTmZJalFunb JehlvOk5zFowLbZiw4c9bA2Max27GDk5JARMJPo/fGTsYuTiEBJYyiixZeVBNoiEhMTH9TdY IWxhiT/Xutggip4wSizfNp0RJMEr4CHR8O0VE4gtLJAqMWftdmYQm03AXuLs7W9gcREBVYkN n46xgjQzC0xklTi8/xHYBhagxMddD8EGcQoESny9+oMdxBYS+MMkMWmNIIjNLKAp0br9NzvE FToSb0/1sXQxcgAtFpT4u0MYokReonnrbOYJjIKzkHTMQqiahaRqASPzKkaR1NLi3PTcYiO9 4sTc4tK8dL3k/NxNjMB43Xbs55YdjF3vgg8xCnAwKvHw3vj7I1aINbGsuDL3EKMEB7OSCO/t jp+xQrwpiZVVqUX58UWlOanFhxhNgd6ZyCwlmpwPTCV5JfGGpobmFpaG5sbmxmYWSuK8HQIH Y4QE0hNLUrNTUwtSi2D6mDg4pRoYN/7ut11/blPi3MP2nZZM6R1M5XacBxq05T9JSv6dX6O7 a6601A+byGcdvVe8O1Ol7sk+VLqSELThTFvod7eMex1zluqvaGL3fbVf69S+j1kpyZ9PRyy/ elTObpPktp2WM+bwn81q2nh62oQ/sxZEb/0kGnb+55+zARu3yyYv1Swqzy5PNT+VrcRSnJFo qMVcVJwIANH1SwDtAgAA X-CMS-MailID: 20191218104831eucas1p2fdf3fad04bf0604068e780a234f8cb38 X-Msg-Generator: CA X-RootMTR: 20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e References: <20190919142236.4071-1-a.swigon@samsung.com> <20190919142236.4071-10-a.swigon@samsung.com> <35053bad-3f08-190a-0ffa-9aacd16da272@samsung.com> <95ac6056bc6c790b1de7e975f44faa320fd9876f.camel@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191218_024834_674626_19B5E24C X-CRM114-Status: GOOD ( 36.19 ) 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: devicetree , linux-samsung-soc , Linux PM list , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , linux-kernel , dri-devel , inki.dae@samsung.com, Chanwoo Choi , MyungJoo Ham , Krzysztof Kozlowski , Leonard Crestez , 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 T24gV2VkLCAyMDE5LTEyLTE4IGF0IDE5OjM5ICswOTAwLCBDaGFud29vIENob2kgd3JvdGU6Cj4g SGksCj4gCj4gMjAxOeuFhCAxMuyblCAxOOydvCAo7IiYKSDsmKTtm4QgNzoxOSwgQXJ0dXIgxZp3 aWdvxYQgPGEuc3dpZ29uQHNhbXN1bmcuY29tPuuLmOydtCDsnpHshLE6Cj4gPiAKPiA+IEhpLAo+ ID4gCj4gPiBUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuCj4gPiAKPiA+IE9uIE1vbiwgMjAxOS0x Mi0xNiBhdCAwOTo0NCArMDkwMCwgQ2hhbndvbyBDaG9pIHdyb3RlOgo+ID4gPiBIaSwKPiA+ID4g Cj4gPiA+IE9uIDkvMTkvMTkgMTE6MjIgUE0sIEFydHVyIMWad2lnb8WEIHdyb3RlOgo+ID4gPiA+ IEZyb206IEFydHVyIMWad2lnb8WEIDxhLnN3aWdvbkBwYXJ0bmVyLnNhbXN1bmcuY29tPgo+ID4g PiA+IAo+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBpbnRlcmNvbm5lY3QgZnVuY3Rpb25hbGl0eSB0 byB0aGUgZXh5bm9zLWJ1cyBkZXZmcmVxCj4gPiA+ID4gZHJpdmVyLgo+ID4gPiA+IAo+ID4gPiA+ IFRoZSBTb0MgdG9wb2xvZ3kgaXMgYSBncmFwaCAob3IsIG1vcmUgc3BlY2lmaWNhbGx5LCBhIHRy ZWUpIGFuZCBtb3N0IG9mCj4gPiA+ID4gaXRzIGVkZ2VzIGFyZSB0YWtlbiBmcm9tIHRoZSBkZXZm cmVxIHBhcmVudC1jaGlsZCBoaWVyYXJjaHkgKGNmLgo+ID4gPiA+IERvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9kZXZmcmVxL2V4eW5vcy1idXMudHh0KS4gRHVlIHRvCj4gPiA+ID4g dW5zcGVjaWZpZWQgcmVsYXRpdmUgcHJvYmluZyBvcmRlciwgLUVQUk9CRV9ERUZFUiBtYXkgYmUg cHJvcGFnYXRlZCB0bwo+ID4gPiA+IGd1YXJhbnRlZSB0aGF0IGEgY2hpbGQgaXMgcHJvYmVkIGJl Zm9yZSBpdHMgcGFyZW50Lgo+ID4gPiA+IAo+ID4gPiA+IEVhY2ggYnVzIGlzIG5vdyBhbiBpbnRl cmNvbm5lY3QgcHJvdmlkZXIgYW5kIGFuIGludGVyY29ubmVjdCBub2RlIGFzIHdlbGwKPiA+ID4g PiAoY2YuIERvY3VtZW50YXRpb24vaW50ZXJjb25uZWN0L2ludGVyY29ubmVjdC5yc3QpLCBpLmUu IGV2ZXJ5IGJ1cyByZWdpc3RlcnMKPiA+ID4gPiBpdHNlbGYgYXMgYSBub2RlLiBOb2RlIElEcyBh cmUgbm90IGhhcmRjb2RlZCBidXQgcmF0aGVyIGFzc2lnbmVkIGF0Cj4gPiA+ID4gcnVudGltZSwg aW4gcHJvYmluZyBvcmRlciAoc3ViamVjdCB0byB0aGUgYWJvdmUtbWVudGlvbmVkIGV4Y2VwdGlv bgo+ID4gPiA+IHJlZ2FyZGluZyByZWxhdGl2ZSBvcmRlcikuIFRoaXMgYXBwcm9hY2ggYWxsb3dz IGZvciB1c2luZyB0aGlzIGRyaXZlciB3aXRoCj4gPiA+ID4gdmFyaW91cyBFeHlub3MgU29Dcy4K PiA+ID4gPiAKPiA+ID4gPiBGcmVxdWVuY2llcyByZXF1ZXN0ZWQgdmlhIHRoZSBpbnRlcmNvbm5l Y3QgQVBJIGZvciBhIGdpdmVuIG5vZGUgYXJlCj4gPiA+ID4gcHJvcGFnYXRlZCB0byBkZXZmcmVx IHVzaW5nIGRldl9wbV9xb3NfdXBkYXRlX3JlcXVlc3QoKS4gUGxlYXNlIG5vdGUgdGhhdAo+ID4g PiA+IGl0IGlzIG5vdCBhbiBlcnJvciB3aGVuIENPTkZJR19JTlRFUkNPTk5FQ1QgaXMgJ24nLCBp biB3aGljaCBjYXNlIGFsbAo+ID4gPiA+IGludGVyY29ubmVjdCBBUEkgZnVuY3Rpb25zIGFyZSBu by1vcC4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBcnR1ciDFmndpZ2/FhCA8YS5z d2lnb25AcGFydG5lci5zYW1zdW5nLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9k ZXZmcmVxL2V4eW5vcy1idXMuYyB8IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKykKPiA+ID4gPiAK PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYyBiL2RyaXZl cnMvZGV2ZnJlcS9leHlub3MtYnVzLmMKPiA+ID4gPiBpbmRleCA4ZDQ0ODEwY2FjNjkuLmUwMjMy MjAyNzIwZCAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5j Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYwo+ID4gPiA+IEBAIC0x NCwxNCArMTQsMTkgQEAKPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2RldmZyZXEtZXZlbnQuaD4K PiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ID4gPiA+ICAjaW5jbHVkZSA8bGlu dXgvZXhwb3J0Lmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9pZHIuaD4KPiA+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L2ludGVyY29ubmVjdC1wcm92aWRlci5oPgo+ID4gPiA+ICAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+Cj4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ID4gPiA+ICAj aW5jbHVkZSA8bGludXgvcG1fb3BwLmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9wbV9xb3Mu aD4KPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4gPiA+ICAj aW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+Cj4gPiA+ID4gCj4gPiA+ID4gICNk ZWZpbmUgREVGQVVMVF9TQVRVUkFUSU9OX1JBVElPICAgNDAKPiA+ID4gPiAKPiA+ID4gPiArI2Rl ZmluZSBpY2NfdW5pdHNfdG9fa2h6KHgpICgoeCkgLyA4KQo+ID4gPiAKPiA+ID4gaWNjX3VuaXRz X3RvX2toeigpIC0+IGtwYnNfdG9fa2h6KCkKPiA+IAo+ID4gT0sKPiA+IAo+ID4gPiA+ICsKPiA+ ID4gPiAgc3RydWN0IGV4eW5vc19idXMgewo+ID4gPiA+ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXY7 Cj4gPiA+ID4gCj4gPiA+ID4gQEAgLTM1LDYgKzQwLDEyIEBAIHN0cnVjdCBleHlub3NfYnVzIHsK PiA+ID4gPiAgICAgc3RydWN0IG9wcF90YWJsZSAqb3BwX3RhYmxlOwo+ID4gPiA+ICAgICBzdHJ1 Y3QgY2xrICpjbGs7Cj4gPiA+ID4gICAgIHVuc2lnbmVkIGludCByYXRpbzsKPiA+ID4gPiArCj4g PiA+ID4gKyAgIC8qIE9uZSBwcm92aWRlciBwZXIgYnVzLCBvbmUgbm9kZSBwZXIgcHJvdmlkZXIg Ki8KPiA+ID4gPiArICAgc3RydWN0IGljY19wcm92aWRlciBwcm92aWRlcjsKPiA+ID4gPiArICAg c3RydWN0IGljY19ub2RlICpub2RlOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgc3RydWN0IGRldl9w bV9xb3NfcmVxdWVzdCBxb3NfcmVxOwo+ID4gPiA+ICB9Owo+ID4gPiA+IAo+ID4gPiA+ICAvKgo+ ID4gPiA+IEBAIC01OSw2ICs3MCwxMyBAQCBleHlub3NfYnVzX29wc19lZGV2KGVuYWJsZV9lZGV2 KTsKPiA+ID4gPiAgZXh5bm9zX2J1c19vcHNfZWRldihkaXNhYmxlX2VkZXYpOwo+ID4gPiA+ICBl eHlub3NfYnVzX29wc19lZGV2KHNldF9ldmVudCk7Cj4gPiA+ID4gCj4gPiA+ID4gK3N0YXRpYyBp bnQgZXh5bm9zX2J1c19uZXh0X2lkKHZvaWQpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgc3RhdGlj IERFRklORV9JREEoZXh5bm9zX2J1c19pY2NfaWRhKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJl dHVybiBpZGFfYWxsb2MoJmV4eW5vc19idXNfaWNjX2lkYSwgR0ZQX0tFUk5FTCk7Cj4gPiA+ID4g K30KPiA+ID4gPiArCj4gPiA+ID4gIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19nZXRfZXZlbnQoc3Ry dWN0IGV4eW5vc19idXMgKmJ1cywKPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGRldmZyZXFfZXZlbnRfZGF0YSAqZWRhdGEpCj4gPiA+ID4gIHsKPiA+ID4gPiBAQCAt MTcxLDYgKzE4OSwzOCBAQCBzdGF0aWMgdm9pZCBleHlub3NfYnVzX3Bhc3NpdmVfZXhpdChzdHJ1 Y3QgZGV2aWNlICpkZXYpCj4gPiA+ID4gICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShidXMtPmNs ayk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAKPiA+ID4gPiArc3RhdGljIGludCBleHlub3NfYnVzX2lj Y19zZXQoc3RydWN0IGljY19ub2RlICpzcmMsIHN0cnVjdCBpY2Nfbm9kZSAqZHN0KQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKyAgIHN0cnVjdCBleHlub3NfYnVzICpzcmNfYnVzID0gc3JjLT5kYXRhLCAq ZHN0X2J1cyA9IGRzdC0+ZGF0YTsKPiA+ID4gPiArICAgczMyIHNyY19mcmVxID0gaWNjX3VuaXRz X3RvX2toeihzcmMtPmF2Z19idyk7Cj4gPiA+ID4gKyAgIHMzMiBkc3RfZnJlcSA9IGljY191bml0 c190b19raHooZHN0LT5hdmdfYncpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgZGV2X3BtX3Fvc191 cGRhdGVfcmVxdWVzdCgmc3JjX2J1cy0+cW9zX3JlcSwgc3JjX2ZyZXEpOwo+ID4gPiAKPiA+ID4g SGF2ZSB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlLgo+ID4gPiBJZiByZXR1cm4gZXJyb3IsIHNo b3cgdGhlIHdhcmluZyB3aXRoIGRldl93YXJuLgo+ID4gCj4gPiBPSywgSSB3aWxsIGNoYW5nZSBp dCB0bzoKPiA+IAo+ID4gcmV0ID0gZGV2X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmc3JjX2J1cy0+ cW9zX3JlcSwgc3JjX2ZyZXEpOwo+ID4gaWYgKHJldCA8IDApIHsKPiA+ICAgICAgICAgZGV2X3dh cm4oc3JjX2J1cy0+ZGV2LCAiZmFpbGVkIHRvIHVwZGF0ZSBQTSBRb1MgcmVxdWVzdCIpOwo+ID4g ICAgICAgICByZXR1cm4gcmV0Owo+IAo+IElmIHlvdSByZXR1cm4gcmlnaHQgYWZ0ZXIsIGJldHRl ciB0byB1c2UgZGV2X2Vyci4KPiBJZiB5b3UgdXNlIGRldl93YXJuLCBqdXN0IHNob3cgdGhlIHdh cm5pbmcgbWVzc2FnZSB3aXRob3V0IHJldHVybi4KCk9LLCBJIHdpbGwgdXNlIGRldl9lcnIoKS4K Cj4gPiB9Cj4gPiAKPiA+ID4gPiArICAgZGV2X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmZHN0X2J1 cy0+cW9zX3JlcSwgZHN0X2ZyZXEpOwo+ID4gPiAKPiA+ID4gZGl0dG8uCj4gPiAKPiA+IE9LIChz YW1lIGFzIGFib3ZlKS4KPiAKPiBkaXR0by4KPiAKPiA+IAo+ID4gPiA+ICsKPiA+ID4gPiArICAg cmV0dXJuIDA7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBpbnQgZXh5bm9z X2J1c19pY2NfYWdncmVnYXRlKHN0cnVjdCBpY2Nfbm9kZSAqbm9kZSwgdTMyIHRhZywgdTMyIGF2 Z19idywKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBwZWFrX2J3 LCB1MzIgKmFnZ19hdmcsIHUzMiAqYWdnX3BlYWspCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgKmFn Z19hdmcgKz0gYXZnX2J3Owo+ID4gPiA+ICsgICAqYWdnX3BlYWsgPSBtYXgoKmFnZ19wZWFrLCBw ZWFrX2J3KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldHVybiAwOwo+ID4gPiA+ICt9Cj4gPiA+ ID4gKwo+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGljY19ub2RlICpleHlub3NfYnVzX2ljY194bGF0 ZShzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpzcGVjLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSkKPiA+ID4gPiArewo+ID4gPiA+ICsg ICBzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzID0gZGF0YTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIGlm IChzcGVjLT5ucCAhPSBidXMtPmRldi0+b2Zfbm9kZSkKPiA+ID4gPiArICAgICAgICAgICByZXR1 cm4gRVJSX1BUUigtRUlOVkFMKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldHVybiBidXMtPm5v ZGU7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19w YXJlbnRfcGFyc2Vfb2Yoc3RydWN0IGRldmljZV9ub2RlICpucCwKPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzKQo+ID4gPiA+ ICB7Cj4gPiA+ID4gQEAgLTM2Niw2ICs0MTYsMTAxIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19w cm9maWxlX2luaXRfcGFzc2l2ZShzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzLAo+ID4gPiA+ICAgICBy ZXR1cm4gMDsKPiA+ID4gPiAgfQo+ID4gPiA+IAo+ID4gPiA+ICtzdGF0aWMgaW50IGV4eW5vc19i dXNfaWNjX2Nvbm5lY3Qoc3RydWN0IGV4eW5vc19idXMgKmJ1cykKPiA+ID4gPiArewo+ID4gPiA+ ICsgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gYnVzLT5kZXYtPm9mX25vZGU7Cj4gPiA+ID4g KyAgIHN0cnVjdCBkZXZmcmVxICpwYXJlbnRfZGV2ZnJlcTsKPiA+ID4gPiArICAgc3RydWN0IGlj Y19ub2RlICpwYXJlbnRfbm9kZSA9IE5VTEw7Cj4gPiA+ID4gKyAgIHN0cnVjdCBvZl9waGFuZGxl X2FyZ3MgYXJnczsKPiA+ID4gPiArICAgaW50IHJldCA9IDA7Cj4gPiA+ID4gKwo+ID4gPiA+ICsg ICBwYXJlbnRfZGV2ZnJlcSA9IGRldmZyZXFfZ2V0X2RldmZyZXFfYnlfcGhhbmRsZShidXMtPmRl diwgMCk7Cj4gPiA+ID4gKyAgIGlmICghSVNfRVJSKHBhcmVudF9kZXZmcmVxKSkgewo+ID4gPiA+ ICsgICAgICAgICAgIHN0cnVjdCBleHlub3NfYnVzICpwYXJlbnRfYnVzOwo+ID4gPiA+ICsKPiA+ ID4gPiArICAgICAgICAgICBwYXJlbnRfYnVzID0gZGV2X2dldF9kcnZkYXRhKHBhcmVudF9kZXZm cmVxLT5kZXYucGFyZW50KTsKPiA+ID4gPiArICAgICAgICAgICBwYXJlbnRfbm9kZSA9IHBhcmVu dF9idXMtPm5vZGU7Cj4gPiA+ID4gKyAgIH0gZWxzZSB7Cj4gPiA+ID4gKyAgICAgICAgICAgLyog TG9vayBmb3IgcGFyZW50IGluIERUICovCj4gPiA+ID4gKyAgICAgICAgICAgaW50IG51bSA9IG9m X2NvdW50X3BoYW5kbGVfd2l0aF9hcmdzKG5wLCAicGFyZW50IiwKPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNpbnRlcmNvbm5lY3QtY2Vs bHMiKTsKPiA+ID4gPiArICAgICAgICAgICBpZiAobnVtICE9IDEpCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICBnb3RvIG91dDsgLyogJ3BhcmVudCcgaXMgb3B0aW9uYWwgKi8KPiA+ID4gPiAr Cj4gPiA+ID4gKyAgICAgICAgICAgcmV0ID0gb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MobnAs ICJwYXJlbnQiLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIjaW50ZXJjb25uZWN0LWNlbGxzIiwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAmYXJncyk7Cj4gPiA+IAo+ID4gPiAKPiA+ID4g QWN0dWFsbHksIEkgYWdyZWUgeW91ciBhcHByb2FjaC4gSSB0aGluayB0aGF0IGl0IGlzIHZlcnkg dXNlZnVsCj4gPiA+IGFuZCBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRoZSBQTSBRb1MgcmVxdWly ZW1lbnRzIGJldHdlZW4gZGV2aWNlcy4KPiA+ID4gCj4gPiA+IEJ1dCwKPiA+ID4gQXMgSSBhbHJl YWR5IGNvbW1lbnRlZCwgSSdtIG5vdCBzdXJlIHRoYXQgdGhlICJwYXJlbnQiIHByb3BlcnR5Cj4g PiA+IGlzIHByb3BlciBmb3Igb25seSB0aGlzIGRyaXZlci4gSWYgcG9zc2libGUsIHlvdSBiZXR0 ZXIgdG8gZ2V0Cj4gPiA+IHRoZSBwYXJlbnQgcGhhbmRsZSB0aHJvdWdoIG90aGVyIHdheSBsaWtl IE9GIGdyYXBoLgo+ID4gPiAKPiA+ID4gSWYgeW91IHN1Z2dlc3QgdGhlIHN0YW5kYXJkIHdheSB0 byBtYWtlIHRoZSB0cmVlIGJldHdlZW4KPiA+ID4gdGhlIGV4eW5vcy1idXMsIEknbGwgYWdyZWUu Cj4gPiAKPiA+IEFzIEkgY29tbWVudGVkIGluIHRoZSBhbnN3ZXIgdG8gcGF0Y2ggMDgsIEkgd2ls bCB1c2UgdGhlCj4gPiAnZXh5bm9zLGludGVyY29ubmVjdC1wYXJlbnQtbm9kZScgcHJvcGVydHkg Zm9yIGJ1c19kaXNwbGF5LAo+ID4gYnVzX2xlZnRidXMgYW5kIGJ1c19kbWMuCj4gCj4gT0suCj4g Cj4gPiAKPiA+ID4gQWxzbywgZm9yIGludGVyY29ubmVjdCBwYXRoLCB5b3UgaGF2ZSB0byBhZGQg dGhlIGNvbm5lY3Rpb24KPiA+ID4gYmV0d2VlbiAnYnVzX2Rpc3BsYXknIGFuZCAnYnVzX2xlZnRi dXMnIHJlZ2FyZGxlc3MKPiA+ID4gb2YgdGhlIGV4aXN0aW5nICdkZXZmcmVxJyBwcm9wZXJ0eS4K PiA+ID4gLSBidXNfZGlzcGxheSAtIGJ1c19sZWZ0YnVzIC0gYnVzX2RtYwo+ID4gPiAKPiA+ID4g PiArICAgICAgICAgICBpZiAocmV0IDwgMCkKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGdv dG8gb3V0Owo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICAgICBvZl9ub2RlX3B1dChhcmdzLm5w KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgcGFyZW50X25vZGUgPSBvZl9pY2NfZ2V0 X2Zyb21fcHJvdmlkZXIoJmFyZ3MpOwo+ID4gPiA+ICsgICAgICAgICAgIGlmIChJU19FUlIocGFy ZW50X25vZGUpKSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAvKiBNYXkgYmUgLUVQUk9C RV9ERUZFUiAqLwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihwYXJl bnRfbm9kZSk7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPiA+ID4gPiAr ICAgICAgICAgICB9Cj4gPiA+ID4gKyAgIH0KPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldCA9IGlj Y19saW5rX2NyZWF0ZShidXMtPm5vZGUsIHBhcmVudF9ub2RlLT5pZCk7Cj4gPiA+ID4gKwo+ID4g PiA+ICtvdXQ6Cj4gPiA+ID4gKyAgIHJldHVybiByZXQ7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4g PiA+ID4gK3N0YXRpYyBpbnQgZXh5bm9zX2J1c19pY2NfaW5pdChzdHJ1Y3QgZXh5bm9zX2J1cyAq YnVzKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1cy0+ZGV2 Owo+ID4gPiA+ICsgICBzdHJ1Y3QgaWNjX3Byb3ZpZGVyICpwcm92aWRlciA9ICZidXMtPnByb3Zp ZGVyOwo+ID4gPiA+ICsgICBzdHJ1Y3QgaWNjX25vZGUgKm5vZGU7Cj4gPiA+ID4gKyAgIGludCBp ZCwgcmV0Owo+ID4gPiA+ICsKPiA+ID4gPiArICAgLyogSW5pdGlhbGl6ZSB0aGUgaW50ZXJjb25u ZWN0IHByb3ZpZGVyICovCj4gPiA+ID4gKyAgIHByb3ZpZGVyLT5zZXQgPSBleHlub3NfYnVzX2lj Y19zZXQ7Cj4gPiA+ID4gKyAgIHByb3ZpZGVyLT5hZ2dyZWdhdGUgPSBleHlub3NfYnVzX2ljY19h Z2dyZWdhdGU7Cj4gPiA+ID4gKyAgIHByb3ZpZGVyLT54bGF0ZSA9IGV4eW5vc19idXNfaWNjX3hs YXRlOwo+ID4gPiA+ICsgICBwcm92aWRlci0+ZGV2ID0gZGV2Owo+ID4gPiA+ICsgICBwcm92aWRl ci0+ZGF0YSA9IGJ1czsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldCA9IGljY19wcm92aWRlcl9h ZGQocHJvdmlkZXIpOwo+ID4gPiA+ICsgICBpZiAocmV0IDwgMCkKPiA+ID4gPiArICAgICAgICAg ICBnb3RvIG91dDsKPiA+ID4gCj4gPiA+IFJldHVybiBlcnJvciB3aXRob3V0IGdvdG8gYmVjYXVz ZSB0aGVyZSBpcyBubyBhbnkgcmVxdWlyZW1lbnQKPiA+ID4gdG8gZnJlZSB0aGUgcmVzb3VyY2Ug YmVmb3JlLgo+ID4gCj4gPiBPSy4KPiA+IAo+ID4gPiA+ICsKPiA+ID4gPiArICAgcmV0ID0gaWQg PSBleHlub3NfYnVzX25leHRfaWQoKTsKPiA+ID4gPiArICAgaWYgKHJldCA8IDApCj4gPiA+ID4g KyAgICAgICAgICAgZ290byBlcnJfbm9kZTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIG5vZGUgPSBp Y2Nfbm9kZV9jcmVhdGUoaWQpOwo+ID4gPiA+ICsgICBpZiAoSVNfRVJSKG5vZGUpKSB7Cj4gPiA+ ID4gKyAgICAgICAgICAgcmV0ID0gUFRSX0VSUihub2RlKTsKPiA+ID4gPiArICAgICAgICAgICBn b3RvIGVycl9ub2RlOwo+ID4gPiA+ICsgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICBidXMtPm5v ZGUgPSBub2RlOwo+ID4gPiA+ICsgICBub2RlLT5uYW1lID0gZGV2LT5vZl9ub2RlLT5uYW1lOwo+ ID4gPiA+ICsgICBub2RlLT5kYXRhID0gYnVzOwo+ID4gPiA+ICsgICBpY2Nfbm9kZV9hZGQobm9k ZSwgcHJvdmlkZXIpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgcmV0ID0gZXh5bm9zX2J1c19pY2Nf Y29ubmVjdChidXMpOwo+ID4gPiA+ICsgICBpZiAocmV0IDwgMCkKPiA+ID4gPiArICAgICAgICAg ICBnb3RvIGVycl9jb25uZWN0Owo+ID4gPiA+ICsKPiA+ID4gPiArICAgcmV0ID0gZGV2X3BtX3Fv c19hZGRfcmVxdWVzdChidXMtPmRldmZyZXEtPmRldi5wYXJlbnQsICZidXMtPnFvc19yZXEsCj4g PiA+IAo+ID4gPiBDaGVjayB3aGV0aGVyIHRoaXMgbGluZSBpcyBvdmVyIDgwIGNoYXIuCj4gPiAK PiA+IEl0IGxvb2tzIGxpa2UgNzcgY29sdW1ucyB0byBtZS4KPiA+IAo+ID4gPiAKPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZfUE1fUU9TX01JTl9GUkVRVUVOQ1ks IDApOwo+ID4gPiAKPiA+ID4gICAgICAgQ2hlY2sgdGhlIHJldHVybiB2YWx1ZS4KPiA+IAo+ID4g T0suCj4gPiAKPiA+ID4gCj4gPiA+ID4gKwo+ID4gPiA+ICtvdXQ6Cj4gPiA+IAo+ID4gPiBSZW1v dmUgdGhpcyBnb3RvIGR1ZSB0byBub3QgbmVjZXNzYXJ5Lgo+ID4gPiAKPiA+ID4gPiArICAgcmV0 dXJuIHJldDsKPiA+ID4gCj4gPiA+ICAgICAgIHJldHVybiAwOwo+ID4gCj4gPiBPSy4KPiA+IAo+ ID4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHlub3Nf YnVzX2ljY19jb25uZWN0KCkKPiA+IHdpbGwKPiA+IHNsaWdodGx5IGNoYW5nZSBpbiB2MyBkdWUg dG8gdGhlIGNoYW5nZXMgcmVnYXJkaW5nIERUIHByb3BlcnRpZXMuCj4gPiAKPiA+ID4gCj4gPiA+ ID4gKwo+ID4gPiA+ICtlcnJfY29ubmVjdDoKPiA+ID4gPiArICAgaWNjX25vZGVfZGVsKG5vZGUp Owo+ID4gPiA+ICsgICBpY2Nfbm9kZV9kZXN0cm95KGlkKTsKPiA+ID4gPiArZXJyX25vZGU6Cj4g PiA+ID4gKyAgIGljY19wcm92aWRlcl9kZWwocHJvdmlkZXIpOwo+ID4gPiA+ICsKPiA+ID4gPiAr ICAgcmV0dXJuIHJldDsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiAgc3RhdGljIGludCBl eHlub3NfYnVzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ID4gIHsK PiA+ID4gPiAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiA+ID4gPiBAQCAt NDE1LDYgKzU2MCwxNCBAQCBzdGF0aWMgaW50IGV4eW5vc19idXNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiA+ID4gPiAgICAgaWYgKHJldCA8IDApCj4gPiA+ID4gICAgICAg ICAgICAgZ290byBlcnI7Cj4gPiA+ID4gCj4gPiA+ID4gKyAgIC8qCj4gPiA+ID4gKyAgICAqIElu aXRpYWxpemUgaW50ZXJjb25uZWN0IHByb3ZpZGVyLiBBIHJldHVybiB2YWx1ZSBvZiAtRU5PVFNV UFAgbWVhbnMKPiA+ID4gPiArICAgICogdGhhdCBDT05GSUdfSU5URVJDT05ORUNUIGlzIGRpc2Fi bGVkLgo+ID4gPiA+ICsgICAgKi8KPiA+ID4gPiArICAgcmV0ID0gZXh5bm9zX2J1c19pY2NfaW5p dChidXMpOwo+ID4gPiA+ICsgICBpZiAocmV0IDwgMCAmJiByZXQgIT0gLUVOT1RTVVBQKQo+ID4g PiA+ICsgICAgICAgICAgIGdvdG8gZXJyOwo+ID4gPiAKPiA+ID4gUHJpbnQgZXJyb3IgbWVzc2Fn ZS4KPiA+ID4gICAgICAgZGV2X2VycihkZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgaW50 ZXJjb25uZWN0IHByb3ZpZGVyIik7Cj4gPiAKPiA+IE9LLgo+ID4gCj4gPiA+IAo+ID4gPiA+ICsK PiA+ID4gPiAgICAgbWF4X3N0YXRlID0gYnVzLT5kZXZmcmVxLT5wcm9maWxlLT5tYXhfc3RhdGU7 Cj4gPiA+ID4gICAgIG1pbl9mcmVxID0gKGJ1cy0+ZGV2ZnJlcS0+cHJvZmlsZS0+ZnJlcV90YWJs ZVswXSAvIDEwMDApOwo+ID4gPiA+ICAgICBtYXhfZnJlcSA9IChidXMtPmRldmZyZXEtPnByb2Zp bGUtPmZyZXFfdGFibGVbbWF4X3N0YXRlIC0gMV0gLyAxMDAwKTsKPiA+ID4gPiAKCi0tIApBcnR1 ciDFmndpZ2/FhApTYW1zdW5nIFImRCBJbnN0aXR1dGUgUG9sYW5kClNhbXN1bmcgRWxlY3Ryb25p Y3MKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo= 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.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 4E1B8C43603 for ; Wed, 18 Dec 2019 12:39:15 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 21602218AC for ; Wed, 18 Dec 2019 12:39:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="X82LBPWz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 21602218AC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 69C266E312; Wed, 18 Dec 2019 12:39:05 +0000 (UTC) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2EFBF6E2B6 for ; Wed, 18 Dec 2019 10:48:34 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20191218104832euoutp02d69b6030b03b646862866f6c0fa1b585~hcXnVMMD22775527755euoutp02K for ; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20191218104832euoutp02d69b6030b03b646862866f6c0fa1b585~hcXnVMMD22775527755euoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1576666112; bh=V23I87IP9W3FOEDeKEQDrstnF+dxDxFw8ePbIb+Djlk=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=X82LBPWzdebiwERxx9mmKyjHfCldftL7mUKic3lLALhOKBBUxLhArpLeRhkHvagZ6 yeajfmKfLrDKJKjAY+nrm8wHOEAnzlP7z0mtFEelItAKP9yLm+fOV22IozCvJngdzN NsPBmzfbl+wYK72fmcpzBNBR0JIXmPhaLO61pzZ0= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20191218104832eucas1p1b43e0be03190e68bb1a65d416ecea640~hcXnGqwoO3274832748eucas1p1Y; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 56.D9.60679.0040AFD5; Wed, 18 Dec 2019 10:48:32 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20191218104831eucas1p2fdf3fad04bf0604068e780a234f8cb38~hcXmqyPYX1525415254eucas1p2Q; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20191218104831eusmtrp16e9db9ffda73d6f83066cd33e3bf4665~hcXmp845R1078710787eusmtrp1b; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-03-5dfa0400d452 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id CB.A1.07950.FF30AFD5; Wed, 18 Dec 2019 10:48:31 +0000 (GMT) Received: from AMDC3555 (unknown [106.120.51.67]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20191218104830eusmtip12a2a8a41bee3bfe0c56cec3c6bc2f016~hcXlt1aMS0087600876eusmtip1r; Wed, 18 Dec 2019 10:48:30 +0000 (GMT) Message-ID: Subject: Re: [RFC PATCH v2 09/11] devfreq: exynos-bus: Add interconnect functionality to exynos-bus From: Artur =?UTF-8?Q?=C5=9Awigo=C5=84?= To: Chanwoo Choi Date: Wed, 18 Dec 2019 11:48:30 +0100 In-Reply-To: X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRju27nsbDQ5bpYvJpWLfhTlpdJOVJZRcCgCg/4USZ3ypJLXnbzk jzKtsHnXTFtaEaZLE3VNm0MjdSnkHS+ZGhKRkmlpXsiVkdtR7N/zPc/7PM/7wkdhym7ChQoJ v8prwrlQNSnHa5oXOnauwa0BnpbbKqYqv4JgsgZ6ceb97BjBPLZ0EEzv3A+Syas3kEz2SCbO dHZWShn9x2mCMXzuJ5gecwHJzKRZEJPf+VrClFs+Spmhm3qSyc/5Sh6mWUPpXZId7q8j2ZGU Fgn7sugGW/XdJGHTjaWInTFs9JeelR8I5ENDYniNh+8FefBEahMReT8grnKqjkxA5X5aJKOA 3gONXVVSLZJTSlqP4Fv1PCE+ZhF0pmmXlRkE1hIzuWLJmJpGNqykSxB8MF0Xh0YR5NYX2ocU NAsJ8+MSG1bRPBSUv8JsmKQPQfvQvJ13ordC5c9mex1GZxGgr/lrT8WXhGnzJzuW0adgru+X VGzeAZPv0nEtopYKHGHRpLLRGL0JkqofYrYcoBekMJNilNhmgD4Ko+0y0aqC8RbjcowrtOak 4iIW4EvtCCF6ExAYii2YKOyHppZuwpaD0dugwuwh0n7QljiIi/EOMDDpKK7gANk1eZhIKyD5 jlKEajA/cBCNAIll/cvZLBiTCvBM5KZbPUX33ym61dYnCCtFzny0EBbEC7vC+Vh3gQsTosOD 3C9FhBnQ0kdr/dsya0LmPxcbEU0h9VqF55qFACXBxQjXwhoRUJjaSTGUvEQpArlr8bwm4rwm OpQXGtEGClc7K3Y//RqgpIO4q/wVno/kNSuqhJK5JCBdoiY0F1QTLhPP4xu8Dlq7tMRIideN ihCfEO7RXFnUaPU5t6hhU/6JIznDPlihVXZscXiB5IZUsf5b1uteHL+V+sb0NrbPqbL2jKFo 82/vxbh1rhti2ArBmePGjHH7LjcU97T5WovvtBt7pzLkz4pOd/d43PPeO9irP+mXlFqjxoVg zms7phG4f3zIkxhkAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFIsWRmVeSWpSXmKPExsVy+t/xu7r/mX/FGiw5ZmCxccZ6VouJN66w WFz/8pzVYv6Rc6wWV76+Z7OYvncTm8Wk+xNYLM6f38BuseLuR1aLTY+vsVpc3jWHzeJz7xFG ixnn9zFZrD1yl93iduMKNosZk1+yOQh4bFrVyeZx59oeNo/73ceZPDYvqffY+G4Hk0ffllWM Hp83yQWwR+nZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hkam8daGZkq6dvZpKTmZJalFunb JehlvOk5zFowLbZiw4c9bA2Max27GDk5JARMJPo/fGTsYuTiEBJYyiixZeVBNoiEhMTH9TdY IWxhiT/Xutggip4wSizfNp0RJMEr4CHR8O0VE4gtLJAqMWftdmYQm03AXuLs7W9gcREBVYkN n46xgjQzC0xklTi8/xHYBhagxMddD8EGcQoESny9+oMdxBYS+MMkMWmNIIjNLKAp0br9NzvE FToSb0/1sXQxcgAtFpT4u0MYokReonnrbOYJjIKzkHTMQqiahaRqASPzKkaR1NLi3PTcYiO9 4sTc4tK8dL3k/NxNjMB43Xbs55YdjF3vgg8xCnAwKvHw3vj7I1aINbGsuDL3EKMEB7OSCO/t jp+xQrwpiZVVqUX58UWlOanFhxhNgd6ZyCwlmpwPTCV5JfGGpobmFpaG5sbmxmYWSuK8HQIH Y4QE0hNLUrNTUwtSi2D6mDg4pRoYN/7ut11/blPi3MP2nZZM6R1M5XacBxq05T9JSv6dX6O7 a6601A+byGcdvVe8O1Ol7sk+VLqSELThTFvod7eMex1zluqvaGL3fbVf69S+j1kpyZ9PRyy/ elTObpPktp2WM+bwn81q2nh62oQ/sxZEb/0kGnb+55+zARu3yyYv1Swqzy5PNT+VrcRSnJFo qMVcVJwIANH1SwDtAgAA X-CMS-MailID: 20191218104831eucas1p2fdf3fad04bf0604068e780a234f8cb38 X-Msg-Generator: CA X-RootMTR: 20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190919142329eucas1p2e53992eab9ec6b404f716f955b3c228e References: <20190919142236.4071-1-a.swigon@samsung.com> <20190919142236.4071-10-a.swigon@samsung.com> <35053bad-3f08-190a-0ffa-9aacd16da272@samsung.com> <95ac6056bc6c790b1de7e975f44faa320fd9876f.camel@samsung.com> X-Mailman-Approved-At: Wed, 18 Dec 2019 12:38:50 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree , linux-samsung-soc , Linux PM list , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , linux-kernel , dri-devel , Chanwoo Choi , MyungJoo Ham , Krzysztof Kozlowski , Leonard Crestez , georgi.djakov@linaro.org, linux-arm-kernel , Marek Szyprowski Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gV2VkLCAyMDE5LTEyLTE4IGF0IDE5OjM5ICswOTAwLCBDaGFud29vIENob2kgd3JvdGU6Cj4g SGksCj4gCj4gMjAxOeuFhCAxMuyblCAxOOydvCAo7IiYKSDsmKTtm4QgNzoxOSwgQXJ0dXIgxZp3 aWdvxYQgPGEuc3dpZ29uQHNhbXN1bmcuY29tPuuLmOydtCDsnpHshLE6Cj4gPiAKPiA+IEhpLAo+ ID4gCj4gPiBUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuCj4gPiAKPiA+IE9uIE1vbiwgMjAxOS0x Mi0xNiBhdCAwOTo0NCArMDkwMCwgQ2hhbndvbyBDaG9pIHdyb3RlOgo+ID4gPiBIaSwKPiA+ID4g Cj4gPiA+IE9uIDkvMTkvMTkgMTE6MjIgUE0sIEFydHVyIMWad2lnb8WEIHdyb3RlOgo+ID4gPiA+ IEZyb206IEFydHVyIMWad2lnb8WEIDxhLnN3aWdvbkBwYXJ0bmVyLnNhbXN1bmcuY29tPgo+ID4g PiA+IAo+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBpbnRlcmNvbm5lY3QgZnVuY3Rpb25hbGl0eSB0 byB0aGUgZXh5bm9zLWJ1cyBkZXZmcmVxCj4gPiA+ID4gZHJpdmVyLgo+ID4gPiA+IAo+ID4gPiA+ IFRoZSBTb0MgdG9wb2xvZ3kgaXMgYSBncmFwaCAob3IsIG1vcmUgc3BlY2lmaWNhbGx5LCBhIHRy ZWUpIGFuZCBtb3N0IG9mCj4gPiA+ID4gaXRzIGVkZ2VzIGFyZSB0YWtlbiBmcm9tIHRoZSBkZXZm cmVxIHBhcmVudC1jaGlsZCBoaWVyYXJjaHkgKGNmLgo+ID4gPiA+IERvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9kZXZmcmVxL2V4eW5vcy1idXMudHh0KS4gRHVlIHRvCj4gPiA+ID4g dW5zcGVjaWZpZWQgcmVsYXRpdmUgcHJvYmluZyBvcmRlciwgLUVQUk9CRV9ERUZFUiBtYXkgYmUg cHJvcGFnYXRlZCB0bwo+ID4gPiA+IGd1YXJhbnRlZSB0aGF0IGEgY2hpbGQgaXMgcHJvYmVkIGJl Zm9yZSBpdHMgcGFyZW50Lgo+ID4gPiA+IAo+ID4gPiA+IEVhY2ggYnVzIGlzIG5vdyBhbiBpbnRl cmNvbm5lY3QgcHJvdmlkZXIgYW5kIGFuIGludGVyY29ubmVjdCBub2RlIGFzIHdlbGwKPiA+ID4g PiAoY2YuIERvY3VtZW50YXRpb24vaW50ZXJjb25uZWN0L2ludGVyY29ubmVjdC5yc3QpLCBpLmUu IGV2ZXJ5IGJ1cyByZWdpc3RlcnMKPiA+ID4gPiBpdHNlbGYgYXMgYSBub2RlLiBOb2RlIElEcyBh cmUgbm90IGhhcmRjb2RlZCBidXQgcmF0aGVyIGFzc2lnbmVkIGF0Cj4gPiA+ID4gcnVudGltZSwg aW4gcHJvYmluZyBvcmRlciAoc3ViamVjdCB0byB0aGUgYWJvdmUtbWVudGlvbmVkIGV4Y2VwdGlv bgo+ID4gPiA+IHJlZ2FyZGluZyByZWxhdGl2ZSBvcmRlcikuIFRoaXMgYXBwcm9hY2ggYWxsb3dz IGZvciB1c2luZyB0aGlzIGRyaXZlciB3aXRoCj4gPiA+ID4gdmFyaW91cyBFeHlub3MgU29Dcy4K PiA+ID4gPiAKPiA+ID4gPiBGcmVxdWVuY2llcyByZXF1ZXN0ZWQgdmlhIHRoZSBpbnRlcmNvbm5l Y3QgQVBJIGZvciBhIGdpdmVuIG5vZGUgYXJlCj4gPiA+ID4gcHJvcGFnYXRlZCB0byBkZXZmcmVx IHVzaW5nIGRldl9wbV9xb3NfdXBkYXRlX3JlcXVlc3QoKS4gUGxlYXNlIG5vdGUgdGhhdAo+ID4g PiA+IGl0IGlzIG5vdCBhbiBlcnJvciB3aGVuIENPTkZJR19JTlRFUkNPTk5FQ1QgaXMgJ24nLCBp biB3aGljaCBjYXNlIGFsbAo+ID4gPiA+IGludGVyY29ubmVjdCBBUEkgZnVuY3Rpb25zIGFyZSBu by1vcC4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBcnR1ciDFmndpZ2/FhCA8YS5z d2lnb25AcGFydG5lci5zYW1zdW5nLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9k ZXZmcmVxL2V4eW5vcy1idXMuYyB8IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKykKPiA+ID4gPiAK PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYyBiL2RyaXZl cnMvZGV2ZnJlcS9leHlub3MtYnVzLmMKPiA+ID4gPiBpbmRleCA4ZDQ0ODEwY2FjNjkuLmUwMjMy MjAyNzIwZCAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5j Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9kZXZmcmVxL2V4eW5vcy1idXMuYwo+ID4gPiA+IEBAIC0x NCwxNCArMTQsMTkgQEAKPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2RldmZyZXEtZXZlbnQuaD4K PiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ID4gPiA+ICAjaW5jbHVkZSA8bGlu dXgvZXhwb3J0Lmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9pZHIuaD4KPiA+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L2ludGVyY29ubmVjdC1wcm92aWRlci5oPgo+ID4gPiA+ICAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+Cj4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ID4gPiA+ICAj aW5jbHVkZSA8bGludXgvcG1fb3BwLmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9wbV9xb3Mu aD4KPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4gPiA+ICAj aW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+Cj4gPiA+ID4gCj4gPiA+ID4gICNk ZWZpbmUgREVGQVVMVF9TQVRVUkFUSU9OX1JBVElPICAgNDAKPiA+ID4gPiAKPiA+ID4gPiArI2Rl ZmluZSBpY2NfdW5pdHNfdG9fa2h6KHgpICgoeCkgLyA4KQo+ID4gPiAKPiA+ID4gaWNjX3VuaXRz X3RvX2toeigpIC0+IGtwYnNfdG9fa2h6KCkKPiA+IAo+ID4gT0sKPiA+IAo+ID4gPiA+ICsKPiA+ ID4gPiAgc3RydWN0IGV4eW5vc19idXMgewo+ID4gPiA+ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXY7 Cj4gPiA+ID4gCj4gPiA+ID4gQEAgLTM1LDYgKzQwLDEyIEBAIHN0cnVjdCBleHlub3NfYnVzIHsK PiA+ID4gPiAgICAgc3RydWN0IG9wcF90YWJsZSAqb3BwX3RhYmxlOwo+ID4gPiA+ICAgICBzdHJ1 Y3QgY2xrICpjbGs7Cj4gPiA+ID4gICAgIHVuc2lnbmVkIGludCByYXRpbzsKPiA+ID4gPiArCj4g PiA+ID4gKyAgIC8qIE9uZSBwcm92aWRlciBwZXIgYnVzLCBvbmUgbm9kZSBwZXIgcHJvdmlkZXIg Ki8KPiA+ID4gPiArICAgc3RydWN0IGljY19wcm92aWRlciBwcm92aWRlcjsKPiA+ID4gPiArICAg c3RydWN0IGljY19ub2RlICpub2RlOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgc3RydWN0IGRldl9w bV9xb3NfcmVxdWVzdCBxb3NfcmVxOwo+ID4gPiA+ICB9Owo+ID4gPiA+IAo+ID4gPiA+ICAvKgo+ ID4gPiA+IEBAIC01OSw2ICs3MCwxMyBAQCBleHlub3NfYnVzX29wc19lZGV2KGVuYWJsZV9lZGV2 KTsKPiA+ID4gPiAgZXh5bm9zX2J1c19vcHNfZWRldihkaXNhYmxlX2VkZXYpOwo+ID4gPiA+ICBl eHlub3NfYnVzX29wc19lZGV2KHNldF9ldmVudCk7Cj4gPiA+ID4gCj4gPiA+ID4gK3N0YXRpYyBp bnQgZXh5bm9zX2J1c19uZXh0X2lkKHZvaWQpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgc3RhdGlj IERFRklORV9JREEoZXh5bm9zX2J1c19pY2NfaWRhKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJl dHVybiBpZGFfYWxsb2MoJmV4eW5vc19idXNfaWNjX2lkYSwgR0ZQX0tFUk5FTCk7Cj4gPiA+ID4g K30KPiA+ID4gPiArCj4gPiA+ID4gIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19nZXRfZXZlbnQoc3Ry dWN0IGV4eW5vc19idXMgKmJ1cywKPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGRldmZyZXFfZXZlbnRfZGF0YSAqZWRhdGEpCj4gPiA+ID4gIHsKPiA+ID4gPiBAQCAt MTcxLDYgKzE4OSwzOCBAQCBzdGF0aWMgdm9pZCBleHlub3NfYnVzX3Bhc3NpdmVfZXhpdChzdHJ1 Y3QgZGV2aWNlICpkZXYpCj4gPiA+ID4gICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShidXMtPmNs ayk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAKPiA+ID4gPiArc3RhdGljIGludCBleHlub3NfYnVzX2lj Y19zZXQoc3RydWN0IGljY19ub2RlICpzcmMsIHN0cnVjdCBpY2Nfbm9kZSAqZHN0KQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKyAgIHN0cnVjdCBleHlub3NfYnVzICpzcmNfYnVzID0gc3JjLT5kYXRhLCAq ZHN0X2J1cyA9IGRzdC0+ZGF0YTsKPiA+ID4gPiArICAgczMyIHNyY19mcmVxID0gaWNjX3VuaXRz X3RvX2toeihzcmMtPmF2Z19idyk7Cj4gPiA+ID4gKyAgIHMzMiBkc3RfZnJlcSA9IGljY191bml0 c190b19raHooZHN0LT5hdmdfYncpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgZGV2X3BtX3Fvc191 cGRhdGVfcmVxdWVzdCgmc3JjX2J1cy0+cW9zX3JlcSwgc3JjX2ZyZXEpOwo+ID4gPiAKPiA+ID4g SGF2ZSB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlLgo+ID4gPiBJZiByZXR1cm4gZXJyb3IsIHNo b3cgdGhlIHdhcmluZyB3aXRoIGRldl93YXJuLgo+ID4gCj4gPiBPSywgSSB3aWxsIGNoYW5nZSBp dCB0bzoKPiA+IAo+ID4gcmV0ID0gZGV2X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmc3JjX2J1cy0+ cW9zX3JlcSwgc3JjX2ZyZXEpOwo+ID4gaWYgKHJldCA8IDApIHsKPiA+ICAgICAgICAgZGV2X3dh cm4oc3JjX2J1cy0+ZGV2LCAiZmFpbGVkIHRvIHVwZGF0ZSBQTSBRb1MgcmVxdWVzdCIpOwo+ID4g ICAgICAgICByZXR1cm4gcmV0Owo+IAo+IElmIHlvdSByZXR1cm4gcmlnaHQgYWZ0ZXIsIGJldHRl ciB0byB1c2UgZGV2X2Vyci4KPiBJZiB5b3UgdXNlIGRldl93YXJuLCBqdXN0IHNob3cgdGhlIHdh cm5pbmcgbWVzc2FnZSB3aXRob3V0IHJldHVybi4KCk9LLCBJIHdpbGwgdXNlIGRldl9lcnIoKS4K Cj4gPiB9Cj4gPiAKPiA+ID4gPiArICAgZGV2X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmZHN0X2J1 cy0+cW9zX3JlcSwgZHN0X2ZyZXEpOwo+ID4gPiAKPiA+ID4gZGl0dG8uCj4gPiAKPiA+IE9LIChz YW1lIGFzIGFib3ZlKS4KPiAKPiBkaXR0by4KPiAKPiA+IAo+ID4gPiA+ICsKPiA+ID4gPiArICAg cmV0dXJuIDA7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBpbnQgZXh5bm9z X2J1c19pY2NfYWdncmVnYXRlKHN0cnVjdCBpY2Nfbm9kZSAqbm9kZSwgdTMyIHRhZywgdTMyIGF2 Z19idywKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBwZWFrX2J3 LCB1MzIgKmFnZ19hdmcsIHUzMiAqYWdnX3BlYWspCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgKmFn Z19hdmcgKz0gYXZnX2J3Owo+ID4gPiA+ICsgICAqYWdnX3BlYWsgPSBtYXgoKmFnZ19wZWFrLCBw ZWFrX2J3KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldHVybiAwOwo+ID4gPiA+ICt9Cj4gPiA+ ID4gKwo+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGljY19ub2RlICpleHlub3NfYnVzX2ljY194bGF0 ZShzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpzcGVjLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSkKPiA+ID4gPiArewo+ID4gPiA+ICsg ICBzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzID0gZGF0YTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIGlm IChzcGVjLT5ucCAhPSBidXMtPmRldi0+b2Zfbm9kZSkKPiA+ID4gPiArICAgICAgICAgICByZXR1 cm4gRVJSX1BUUigtRUlOVkFMKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldHVybiBidXMtPm5v ZGU7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19w YXJlbnRfcGFyc2Vfb2Yoc3RydWN0IGRldmljZV9ub2RlICpucCwKPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzKQo+ID4gPiA+ ICB7Cj4gPiA+ID4gQEAgLTM2Niw2ICs0MTYsMTAxIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19w cm9maWxlX2luaXRfcGFzc2l2ZShzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzLAo+ID4gPiA+ICAgICBy ZXR1cm4gMDsKPiA+ID4gPiAgfQo+ID4gPiA+IAo+ID4gPiA+ICtzdGF0aWMgaW50IGV4eW5vc19i dXNfaWNjX2Nvbm5lY3Qoc3RydWN0IGV4eW5vc19idXMgKmJ1cykKPiA+ID4gPiArewo+ID4gPiA+ ICsgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gYnVzLT5kZXYtPm9mX25vZGU7Cj4gPiA+ID4g KyAgIHN0cnVjdCBkZXZmcmVxICpwYXJlbnRfZGV2ZnJlcTsKPiA+ID4gPiArICAgc3RydWN0IGlj Y19ub2RlICpwYXJlbnRfbm9kZSA9IE5VTEw7Cj4gPiA+ID4gKyAgIHN0cnVjdCBvZl9waGFuZGxl X2FyZ3MgYXJnczsKPiA+ID4gPiArICAgaW50IHJldCA9IDA7Cj4gPiA+ID4gKwo+ID4gPiA+ICsg ICBwYXJlbnRfZGV2ZnJlcSA9IGRldmZyZXFfZ2V0X2RldmZyZXFfYnlfcGhhbmRsZShidXMtPmRl diwgMCk7Cj4gPiA+ID4gKyAgIGlmICghSVNfRVJSKHBhcmVudF9kZXZmcmVxKSkgewo+ID4gPiA+ ICsgICAgICAgICAgIHN0cnVjdCBleHlub3NfYnVzICpwYXJlbnRfYnVzOwo+ID4gPiA+ICsKPiA+ ID4gPiArICAgICAgICAgICBwYXJlbnRfYnVzID0gZGV2X2dldF9kcnZkYXRhKHBhcmVudF9kZXZm cmVxLT5kZXYucGFyZW50KTsKPiA+ID4gPiArICAgICAgICAgICBwYXJlbnRfbm9kZSA9IHBhcmVu dF9idXMtPm5vZGU7Cj4gPiA+ID4gKyAgIH0gZWxzZSB7Cj4gPiA+ID4gKyAgICAgICAgICAgLyog TG9vayBmb3IgcGFyZW50IGluIERUICovCj4gPiA+ID4gKyAgICAgICAgICAgaW50IG51bSA9IG9m X2NvdW50X3BoYW5kbGVfd2l0aF9hcmdzKG5wLCAicGFyZW50IiwKPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNpbnRlcmNvbm5lY3QtY2Vs bHMiKTsKPiA+ID4gPiArICAgICAgICAgICBpZiAobnVtICE9IDEpCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICBnb3RvIG91dDsgLyogJ3BhcmVudCcgaXMgb3B0aW9uYWwgKi8KPiA+ID4gPiAr Cj4gPiA+ID4gKyAgICAgICAgICAgcmV0ID0gb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MobnAs ICJwYXJlbnQiLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIjaW50ZXJjb25uZWN0LWNlbGxzIiwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAmYXJncyk7Cj4gPiA+IAo+ID4gPiAKPiA+ID4g QWN0dWFsbHksIEkgYWdyZWUgeW91ciBhcHByb2FjaC4gSSB0aGluayB0aGF0IGl0IGlzIHZlcnkg dXNlZnVsCj4gPiA+IGFuZCBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRoZSBQTSBRb1MgcmVxdWly ZW1lbnRzIGJldHdlZW4gZGV2aWNlcy4KPiA+ID4gCj4gPiA+IEJ1dCwKPiA+ID4gQXMgSSBhbHJl YWR5IGNvbW1lbnRlZCwgSSdtIG5vdCBzdXJlIHRoYXQgdGhlICJwYXJlbnQiIHByb3BlcnR5Cj4g PiA+IGlzIHByb3BlciBmb3Igb25seSB0aGlzIGRyaXZlci4gSWYgcG9zc2libGUsIHlvdSBiZXR0 ZXIgdG8gZ2V0Cj4gPiA+IHRoZSBwYXJlbnQgcGhhbmRsZSB0aHJvdWdoIG90aGVyIHdheSBsaWtl IE9GIGdyYXBoLgo+ID4gPiAKPiA+ID4gSWYgeW91IHN1Z2dlc3QgdGhlIHN0YW5kYXJkIHdheSB0 byBtYWtlIHRoZSB0cmVlIGJldHdlZW4KPiA+ID4gdGhlIGV4eW5vcy1idXMsIEknbGwgYWdyZWUu Cj4gPiAKPiA+IEFzIEkgY29tbWVudGVkIGluIHRoZSBhbnN3ZXIgdG8gcGF0Y2ggMDgsIEkgd2ls bCB1c2UgdGhlCj4gPiAnZXh5bm9zLGludGVyY29ubmVjdC1wYXJlbnQtbm9kZScgcHJvcGVydHkg Zm9yIGJ1c19kaXNwbGF5LAo+ID4gYnVzX2xlZnRidXMgYW5kIGJ1c19kbWMuCj4gCj4gT0suCj4g Cj4gPiAKPiA+ID4gQWxzbywgZm9yIGludGVyY29ubmVjdCBwYXRoLCB5b3UgaGF2ZSB0byBhZGQg dGhlIGNvbm5lY3Rpb24KPiA+ID4gYmV0d2VlbiAnYnVzX2Rpc3BsYXknIGFuZCAnYnVzX2xlZnRi dXMnIHJlZ2FyZGxlc3MKPiA+ID4gb2YgdGhlIGV4aXN0aW5nICdkZXZmcmVxJyBwcm9wZXJ0eS4K PiA+ID4gLSBidXNfZGlzcGxheSAtIGJ1c19sZWZ0YnVzIC0gYnVzX2RtYwo+ID4gPiAKPiA+ID4g PiArICAgICAgICAgICBpZiAocmV0IDwgMCkKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGdv dG8gb3V0Owo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICAgICBvZl9ub2RlX3B1dChhcmdzLm5w KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgcGFyZW50X25vZGUgPSBvZl9pY2NfZ2V0 X2Zyb21fcHJvdmlkZXIoJmFyZ3MpOwo+ID4gPiA+ICsgICAgICAgICAgIGlmIChJU19FUlIocGFy ZW50X25vZGUpKSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAvKiBNYXkgYmUgLUVQUk9C RV9ERUZFUiAqLwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihwYXJl bnRfbm9kZSk7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPiA+ID4gPiAr ICAgICAgICAgICB9Cj4gPiA+ID4gKyAgIH0KPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldCA9IGlj Y19saW5rX2NyZWF0ZShidXMtPm5vZGUsIHBhcmVudF9ub2RlLT5pZCk7Cj4gPiA+ID4gKwo+ID4g PiA+ICtvdXQ6Cj4gPiA+ID4gKyAgIHJldHVybiByZXQ7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4g PiA+ID4gK3N0YXRpYyBpbnQgZXh5bm9zX2J1c19pY2NfaW5pdChzdHJ1Y3QgZXh5bm9zX2J1cyAq YnVzKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1cy0+ZGV2 Owo+ID4gPiA+ICsgICBzdHJ1Y3QgaWNjX3Byb3ZpZGVyICpwcm92aWRlciA9ICZidXMtPnByb3Zp ZGVyOwo+ID4gPiA+ICsgICBzdHJ1Y3QgaWNjX25vZGUgKm5vZGU7Cj4gPiA+ID4gKyAgIGludCBp ZCwgcmV0Owo+ID4gPiA+ICsKPiA+ID4gPiArICAgLyogSW5pdGlhbGl6ZSB0aGUgaW50ZXJjb25u ZWN0IHByb3ZpZGVyICovCj4gPiA+ID4gKyAgIHByb3ZpZGVyLT5zZXQgPSBleHlub3NfYnVzX2lj Y19zZXQ7Cj4gPiA+ID4gKyAgIHByb3ZpZGVyLT5hZ2dyZWdhdGUgPSBleHlub3NfYnVzX2ljY19h Z2dyZWdhdGU7Cj4gPiA+ID4gKyAgIHByb3ZpZGVyLT54bGF0ZSA9IGV4eW5vc19idXNfaWNjX3hs YXRlOwo+ID4gPiA+ICsgICBwcm92aWRlci0+ZGV2ID0gZGV2Owo+ID4gPiA+ICsgICBwcm92aWRl ci0+ZGF0YSA9IGJ1czsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIHJldCA9IGljY19wcm92aWRlcl9h ZGQocHJvdmlkZXIpOwo+ID4gPiA+ICsgICBpZiAocmV0IDwgMCkKPiA+ID4gPiArICAgICAgICAg ICBnb3RvIG91dDsKPiA+ID4gCj4gPiA+IFJldHVybiBlcnJvciB3aXRob3V0IGdvdG8gYmVjYXVz ZSB0aGVyZSBpcyBubyBhbnkgcmVxdWlyZW1lbnQKPiA+ID4gdG8gZnJlZSB0aGUgcmVzb3VyY2Ug YmVmb3JlLgo+ID4gCj4gPiBPSy4KPiA+IAo+ID4gPiA+ICsKPiA+ID4gPiArICAgcmV0ID0gaWQg PSBleHlub3NfYnVzX25leHRfaWQoKTsKPiA+ID4gPiArICAgaWYgKHJldCA8IDApCj4gPiA+ID4g KyAgICAgICAgICAgZ290byBlcnJfbm9kZTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgIG5vZGUgPSBp Y2Nfbm9kZV9jcmVhdGUoaWQpOwo+ID4gPiA+ICsgICBpZiAoSVNfRVJSKG5vZGUpKSB7Cj4gPiA+ ID4gKyAgICAgICAgICAgcmV0ID0gUFRSX0VSUihub2RlKTsKPiA+ID4gPiArICAgICAgICAgICBn b3RvIGVycl9ub2RlOwo+ID4gPiA+ICsgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICBidXMtPm5v ZGUgPSBub2RlOwo+ID4gPiA+ICsgICBub2RlLT5uYW1lID0gZGV2LT5vZl9ub2RlLT5uYW1lOwo+ ID4gPiA+ICsgICBub2RlLT5kYXRhID0gYnVzOwo+ID4gPiA+ICsgICBpY2Nfbm9kZV9hZGQobm9k ZSwgcHJvdmlkZXIpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgcmV0ID0gZXh5bm9zX2J1c19pY2Nf Y29ubmVjdChidXMpOwo+ID4gPiA+ICsgICBpZiAocmV0IDwgMCkKPiA+ID4gPiArICAgICAgICAg ICBnb3RvIGVycl9jb25uZWN0Owo+ID4gPiA+ICsKPiA+ID4gPiArICAgcmV0ID0gZGV2X3BtX3Fv c19hZGRfcmVxdWVzdChidXMtPmRldmZyZXEtPmRldi5wYXJlbnQsICZidXMtPnFvc19yZXEsCj4g PiA+IAo+ID4gPiBDaGVjayB3aGV0aGVyIHRoaXMgbGluZSBpcyBvdmVyIDgwIGNoYXIuCj4gPiAK PiA+IEl0IGxvb2tzIGxpa2UgNzcgY29sdW1ucyB0byBtZS4KPiA+IAo+ID4gPiAKPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZfUE1fUU9TX01JTl9GUkVRVUVOQ1ks IDApOwo+ID4gPiAKPiA+ID4gICAgICAgQ2hlY2sgdGhlIHJldHVybiB2YWx1ZS4KPiA+IAo+ID4g T0suCj4gPiAKPiA+ID4gCj4gPiA+ID4gKwo+ID4gPiA+ICtvdXQ6Cj4gPiA+IAo+ID4gPiBSZW1v dmUgdGhpcyBnb3RvIGR1ZSB0byBub3QgbmVjZXNzYXJ5Lgo+ID4gPiAKPiA+ID4gPiArICAgcmV0 dXJuIHJldDsKPiA+ID4gCj4gPiA+ICAgICAgIHJldHVybiAwOwo+ID4gCj4gPiBPSy4KPiA+IAo+ ID4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHlub3Nf YnVzX2ljY19jb25uZWN0KCkKPiA+IHdpbGwKPiA+IHNsaWdodGx5IGNoYW5nZSBpbiB2MyBkdWUg dG8gdGhlIGNoYW5nZXMgcmVnYXJkaW5nIERUIHByb3BlcnRpZXMuCj4gPiAKPiA+ID4gCj4gPiA+ ID4gKwo+ID4gPiA+ICtlcnJfY29ubmVjdDoKPiA+ID4gPiArICAgaWNjX25vZGVfZGVsKG5vZGUp Owo+ID4gPiA+ICsgICBpY2Nfbm9kZV9kZXN0cm95KGlkKTsKPiA+ID4gPiArZXJyX25vZGU6Cj4g PiA+ID4gKyAgIGljY19wcm92aWRlcl9kZWwocHJvdmlkZXIpOwo+ID4gPiA+ICsKPiA+ID4gPiAr ICAgcmV0dXJuIHJldDsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiAgc3RhdGljIGludCBl eHlub3NfYnVzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ID4gIHsK PiA+ID4gPiAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiA+ID4gPiBAQCAt NDE1LDYgKzU2MCwxNCBAQCBzdGF0aWMgaW50IGV4eW5vc19idXNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiA+ID4gPiAgICAgaWYgKHJldCA8IDApCj4gPiA+ID4gICAgICAg ICAgICAgZ290byBlcnI7Cj4gPiA+ID4gCj4gPiA+ID4gKyAgIC8qCj4gPiA+ID4gKyAgICAqIElu aXRpYWxpemUgaW50ZXJjb25uZWN0IHByb3ZpZGVyLiBBIHJldHVybiB2YWx1ZSBvZiAtRU5PVFNV UFAgbWVhbnMKPiA+ID4gPiArICAgICogdGhhdCBDT05GSUdfSU5URVJDT05ORUNUIGlzIGRpc2Fi bGVkLgo+ID4gPiA+ICsgICAgKi8KPiA+ID4gPiArICAgcmV0ID0gZXh5bm9zX2J1c19pY2NfaW5p dChidXMpOwo+ID4gPiA+ICsgICBpZiAocmV0IDwgMCAmJiByZXQgIT0gLUVOT1RTVVBQKQo+ID4g PiA+ICsgICAgICAgICAgIGdvdG8gZXJyOwo+ID4gPiAKPiA+ID4gUHJpbnQgZXJyb3IgbWVzc2Fn ZS4KPiA+ID4gICAgICAgZGV2X2VycihkZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgaW50 ZXJjb25uZWN0IHByb3ZpZGVyIik7Cj4gPiAKPiA+IE9LLgo+ID4gCj4gPiA+IAo+ID4gPiA+ICsK PiA+ID4gPiAgICAgbWF4X3N0YXRlID0gYnVzLT5kZXZmcmVxLT5wcm9maWxlLT5tYXhfc3RhdGU7 Cj4gPiA+ID4gICAgIG1pbl9mcmVxID0gKGJ1cy0+ZGV2ZnJlcS0+cHJvZmlsZS0+ZnJlcV90YWJs ZVswXSAvIDEwMDApOwo+ID4gPiA+ICAgICBtYXhfZnJlcSA9IChidXMtPmRldmZyZXEtPnByb2Zp bGUtPmZyZXFfdGFibGVbbWF4X3N0YXRlIC0gMV0gLyAxMDAwKTsKPiA+ID4gPiAKCi0tIApBcnR1 ciDFmndpZ2/FhApTYW1zdW5nIFImRCBJbnN0aXR1dGUgUG9sYW5kClNhbXN1bmcgRWxlY3Ryb25p Y3MKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK