From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 CA11BC432BE for ; Fri, 27 Aug 2021 03:56:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9CED160F42 for ; Fri, 27 Aug 2021 03:56:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232461AbhH0D5k (ORCPT ); Thu, 26 Aug 2021 23:57:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232207AbhH0D5j (ORCPT ); Thu, 26 Aug 2021 23:57:39 -0400 Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 334B0C061757; Thu, 26 Aug 2021 20:56:51 -0700 (PDT) Received: by mail-lf1-x130.google.com with SMTP id m28so11528278lfj.6; Thu, 26 Aug 2021 20:56:51 -0700 (PDT) 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=4QxALuin9m8ppNyC3CMHVOVABk0j8/ChSzc0eVDXKkE=; b=qhbaZz0pOlpvhrx8zOIWXWjl5cUvGIbqwjUMHRRI1XzEX4847o+tt8RdnkUq/r44XZ o6DGulapCwGTv/47/cxgAH/py/6g5GCAwboJ3JeLHPFyQ/R2YCNpfI42Gg2KgsCGaFJr f6C5eS3lt450dKOPsuAzr9KchmajlVUdD6w6K4xfmHkboOEv+z62bPSDQrA2FmqI5y33 AtonDRf5vNpxFFz9WySMe6xtNm2pZjC9M8HUwOuvg8ppBYyY2Kc57+N9osNmM/VmxaDh JI2UZ5HXdz9TBVSmRL/VB35wAsxku/0LefYHLaKP7LQ0R/D6ZIMM3RKGlsuflKjNLJVC XMew== 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=4QxALuin9m8ppNyC3CMHVOVABk0j8/ChSzc0eVDXKkE=; b=FPZv23JAImC2T8AiWo9xDhFY5e4apPfEVKUWp/ElktQ23KiU7xGG7nmBGviXDlmjJS 7u47xLcKQQ0ZaYx3qVvySKDgdTHHp/5gjWTilw69CjPNGJdCHq0v7c7mdrMknHfq31d2 vMPrDLqmjwha9eY2Q2OHKOsLXc2lEOCyLnVkUncXF8WsESph+cIvhZ/sS4Ik0vZ4EJhO XjXu12zKm5PTGU9x3thhYA/O4a5z22PespODRo2b3lTRldUu2M0jUlHxuMt146slcm7P uEGjchqDHWIpNZ9VHggMzQHZokghUXGd8cAnF6E04kZgj+vVryLAiVt76VQvlY7ltJbW CaIg== X-Gm-Message-State: AOAM530CLNh8TJooMgAWQF2K7ZQBfrjcOp/zkJ9PslfK2kK69CBE6ndC sPIC9gFrvWSJyolBlZl0c2jv9VT3ZaA= X-Google-Smtp-Source: ABdhPJyN0iu0lvrgrnLGNJNFOnzKrY/pZm1o2Hg3A2W3O70e7c2DDFP7SZROFbY90HGUv1rUR/uIAw== X-Received: by 2002:a05:6512:3a96:: with SMTP id q22mr5061526lfu.660.1630036609467; Thu, 26 Aug 2021 20:56:49 -0700 (PDT) Received: from [192.168.2.145] (94-29-17-251.dynamic.spd-mgts.ru. [94.29.17.251]) by smtp.googlemail.com with ESMTPSA id k15sm593540lja.72.2021.08.26.20.56.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Aug 2021 20:56:49 -0700 (PDT) Subject: Re: [PATCH v9 5/8] soc/tegra: pmc: Implement get_performance_state() callback From: Dmitry Osipenko To: Viresh Kumar Cc: Thierry Reding , Jonathan Hunter , Ulf Hansson , "Rafael J. Wysocki" , Kevin Hilman , Viresh Kumar , Stephen Boyd , Nishanth Menon , linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-pm@vger.kernel.org References: <20210827013415.24027-1-digetx@gmail.com> <20210827013415.24027-6-digetx@gmail.com> <20210827030557.aymjkky7athjxpow@vireshk-i7> <9c2287ca-4c51-d782-a0a5-4b1227c2e9db@gmail.com> <7aca6da3-89a7-a4a6-c720-8be4a105a696@gmail.com> Message-ID: Date: Fri, 27 Aug 2021 06:56:48 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <7aca6da3-89a7-a4a6-c720-8be4a105a696@gmail.com> 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 27.08.2021 06:47, Dmitry Osipenko пишет: > 27.08.2021 06:28, Dmitry Osipenko пишет: >> 27.08.2021 06:05, Viresh Kumar пишет: >>> On 27-08-21, 04:34, Dmitry Osipenko wrote: >>>> + clk_opp_table = dev_pm_opp_set_clkname(dev, NULL); >>>> + if (IS_ERR(clk_opp_table)) { >>>> + dev_err(dev, "failed to set OPP clk: %pe\n", clk_opp_table); >>>> + ret = PTR_ERR(clk_opp_table); >>>> + goto put_hw; >>>> + } >>> >>> Why do you need to do it ? OPP core already does this automatically. >> >> Indeed, thanks. >> > > Actually, it doesn't work. > > The devm_tegra_core_dev_init_opp_table() needs to set clk to support older device-tree and now OPP table already has clk being set. > > WARNING: CPU: 2 PID: 92 at drivers/opp/core.c:2146 dev_pm_opp_set_clkname+0x97/0xb8 > Modules linked in: > CPU: 2 PID: 92 Comm: kworker/u8:1 Tainted: G W 5.14.0-rc7-next-20210826-00181-g6389463cbb0a #9318 > Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) > Workqueue: events_unbound deferred_probe_work_func > [] (unwind_backtrace) from [] (show_stack+0x11/0x14) > [] (show_stack) from [] (dump_stack_lvl+0x2b/0x34) > [] (dump_stack_lvl) from [] (__warn+0xbb/0x100) > [] (__warn) from [] (warn_slowpath_fmt+0x4b/0x80) > [] (warn_slowpath_fmt) from [] (dev_pm_opp_set_clkname+0x97/0xb8) > [] (dev_pm_opp_set_clkname) from [] (devm_pm_opp_set_clkname+0xf/0x64) > [] (devm_pm_opp_set_clkname) from [] (devm_tegra_core_dev_init_opp_table+0x23/0x144) > [] (devm_tegra_core_dev_init_opp_table) from [] (gr3d_probe+0x111/0x348) > [] (gr3d_probe) from [] (platform_probe+0x43/0x84) > [] (platform_probe) from [] (really_probe.part.0+0x69/0x200) > [] (really_probe.part.0) from [] (__driver_probe_device+0x73/0xd4) > [] (__driver_probe_device) from [] (driver_probe_device+0x35/0xd0) > [] (driver_probe_device) from [] (__device_attach_driver+0x75/0x98) > [] (__device_attach_driver) from [] (bus_for_each_drv+0x51/0x7c) > [] (bus_for_each_drv) from [] (__device_attach+0x8b/0x104) > [] (__device_attach) from [] (bus_probe_device+0x5b/0x60) > [] (bus_probe_device) from [] (device_add+0x293/0x65c) > [] (device_add) from [] (of_platform_device_create_pdata+0x63/0x88) > [] (of_platform_device_create_pdata) from [] (of_platform_bus_create+0xfd/0x26c) > [] (of_platform_bus_create) from [] (of_platform_populate+0x45/0x84) > [] (of_platform_populate) from [] (devm_of_platform_populate+0x41/0x6c) > [] (devm_of_platform_populate) from [] (host1x_probe+0x1e9/0x2c8) > [] (host1x_probe) from [] (platform_probe+0x43/0x84) > [] (platform_probe) from [] (really_probe.part.0+0x69/0x200) > [] (really_probe.part.0) from [] (__driver_probe_device+0x73/0xd4) > [] (__driver_probe_device) from [] (driver_probe_device+0x35/0xd0) > [] (driver_probe_device) from [] (__device_attach_driver+0x75/0x98) > [] (__device_attach_driver) from [] (bus_for_each_drv+0x51/0x7c) > [] (bus_for_each_drv) from [] (__device_attach+0x8b/0x104) > [] (__device_attach) from [] (bus_probe_device+0x5b/0x60) > [] (bus_probe_device) from [] (deferred_probe_work_func+0x57/0x78) > [] (deferred_probe_work_func) from [] (process_one_work+0x147/0x3f8) > [] (process_one_work) from [] (worker_thread+0x21d/0x3f4) > [] (worker_thread) from [] (kthread+0x123/0x140) > [] (kthread) from [] (ret_from_fork+0x11/0x1c) > ---[ end trace f68728a0d3053b54 ]--- > tegra-gr3d 54180000.gr3d: tegra-soc: failed to set OPP clk: -16 > That's because devm_pm_opp_attach_genpd() holds the reference to OPP table on Tegra30 which uses multiple power domains. See gr3d_init_power() of the GR3D patch. It works in case of a single-domain hardware.