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=-14.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 D8597C2BBD5 for ; Thu, 17 Dec 2020 20:59:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B713523B28 for ; Thu, 17 Dec 2020 20:59:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730125AbgLQU7M (ORCPT ); Thu, 17 Dec 2020 15:59:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40088 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729655AbgLQU7M (ORCPT ); Thu, 17 Dec 2020 15:59:12 -0500 Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5B81C061794; Thu, 17 Dec 2020 12:58:31 -0800 (PST) Received: by mail-lf1-x129.google.com with SMTP id m25so61160843lfc.11; Thu, 17 Dec 2020 12:58:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=2zaYEPU3Dc5zFOFGXsYjz12iYiWYHN8N3O6lakukl/s=; b=qgHdy+aVZrcGxyULYw4C/dnhEhXcHqnIi3WOZ6PUyWeJ1T2KuwB4MyFcAMVcIxtEkN P0wC9L1L3/OzQP2N4oOFkRUNhuvP6BbgtM9veJ1+/75E6Miy7hj7Bf2nEtboXPbzthOR kxxro9rjbhD5efC41F1HFL2RxEsBF22ZTFXdF10FlYyRqWRrEuRkkxNHvNJAyiBiyHb5 xCx3hJCcAYykCnF/aKI0AxMDTkj4x39+lQJUW1SrSIqcsl3UFk3eY07U8IrPb8AhV1uo MAvO3Efc7ekB1pIAMLvXK67v6Yhq5T7IZPOk04vo8zGuFhsht5N49PaRJoPc7WLTbass MfYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=2zaYEPU3Dc5zFOFGXsYjz12iYiWYHN8N3O6lakukl/s=; b=mk6ECNMHIfaJnfdVJza6zr3sQqMHNSUgYAr5ydti1HnQ46TwMYNrMnbwcfUw3Asi+C b2yLSIDIROzMJ4LukAW2nI6g0WCFx2Rgp+mq9uJog4e5eFieaS5jShXCayMwSEf11HGI X7T6jbjuu9QqNTxS95tA8I7QTHbfhwKEw7O527CzXhBDqmwJB2aYLR5Vft2Ixka435tP sKi/5FxDUB5UY0wKD7LEMy2xHnmF6UqG0UXampjezxvUVSZ0coNYem4z9WPl2kLL7U+2 bq2afagXnH6yG2+yTpWrD+kO3pjf0QaM+NxG/+yqMZulq4kQBMVz/5debAdh5xrh1HEk 1smw== X-Gm-Message-State: AOAM531DD07vwJRGTuaLZMKW502LLUivI2AlWRZnvbbClbo+msHB3e2f ilcxzGuwW0eCPCm8RSbXdQ77KmaKBMA= X-Google-Smtp-Source: ABdhPJybT54BUMIzcynXITACTqPF/IcLrcExqUZ6d4e77IqO+C219fiwEYcS2lWHXSvWZh2/2hrkeQ== X-Received: by 2002:a05:6512:3089:: with SMTP id z9mr233591lfd.433.1608238709941; Thu, 17 Dec 2020 12:58:29 -0800 (PST) Received: from [192.168.2.145] (109-252-192-57.dynamic.spd-mgts.ru. [109.252.192.57]) by smtp.googlemail.com with ESMTPSA id z26sm789139ljn.98.2020.12.17.12.58.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Dec 2020 12:58:29 -0800 (PST) Subject: Re: [PATCH v2 34/48] gpu: host1x: Support power management From: Dmitry Osipenko To: Mikko Perttunen , Thierry Reding , Jonathan Hunter , Mark Brown , Liam Girdwood , Ulf Hansson , Mauro Carvalho Chehab , Rob Herring , Peter Geis , Nicolas Chauvet , Krzysztof Kozlowski , "Rafael J. Wysocki" , Kevin Hilman , Peter De Schrijver , Viresh Kumar , Stephen Boyd , Michael Turquette Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, linux-tegra@vger.kernel.org, linux-clk@vger.kernel.org References: <20201217180638.22748-1-digetx@gmail.com> <20201217180638.22748-35-digetx@gmail.com> Message-ID: <5523b804-f5de-a529-fd4e-751c39ab663b@gmail.com> Date: Thu, 17 Dec 2020 23:58:28 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org 17.12.2020 21:45, Dmitry Osipenko пишет: > 17.12.2020 21:21, Mikko Perttunen пишет: >> On 12/17/20 8:06 PM, Dmitry Osipenko wrote: >>> Add suspend/resume and generic power domain support to the Host1x driver. >>> This is required for enabling system-wide DVFS and supporting dynamic >>> power management using a generic power domain. >>> >>> Tested-by: Peter Geis >>> Tested-by: Nicolas Chauvet >>> Signed-off-by: Dmitry Osipenko >>> --- >>>   drivers/gpu/host1x/dev.c | 102 ++++++++++++++++++++++++++++++++++----- >>>   1 file changed, 91 insertions(+), 11 deletions(-) >>> >>> diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c >>> index d0ebb70e2fdd..c1525cffe7b1 100644 >>> --- a/drivers/gpu/host1x/dev.c >>> +++ b/drivers/gpu/host1x/dev.c >>> @@ -12,6 +12,7 @@ >>>   #include >>>   #include >>>   #include >>> +#include >>>   #include >>>     #define CREATE_TRACE_POINTS >>> @@ -417,7 +418,7 @@ static int host1x_probe(struct platform_device *pdev) >>>           return err; >>>       } >>>   -    host->rst = devm_reset_control_get(&pdev->dev, "host1x"); >>> +    host->rst = devm_reset_control_get_exclusive_released(&pdev->dev, >>> "host1x"); >>>       if (IS_ERR(host->rst)) { >>>           err = PTR_ERR(host->rst); >>>           dev_err(&pdev->dev, "failed to get reset: %d\n", err); >>> @@ -437,16 +438,15 @@ static int host1x_probe(struct platform_device >>> *pdev) >>>           goto iommu_exit; >>>       } >>>   -    err = clk_prepare_enable(host->clk); >>> -    if (err < 0) { >>> -        dev_err(&pdev->dev, "failed to enable clock\n"); >>> -        goto free_channels; >>> -    } >>> +    pm_runtime_enable(&pdev->dev); >>> +    err = pm_runtime_get_sync(&pdev->dev); >>> +    if (err < 0) >>> +        goto rpm_disable; >>>         err = reset_control_deassert(host->rst); >>>       if (err < 0) { >>>           dev_err(&pdev->dev, "failed to deassert reset: %d\n", err); >>> -        goto unprepare_disable; >>> +        goto rpm_disable; >>>       } >>>         err = host1x_syncpt_init(host); >>> @@ -485,9 +485,10 @@ static int host1x_probe(struct platform_device >>> *pdev) >>>       host1x_syncpt_deinit(host); >>>   reset_assert: >>>       reset_control_assert(host->rst); >>> -unprepare_disable: >>> -    clk_disable_unprepare(host->clk); >>> -free_channels: >>> +rpm_disable: >>> +    pm_runtime_put(&pdev->dev); >>> +    pm_runtime_disable(&pdev->dev); >>> + >>>       host1x_channel_list_free(&host->channel_list); >>>   iommu_exit: >>>       host1x_iommu_exit(host); >>> @@ -504,16 +505,95 @@ static int host1x_remove(struct platform_device >>> *pdev) >>>       host1x_intr_deinit(host); >>>       host1x_syncpt_deinit(host); >>>       reset_control_assert(host->rst); >>> -    clk_disable_unprepare(host->clk); >>> +    pm_runtime_put(&pdev->dev); >>> +    pm_runtime_disable(&pdev->dev); >>>       host1x_iommu_exit(host); >>>         return 0; >>>   } >>>   +static int __maybe_unused host1x_runtime_suspend(struct device *dev) >>> +{ >>> +    struct host1x *host = dev_get_drvdata(dev); >>> + >>> +    clk_disable_unprepare(host->clk); >>> +    reset_control_release(host->rst); >>> + >>> +    return 0; >>> +} >>> + >>> +static int __maybe_unused host1x_runtime_resume(struct device *dev) >>> +{ >>> +    struct host1x *host = dev_get_drvdata(dev); >>> +    int err; >>> + >>> +    err = reset_control_acquire(host->rst); >>> +    if (err) { >>> +        dev_err(dev, "failed to acquire reset: %d\n", err); >>> +        return err; >>> +    } >>> + >>> +    err = clk_prepare_enable(host->clk); >>> +    if (err) { >>> +        dev_err(dev, "failed to enable clock: %d\n", err); >>> +        goto release_reset; >>> +    } >>> + >>> +    return 0; >>> + >>> +release_reset: >>> +    reset_control_release(host->rst); >>> + >>> +    return err; >>> +} >>> + >>> +static __maybe_unused int host1x_suspend(struct device *dev) >>> +{ >>> +    struct host1x *host = dev_get_drvdata(dev); >>> +    int err; >>> + >>> +    host1x_syncpt_save(host); >>> + >>> +    err = pm_runtime_force_suspend(dev); >>> +    if (err < 0) >>> +        return err; >>> + >>> +    return 0; >>> +} >>> + >>> +static __maybe_unused int host1x_resume(struct device *dev) >>> +{ >>> +    struct host1x *host = dev_get_drvdata(dev); >>> +    struct host1x_channel *channel; >>> +    unsigned int index; >>> +    int err; >>> + >>> +    err = pm_runtime_force_resume(dev); >>> +    if (err < 0) >>> +        return err; >>> + >>> +    host1x_syncpt_restore(host); >> >> We also need to execute 'host1x_setup_sid_table' upon resume. > > Indeed, thanks. I'll correct it in the next revision. > > Perhaps the actual save/restore needs to be moved to the runtime > callbacks. At least I can't remember right now why this wasn't done in > the first place. > I looked at the save/restore once again and recalled why it's done so. The reason is that the host1x touches hardware during the driver probe, and thus, RPM needs to be resumed first. It will be a bigger change to properly decouple the hardware initialization so that it all could be put it into the RPM callback. I'll try to do it in v3. 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=-12.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 7D581C4361B for ; Thu, 17 Dec 2020 20:58:38 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.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 1048823A24 for ; Thu, 17 Dec 2020 20:58:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1048823A24 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 83A7587AE7; Thu, 17 Dec 2020 20:58:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Uv3BFZKfiwQe; Thu, 17 Dec 2020 20:58:34 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id C518B87B01; Thu, 17 Dec 2020 20:58:34 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id EF5821BF9BD for ; Thu, 17 Dec 2020 20:58:32 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id E7CC78772A for ; Thu, 17 Dec 2020 20:58:32 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uu8szuFqYBeO for ; Thu, 17 Dec 2020 20:58:32 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by fraxinus.osuosl.org (Postfix) with ESMTPS id CCE9387729 for ; Thu, 17 Dec 2020 20:58:31 +0000 (UTC) Received: by mail-lf1-f52.google.com with SMTP id o17so58281293lfg.4 for ; Thu, 17 Dec 2020 12:58:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=2zaYEPU3Dc5zFOFGXsYjz12iYiWYHN8N3O6lakukl/s=; b=qgHdy+aVZrcGxyULYw4C/dnhEhXcHqnIi3WOZ6PUyWeJ1T2KuwB4MyFcAMVcIxtEkN P0wC9L1L3/OzQP2N4oOFkRUNhuvP6BbgtM9veJ1+/75E6Miy7hj7Bf2nEtboXPbzthOR kxxro9rjbhD5efC41F1HFL2RxEsBF22ZTFXdF10FlYyRqWRrEuRkkxNHvNJAyiBiyHb5 xCx3hJCcAYykCnF/aKI0AxMDTkj4x39+lQJUW1SrSIqcsl3UFk3eY07U8IrPb8AhV1uo MAvO3Efc7ekB1pIAMLvXK67v6Yhq5T7IZPOk04vo8zGuFhsht5N49PaRJoPc7WLTbass MfYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=2zaYEPU3Dc5zFOFGXsYjz12iYiWYHN8N3O6lakukl/s=; b=qej4Qpkjfp8PvO37F5g5xPhZEMdF4wmHoyn1qyVWz+L9tAIL1CbeYb9C39vOBSaiHl 7sKrwI1PthTXhU2HCkXwF/jyC9rJPbbaMD+UMdfjrs280rUIMxx/Phvi/WZrvBy07Z2b CV/9h22ho49+JWNW7G5RxmcKZpVHCoGttiOdJgzp60HTZ+T/O20ny/1O+KaHh8OMiQG+ Q4hrc4IfLaTB5j1ctdajM1+Jrm4HrYuzti8ocTW/5iQ2TkWzxBHnjfXLodMnfWUuvbWk pkVaMRmXchonQMLI+eh02efOATergJDF3w2+nZxi21HOmYua3NR6YU5m9Qhih9H39vnl UFwQ== X-Gm-Message-State: AOAM533gg2JXe3h7B+9KqNOJjAat/M0eg3aNZaFb2Rc8wyY41FwgrJgW il0Du16Dy5oSyXPms4Ju87k= X-Google-Smtp-Source: ABdhPJybT54BUMIzcynXITACTqPF/IcLrcExqUZ6d4e77IqO+C219fiwEYcS2lWHXSvWZh2/2hrkeQ== X-Received: by 2002:a05:6512:3089:: with SMTP id z9mr233591lfd.433.1608238709941; Thu, 17 Dec 2020 12:58:29 -0800 (PST) Received: from [192.168.2.145] (109-252-192-57.dynamic.spd-mgts.ru. [109.252.192.57]) by smtp.googlemail.com with ESMTPSA id z26sm789139ljn.98.2020.12.17.12.58.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Dec 2020 12:58:29 -0800 (PST) Subject: Re: [PATCH v2 34/48] gpu: host1x: Support power management From: Dmitry Osipenko To: Mikko Perttunen , Thierry Reding , Jonathan Hunter , Mark Brown , Liam Girdwood , Ulf Hansson , Mauro Carvalho Chehab , Rob Herring , Peter Geis , Nicolas Chauvet , Krzysztof Kozlowski , "Rafael J. Wysocki" , Kevin Hilman , Peter De Schrijver , Viresh Kumar , Stephen Boyd , Michael Turquette References: <20201217180638.22748-1-digetx@gmail.com> <20201217180638.22748-35-digetx@gmail.com> Message-ID: <5523b804-f5de-a529-fd4e-751c39ab663b@gmail.com> Date: Thu, 17 Dec 2020 23:58:28 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.2 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-clk@vger.kernel.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" MTcuMTIuMjAyMCAyMTo0NSwgRG1pdHJ5IE9zaXBlbmtvINC/0LjRiNC10YI6Cj4gMTcuMTIuMjAy MCAyMToyMSwgTWlra28gUGVydHR1bmVuINC/0LjRiNC10YI6Cj4+IE9uIDEyLzE3LzIwIDg6MDYg UE0sIERtaXRyeSBPc2lwZW5rbyB3cm90ZToKPj4+IEFkZCBzdXNwZW5kL3Jlc3VtZSBhbmQgZ2Vu ZXJpYyBwb3dlciBkb21haW4gc3VwcG9ydCB0byB0aGUgSG9zdDF4IGRyaXZlci4KPj4+IFRoaXMg aXMgcmVxdWlyZWQgZm9yIGVuYWJsaW5nIHN5c3RlbS13aWRlIERWRlMgYW5kIHN1cHBvcnRpbmcg ZHluYW1pYwo+Pj4gcG93ZXIgbWFuYWdlbWVudCB1c2luZyBhIGdlbmVyaWMgcG93ZXIgZG9tYWlu Lgo+Pj4KPj4+IFRlc3RlZC1ieTogUGV0ZXIgR2VpcyA8cGd3aXBlb3V0QGdtYWlsLmNvbT4KPj4+ IFRlc3RlZC1ieTogTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0QGdtYWlsLmNvbT4KPj4+IFNpZ25l ZC1vZmYtYnk6IERtaXRyeSBPc2lwZW5rbyA8ZGlnZXR4QGdtYWlsLmNvbT4KPj4+IC0tLQo+Pj4g wqAgZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQo+Pj4gwqAgMSBmaWxlIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9ob3N0MXgv ZGV2LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2LmMKPj4+IGluZGV4IGQwZWJiNzBlMmZkZC4u YzE1MjVjZmZlN2IxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2LmMKPj4+IEBAIC0xMiw2ICsxMiw3IEBACj4+ PiDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+PiDCoCAjaW5jbHVkZSA8bGludXgvb2Zf ZGV2aWNlLmg+Cj4+PiDCoCAjaW5jbHVkZSA8bGludXgvb2YuaD4KPj4+ICsjaW5jbHVkZSA8bGlu dXgvcG1fcnVudGltZS5oPgo+Pj4gwqAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPj4+IMKgIMKg ICNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUwo+Pj4gQEAgLTQxNyw3ICs0MTgsNyBAQCBzdGF0 aWMgaW50IGhvc3QxeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+PiDCoMKgwqDCoMKgIH0KPj4+IMKgIC3CoMKg wqAgaG9zdC0+cnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldCgmcGRldi0+ZGV2LCAiaG9zdDF4 Iik7Cj4+PiArwqDCoMKgIGhvc3QtPnJzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfZXhjbHVz aXZlX3JlbGVhc2VkKCZwZGV2LT5kZXYsCj4+PiAiaG9zdDF4Iik7Cj4+PiDCoMKgwqDCoMKgIGlm IChJU19FUlIoaG9zdC0+cnN0KSkgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGVyciA9IFBUUl9F UlIoaG9zdC0+cnN0KTsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKCZwZGV2LT5kZXYs ICJmYWlsZWQgdG8gZ2V0IHJlc2V0OiAlZFxuIiwgZXJyKTsKPj4+IEBAIC00MzcsMTYgKzQzOCwx NSBAQCBzdGF0aWMgaW50IGhvc3QxeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlCj4+PiAq cGRldikKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGlvbW11X2V4aXQ7Cj4+PiDCoMKgwqDC oMKgIH0KPj4+IMKgIC3CoMKgwqAgZXJyID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhvc3QtPmNsayk7 Cj4+PiAtwqDCoMKgIGlmIChlcnIgPCAwKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqAgZGV2X2Vycigm cGRldi0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBjbG9ja1xuIik7Cj4+PiAtwqDCoMKgwqDCoMKg wqAgZ290byBmcmVlX2NoYW5uZWxzOwo+Pj4gLcKgwqDCoCB9Cj4+PiArwqDCoMKgIHBtX3J1bnRp bWVfZW5hYmxlKCZwZGV2LT5kZXYpOwo+Pj4gK8KgwqDCoCBlcnIgPSBwbV9ydW50aW1lX2dldF9z eW5jKCZwZGV2LT5kZXYpOwo+Pj4gK8KgwqDCoCBpZiAoZXJyIDwgMCkKPj4+ICvCoMKgwqDCoMKg wqDCoCBnb3RvIHJwbV9kaXNhYmxlOwo+Pj4gwqAgwqDCoMKgwqDCoCBlcnIgPSByZXNldF9jb250 cm9sX2RlYXNzZXJ0KGhvc3QtPnJzdCk7Cj4+PiDCoMKgwqDCoMKgIGlmIChlcnIgPCAwKSB7Cj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGRlYXNz ZXJ0IHJlc2V0OiAlZFxuIiwgZXJyKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBnb3RvIHVucHJlcGFy ZV9kaXNhYmxlOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gcnBtX2Rpc2FibGU7Cj4+PiDCoMKg wqDCoMKgIH0KPj4+IMKgIMKgwqDCoMKgwqAgZXJyID0gaG9zdDF4X3N5bmNwdF9pbml0KGhvc3Qp Owo+Pj4gQEAgLTQ4NSw5ICs0ODUsMTAgQEAgc3RhdGljIGludCBob3N0MXhfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZQo+Pj4gKnBkZXYpCj4+PiDCoMKgwqDCoMKgIGhvc3QxeF9zeW5jcHRf ZGVpbml0KGhvc3QpOwo+Pj4gwqAgcmVzZXRfYXNzZXJ0Ogo+Pj4gwqDCoMKgwqDCoCByZXNldF9j b250cm9sX2Fzc2VydChob3N0LT5yc3QpOwo+Pj4gLXVucHJlcGFyZV9kaXNhYmxlOgo+Pj4gLcKg wqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUoaG9zdC0+Y2xrKTsKPj4+IC1mcmVlX2NoYW5uZWxz Ogo+Pj4gK3JwbV9kaXNhYmxlOgo+Pj4gK8KgwqDCoCBwbV9ydW50aW1lX3B1dCgmcGRldi0+ZGV2 KTsKPj4+ICvCoMKgwqAgcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOwo+Pj4gKwo+Pj4g wqDCoMKgwqDCoCBob3N0MXhfY2hhbm5lbF9saXN0X2ZyZWUoJmhvc3QtPmNoYW5uZWxfbGlzdCk7 Cj4+PiDCoCBpb21tdV9leGl0Ogo+Pj4gwqDCoMKgwqDCoCBob3N0MXhfaW9tbXVfZXhpdChob3N0 KTsKPj4+IEBAIC01MDQsMTYgKzUwNSw5NSBAQCBzdGF0aWMgaW50IGhvc3QxeF9yZW1vdmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZQo+Pj4gKnBkZXYpCj4+PiDCoMKgwqDCoMKgIGhvc3QxeF9pbnRy X2RlaW5pdChob3N0KTsKPj4+IMKgwqDCoMKgwqAgaG9zdDF4X3N5bmNwdF9kZWluaXQoaG9zdCk7 Cj4+PiDCoMKgwqDCoMKgIHJlc2V0X2NvbnRyb2xfYXNzZXJ0KGhvc3QtPnJzdCk7Cj4+PiAtwqDC oMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0LT5jbGspOwo+Pj4gK8KgwqDCoCBwbV9ydW50 aW1lX3B1dCgmcGRldi0+ZGV2KTsKPj4+ICvCoMKgwqAgcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2 LT5kZXYpOwo+Pj4gwqDCoMKgwqDCoCBob3N0MXhfaW9tbXVfZXhpdChob3N0KTsKPj4+IMKgIMKg wqDCoMKgwqAgcmV0dXJuIDA7Cj4+PiDCoCB9Cj4+PiDCoCArc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBob3N0MXhfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPj4+ICt7Cj4+ PiArwqDCoMKgIHN0cnVjdCBob3N0MXggKmhvc3QgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPj4+ ICsKPj4+ICvCoMKgwqAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGhvc3QtPmNsayk7Cj4+PiArwqDC oMKgIHJlc2V0X2NvbnRyb2xfcmVsZWFzZShob3N0LT5yc3QpOwo+Pj4gKwo+Pj4gK8KgwqDCoCBy ZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBob3N0 MXhfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+Pj4gK3sKPj4+ICvCoMKgwqAg c3RydWN0IGhvc3QxeCAqaG9zdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+Pj4gK8KgwqDCoCBp bnQgZXJyOwo+Pj4gKwo+Pj4gK8KgwqDCoCBlcnIgPSByZXNldF9jb250cm9sX2FjcXVpcmUoaG9z dC0+cnN0KTsKPj4+ICvCoMKgwqAgaWYgKGVycikgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRldl9l cnIoZGV2LCAiZmFpbGVkIHRvIGFjcXVpcmUgcmVzZXQ6ICVkXG4iLCBlcnIpOwo+Pj4gK8KgwqDC oMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICvCoMKgwqAgZXJy ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhvc3QtPmNsayk7Cj4+PiArwqDCoMKgIGlmIChlcnIpIHsK Pj4+ICvCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGRldiwgImZhaWxlZCB0byBlbmFibGUgY2xvY2s6 ICVkXG4iLCBlcnIpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gcmVsZWFzZV9yZXNldDsKPj4+ ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDCoCByZXR1cm4gMDsKPj4+ICsKPj4+ICtyZWxlYXNl X3Jlc2V0Ogo+Pj4gK8KgwqDCoCByZXNldF9jb250cm9sX3JlbGVhc2UoaG9zdC0+cnN0KTsKPj4+ ICsKPj4+ICvCoMKgwqAgcmV0dXJuIGVycjsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIF9fbWF5 YmVfdW51c2VkIGludCBob3N0MXhfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+PiArewo+ Pj4gK8KgwqDCoCBzdHJ1Y3QgaG9zdDF4ICpob3N0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ PiArwqDCoMKgIGludCBlcnI7Cj4+PiArCj4+PiArwqDCoMKgIGhvc3QxeF9zeW5jcHRfc2F2ZSho b3N0KTsKPj4+ICsKPj4+ICvCoMKgwqAgZXJyID0gcG1fcnVudGltZV9mb3JjZV9zdXNwZW5kKGRl dik7Cj4+PiArwqDCoMKgIGlmIChlcnIgPCAwKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBl cnI7Cj4+PiArCj4+PiArwqDCoMKgIHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMg X19tYXliZV91bnVzZWQgaW50IGhvc3QxeF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+Pj4g K3sKPj4+ICvCoMKgwqAgc3RydWN0IGhvc3QxeCAqaG9zdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+Pj4gK8KgwqDCoCBzdHJ1Y3QgaG9zdDF4X2NoYW5uZWwgKmNoYW5uZWw7Cj4+PiArwqDCoMKg IHVuc2lnbmVkIGludCBpbmRleDsKPj4+ICvCoMKgwqAgaW50IGVycjsKPj4+ICsKPj4+ICvCoMKg wqAgZXJyID0gcG1fcnVudGltZV9mb3JjZV9yZXN1bWUoZGV2KTsKPj4+ICvCoMKgwqAgaWYgKGVy ciA8IDApCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGVycjsKPj4+ICsKPj4+ICvCoMKgwqAg aG9zdDF4X3N5bmNwdF9yZXN0b3JlKGhvc3QpOwo+Pgo+PiBXZSBhbHNvIG5lZWQgdG8gZXhlY3V0 ZSAnaG9zdDF4X3NldHVwX3NpZF90YWJsZScgdXBvbiByZXN1bWUuCj4gCj4gSW5kZWVkLCB0aGFu a3MuIEknbGwgY29ycmVjdCBpdCBpbiB0aGUgbmV4dCByZXZpc2lvbi4KPiAKPiBQZXJoYXBzIHRo ZSBhY3R1YWwgc2F2ZS9yZXN0b3JlIG5lZWRzIHRvIGJlIG1vdmVkIHRvIHRoZSBydW50aW1lCj4g Y2FsbGJhY2tzLiBBdCBsZWFzdCBJIGNhbid0IHJlbWVtYmVyIHJpZ2h0IG5vdyB3aHkgdGhpcyB3 YXNuJ3QgZG9uZSBpbgo+IHRoZSBmaXJzdCBwbGFjZS4KPiAKCkkgbG9va2VkIGF0IHRoZSBzYXZl L3Jlc3RvcmUgb25jZSBhZ2FpbiBhbmQgcmVjYWxsZWQgd2h5IGl0J3MgZG9uZSBzby4KVGhlIHJl YXNvbiBpcyB0aGF0IHRoZSBob3N0MXggdG91Y2hlcyBoYXJkd2FyZSBkdXJpbmcgdGhlIGRyaXZl ciBwcm9iZSwKYW5kIHRodXMsIFJQTSBuZWVkcyB0byBiZSByZXN1bWVkIGZpcnN0LiBJdCB3aWxs IGJlIGEgYmlnZ2VyIGNoYW5nZSB0bwpwcm9wZXJseSBkZWNvdXBsZSB0aGUgaGFyZHdhcmUgaW5p dGlhbGl6YXRpb24gc28gdGhhdCBpdCBhbGwgY291bGQgYmUKcHV0IGl0IGludG8gdGhlIFJQTSBj YWxsYmFjay4gSSdsbCB0cnkgdG8gZG8gaXQgaW4gdjMuCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdApkZXZlbEBsaW51eGRy aXZlcnByb2plY3Qub3JnCmh0dHA6Ly9kcml2ZXJkZXYubGludXhkcml2ZXJwcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaXZlcmRldi1kZXZlbAo= 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=-12.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 5A566C4361B for ; Fri, 18 Dec 2020 08:33:58 +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 1C2D923B03 for ; Fri, 18 Dec 2020 08:33:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1C2D923B03 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 046A289CF9; Fri, 18 Dec 2020 08:32:23 +0000 (UTC) Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7853F8991A for ; Thu, 17 Dec 2020 20:58:31 +0000 (UTC) Received: by mail-lf1-x135.google.com with SMTP id x20so41668909lfe.12 for ; Thu, 17 Dec 2020 12:58:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=2zaYEPU3Dc5zFOFGXsYjz12iYiWYHN8N3O6lakukl/s=; b=qgHdy+aVZrcGxyULYw4C/dnhEhXcHqnIi3WOZ6PUyWeJ1T2KuwB4MyFcAMVcIxtEkN P0wC9L1L3/OzQP2N4oOFkRUNhuvP6BbgtM9veJ1+/75E6Miy7hj7Bf2nEtboXPbzthOR kxxro9rjbhD5efC41F1HFL2RxEsBF22ZTFXdF10FlYyRqWRrEuRkkxNHvNJAyiBiyHb5 xCx3hJCcAYykCnF/aKI0AxMDTkj4x39+lQJUW1SrSIqcsl3UFk3eY07U8IrPb8AhV1uo MAvO3Efc7ekB1pIAMLvXK67v6Yhq5T7IZPOk04vo8zGuFhsht5N49PaRJoPc7WLTbass MfYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=2zaYEPU3Dc5zFOFGXsYjz12iYiWYHN8N3O6lakukl/s=; b=eG4TqPVEjWU5PhJBRv0tp+fzwReKR44Kn2+Q4zojj96soAt4g3xFYOxPIiWiwn6A1L vNwR6lqT6GjbghF4EMnxJyqbs5UscaqxfJN2W1MWOUkltvf56FKqWD5YkwqpaQH22Qzt UiI8JzauPPdHsJSStl0QRSDjGC/uE0tluI6m7X36iCrX01PX7eeMIjskPPAuT36m8lrz za9b7n/gxcR5mYIfUIpUQBy9+eIkLYZdgtNGnKJQ1jcbWODuF7CA+rHGl9gm01QxzSTw nq9gZnOZaJxdGMV4yqVxeLU6SE2YqhtkfrjTw4hx2Y0Ox65J3a7LsIntUZN7pdznpp2n N/pg== X-Gm-Message-State: AOAM5327s1IIuf1yJB3AU20DW2NllP5+0sIc+4h8Bor2dJ965JUn18jJ 6wVxtda7/9hcyhsAO3tpsnE= X-Google-Smtp-Source: ABdhPJybT54BUMIzcynXITACTqPF/IcLrcExqUZ6d4e77IqO+C219fiwEYcS2lWHXSvWZh2/2hrkeQ== X-Received: by 2002:a05:6512:3089:: with SMTP id z9mr233591lfd.433.1608238709941; Thu, 17 Dec 2020 12:58:29 -0800 (PST) Received: from [192.168.2.145] (109-252-192-57.dynamic.spd-mgts.ru. [109.252.192.57]) by smtp.googlemail.com with ESMTPSA id z26sm789139ljn.98.2020.12.17.12.58.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Dec 2020 12:58:29 -0800 (PST) Subject: Re: [PATCH v2 34/48] gpu: host1x: Support power management From: Dmitry Osipenko To: Mikko Perttunen , Thierry Reding , Jonathan Hunter , Mark Brown , Liam Girdwood , Ulf Hansson , Mauro Carvalho Chehab , Rob Herring , Peter Geis , Nicolas Chauvet , Krzysztof Kozlowski , "Rafael J. Wysocki" , Kevin Hilman , Peter De Schrijver , Viresh Kumar , Stephen Boyd , Michael Turquette References: <20201217180638.22748-1-digetx@gmail.com> <20201217180638.22748-35-digetx@gmail.com> Message-ID: <5523b804-f5de-a529-fd4e-751c39ab663b@gmail.com> Date: Thu, 17 Dec 2020 23:58:28 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.2 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Mailman-Approved-At: Fri, 18 Dec 2020 08:31:48 +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: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-clk@vger.kernel.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" MTcuMTIuMjAyMCAyMTo0NSwgRG1pdHJ5IE9zaXBlbmtvINC/0LjRiNC10YI6Cj4gMTcuMTIuMjAy MCAyMToyMSwgTWlra28gUGVydHR1bmVuINC/0LjRiNC10YI6Cj4+IE9uIDEyLzE3LzIwIDg6MDYg UE0sIERtaXRyeSBPc2lwZW5rbyB3cm90ZToKPj4+IEFkZCBzdXNwZW5kL3Jlc3VtZSBhbmQgZ2Vu ZXJpYyBwb3dlciBkb21haW4gc3VwcG9ydCB0byB0aGUgSG9zdDF4IGRyaXZlci4KPj4+IFRoaXMg aXMgcmVxdWlyZWQgZm9yIGVuYWJsaW5nIHN5c3RlbS13aWRlIERWRlMgYW5kIHN1cHBvcnRpbmcg ZHluYW1pYwo+Pj4gcG93ZXIgbWFuYWdlbWVudCB1c2luZyBhIGdlbmVyaWMgcG93ZXIgZG9tYWlu Lgo+Pj4KPj4+IFRlc3RlZC1ieTogUGV0ZXIgR2VpcyA8cGd3aXBlb3V0QGdtYWlsLmNvbT4KPj4+ IFRlc3RlZC1ieTogTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0QGdtYWlsLmNvbT4KPj4+IFNpZ25l ZC1vZmYtYnk6IERtaXRyeSBPc2lwZW5rbyA8ZGlnZXR4QGdtYWlsLmNvbT4KPj4+IC0tLQo+Pj4g wqAgZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQo+Pj4gwqAgMSBmaWxlIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9ob3N0MXgv ZGV2LmMgYi9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2LmMKPj4+IGluZGV4IGQwZWJiNzBlMmZkZC4u YzE1MjVjZmZlN2IxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvaG9zdDF4L2Rldi5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9ob3N0MXgvZGV2LmMKPj4+IEBAIC0xMiw2ICsxMiw3IEBACj4+ PiDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+PiDCoCAjaW5jbHVkZSA8bGludXgvb2Zf ZGV2aWNlLmg+Cj4+PiDCoCAjaW5jbHVkZSA8bGludXgvb2YuaD4KPj4+ICsjaW5jbHVkZSA8bGlu dXgvcG1fcnVudGltZS5oPgo+Pj4gwqAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPj4+IMKgIMKg ICNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUwo+Pj4gQEAgLTQxNyw3ICs0MTgsNyBAQCBzdGF0 aWMgaW50IGhvc3QxeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+PiDCoMKgwqDCoMKgIH0KPj4+IMKgIC3CoMKg wqAgaG9zdC0+cnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldCgmcGRldi0+ZGV2LCAiaG9zdDF4 Iik7Cj4+PiArwqDCoMKgIGhvc3QtPnJzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfZXhjbHVz aXZlX3JlbGVhc2VkKCZwZGV2LT5kZXYsCj4+PiAiaG9zdDF4Iik7Cj4+PiDCoMKgwqDCoMKgIGlm IChJU19FUlIoaG9zdC0+cnN0KSkgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGVyciA9IFBUUl9F UlIoaG9zdC0+cnN0KTsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKCZwZGV2LT5kZXYs ICJmYWlsZWQgdG8gZ2V0IHJlc2V0OiAlZFxuIiwgZXJyKTsKPj4+IEBAIC00MzcsMTYgKzQzOCwx NSBAQCBzdGF0aWMgaW50IGhvc3QxeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlCj4+PiAq cGRldikKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGlvbW11X2V4aXQ7Cj4+PiDCoMKgwqDC oMKgIH0KPj4+IMKgIC3CoMKgwqAgZXJyID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhvc3QtPmNsayk7 Cj4+PiAtwqDCoMKgIGlmIChlcnIgPCAwKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqAgZGV2X2Vycigm cGRldi0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBjbG9ja1xuIik7Cj4+PiAtwqDCoMKgwqDCoMKg wqAgZ290byBmcmVlX2NoYW5uZWxzOwo+Pj4gLcKgwqDCoCB9Cj4+PiArwqDCoMKgIHBtX3J1bnRp bWVfZW5hYmxlKCZwZGV2LT5kZXYpOwo+Pj4gK8KgwqDCoCBlcnIgPSBwbV9ydW50aW1lX2dldF9z eW5jKCZwZGV2LT5kZXYpOwo+Pj4gK8KgwqDCoCBpZiAoZXJyIDwgMCkKPj4+ICvCoMKgwqDCoMKg wqDCoCBnb3RvIHJwbV9kaXNhYmxlOwo+Pj4gwqAgwqDCoMKgwqDCoCBlcnIgPSByZXNldF9jb250 cm9sX2RlYXNzZXJ0KGhvc3QtPnJzdCk7Cj4+PiDCoMKgwqDCoMKgIGlmIChlcnIgPCAwKSB7Cj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGRlYXNz ZXJ0IHJlc2V0OiAlZFxuIiwgZXJyKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBnb3RvIHVucHJlcGFy ZV9kaXNhYmxlOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gcnBtX2Rpc2FibGU7Cj4+PiDCoMKg wqDCoMKgIH0KPj4+IMKgIMKgwqDCoMKgwqAgZXJyID0gaG9zdDF4X3N5bmNwdF9pbml0KGhvc3Qp Owo+Pj4gQEAgLTQ4NSw5ICs0ODUsMTAgQEAgc3RhdGljIGludCBob3N0MXhfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZQo+Pj4gKnBkZXYpCj4+PiDCoMKgwqDCoMKgIGhvc3QxeF9zeW5jcHRf ZGVpbml0KGhvc3QpOwo+Pj4gwqAgcmVzZXRfYXNzZXJ0Ogo+Pj4gwqDCoMKgwqDCoCByZXNldF9j b250cm9sX2Fzc2VydChob3N0LT5yc3QpOwo+Pj4gLXVucHJlcGFyZV9kaXNhYmxlOgo+Pj4gLcKg wqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUoaG9zdC0+Y2xrKTsKPj4+IC1mcmVlX2NoYW5uZWxz Ogo+Pj4gK3JwbV9kaXNhYmxlOgo+Pj4gK8KgwqDCoCBwbV9ydW50aW1lX3B1dCgmcGRldi0+ZGV2 KTsKPj4+ICvCoMKgwqAgcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOwo+Pj4gKwo+Pj4g wqDCoMKgwqDCoCBob3N0MXhfY2hhbm5lbF9saXN0X2ZyZWUoJmhvc3QtPmNoYW5uZWxfbGlzdCk7 Cj4+PiDCoCBpb21tdV9leGl0Ogo+Pj4gwqDCoMKgwqDCoCBob3N0MXhfaW9tbXVfZXhpdChob3N0 KTsKPj4+IEBAIC01MDQsMTYgKzUwNSw5NSBAQCBzdGF0aWMgaW50IGhvc3QxeF9yZW1vdmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZQo+Pj4gKnBkZXYpCj4+PiDCoMKgwqDCoMKgIGhvc3QxeF9pbnRy X2RlaW5pdChob3N0KTsKPj4+IMKgwqDCoMKgwqAgaG9zdDF4X3N5bmNwdF9kZWluaXQoaG9zdCk7 Cj4+PiDCoMKgwqDCoMKgIHJlc2V0X2NvbnRyb2xfYXNzZXJ0KGhvc3QtPnJzdCk7Cj4+PiAtwqDC oMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0LT5jbGspOwo+Pj4gK8KgwqDCoCBwbV9ydW50 aW1lX3B1dCgmcGRldi0+ZGV2KTsKPj4+ICvCoMKgwqAgcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2 LT5kZXYpOwo+Pj4gwqDCoMKgwqDCoCBob3N0MXhfaW9tbXVfZXhpdChob3N0KTsKPj4+IMKgIMKg wqDCoMKgwqAgcmV0dXJuIDA7Cj4+PiDCoCB9Cj4+PiDCoCArc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBob3N0MXhfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPj4+ICt7Cj4+ PiArwqDCoMKgIHN0cnVjdCBob3N0MXggKmhvc3QgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPj4+ ICsKPj4+ICvCoMKgwqAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGhvc3QtPmNsayk7Cj4+PiArwqDC oMKgIHJlc2V0X2NvbnRyb2xfcmVsZWFzZShob3N0LT5yc3QpOwo+Pj4gKwo+Pj4gK8KgwqDCoCBy ZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBob3N0 MXhfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+Pj4gK3sKPj4+ICvCoMKgwqAg c3RydWN0IGhvc3QxeCAqaG9zdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+Pj4gK8KgwqDCoCBp bnQgZXJyOwo+Pj4gKwo+Pj4gK8KgwqDCoCBlcnIgPSByZXNldF9jb250cm9sX2FjcXVpcmUoaG9z dC0+cnN0KTsKPj4+ICvCoMKgwqAgaWYgKGVycikgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRldl9l cnIoZGV2LCAiZmFpbGVkIHRvIGFjcXVpcmUgcmVzZXQ6ICVkXG4iLCBlcnIpOwo+Pj4gK8KgwqDC oMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICvCoMKgwqAgZXJy ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhvc3QtPmNsayk7Cj4+PiArwqDCoMKgIGlmIChlcnIpIHsK Pj4+ICvCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGRldiwgImZhaWxlZCB0byBlbmFibGUgY2xvY2s6 ICVkXG4iLCBlcnIpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gcmVsZWFzZV9yZXNldDsKPj4+ ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDCoCByZXR1cm4gMDsKPj4+ICsKPj4+ICtyZWxlYXNl X3Jlc2V0Ogo+Pj4gK8KgwqDCoCByZXNldF9jb250cm9sX3JlbGVhc2UoaG9zdC0+cnN0KTsKPj4+ ICsKPj4+ICvCoMKgwqAgcmV0dXJuIGVycjsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIF9fbWF5 YmVfdW51c2VkIGludCBob3N0MXhfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+PiArewo+ Pj4gK8KgwqDCoCBzdHJ1Y3QgaG9zdDF4ICpob3N0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ PiArwqDCoMKgIGludCBlcnI7Cj4+PiArCj4+PiArwqDCoMKgIGhvc3QxeF9zeW5jcHRfc2F2ZSho b3N0KTsKPj4+ICsKPj4+ICvCoMKgwqAgZXJyID0gcG1fcnVudGltZV9mb3JjZV9zdXNwZW5kKGRl dik7Cj4+PiArwqDCoMKgIGlmIChlcnIgPCAwKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBl cnI7Cj4+PiArCj4+PiArwqDCoMKgIHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMg X19tYXliZV91bnVzZWQgaW50IGhvc3QxeF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+Pj4g K3sKPj4+ICvCoMKgwqAgc3RydWN0IGhvc3QxeCAqaG9zdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+Pj4gK8KgwqDCoCBzdHJ1Y3QgaG9zdDF4X2NoYW5uZWwgKmNoYW5uZWw7Cj4+PiArwqDCoMKg IHVuc2lnbmVkIGludCBpbmRleDsKPj4+ICvCoMKgwqAgaW50IGVycjsKPj4+ICsKPj4+ICvCoMKg wqAgZXJyID0gcG1fcnVudGltZV9mb3JjZV9yZXN1bWUoZGV2KTsKPj4+ICvCoMKgwqAgaWYgKGVy ciA8IDApCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGVycjsKPj4+ICsKPj4+ICvCoMKgwqAg aG9zdDF4X3N5bmNwdF9yZXN0b3JlKGhvc3QpOwo+Pgo+PiBXZSBhbHNvIG5lZWQgdG8gZXhlY3V0 ZSAnaG9zdDF4X3NldHVwX3NpZF90YWJsZScgdXBvbiByZXN1bWUuCj4gCj4gSW5kZWVkLCB0aGFu a3MuIEknbGwgY29ycmVjdCBpdCBpbiB0aGUgbmV4dCByZXZpc2lvbi4KPiAKPiBQZXJoYXBzIHRo ZSBhY3R1YWwgc2F2ZS9yZXN0b3JlIG5lZWRzIHRvIGJlIG1vdmVkIHRvIHRoZSBydW50aW1lCj4g Y2FsbGJhY2tzLiBBdCBsZWFzdCBJIGNhbid0IHJlbWVtYmVyIHJpZ2h0IG5vdyB3aHkgdGhpcyB3 YXNuJ3QgZG9uZSBpbgo+IHRoZSBmaXJzdCBwbGFjZS4KPiAKCkkgbG9va2VkIGF0IHRoZSBzYXZl L3Jlc3RvcmUgb25jZSBhZ2FpbiBhbmQgcmVjYWxsZWQgd2h5IGl0J3MgZG9uZSBzby4KVGhlIHJl YXNvbiBpcyB0aGF0IHRoZSBob3N0MXggdG91Y2hlcyBoYXJkd2FyZSBkdXJpbmcgdGhlIGRyaXZl ciBwcm9iZSwKYW5kIHRodXMsIFJQTSBuZWVkcyB0byBiZSByZXN1bWVkIGZpcnN0LiBJdCB3aWxs IGJlIGEgYmlnZ2VyIGNoYW5nZSB0bwpwcm9wZXJseSBkZWNvdXBsZSB0aGUgaGFyZHdhcmUgaW5p dGlhbGl6YXRpb24gc28gdGhhdCBpdCBhbGwgY291bGQgYmUKcHV0IGl0IGludG8gdGhlIFJQTSBj YWxsYmFjay4gSSdsbCB0cnkgdG8gZG8gaXQgaW4gdjMuCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=