From patchwork Fri Jul 21 09:40:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 123777 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp115005vqg; Fri, 21 Jul 2023 03:47:44 -0700 (PDT) X-Google-Smtp-Source: APBJJlHd1gWnNx+hDQjcaNmSGBgWnDhHKcE4XXiTXR475SoDw70tBA1eK3sHcoPiIDsLxO9hDZDi X-Received: by 2002:a05:6808:10a:b0:3a1:d629:d1dd with SMTP id b10-20020a056808010a00b003a1d629d1ddmr1576649oie.56.1689936464702; Fri, 21 Jul 2023 03:47:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689936464; cv=none; d=google.com; s=arc-20160816; b=hbDEn9/KHDbkFs1nkZTGAEdIjRA9ZQOvToJbaWqHJsdgIhbzBy+2kArOSBuUZzG8Vp NYdt3A4QR/FNiFl5O+GzCFWIN1hE+aHFIq4IJpLBceHe392w5Z5Ixgmx4eHkHIQ25tSu QNsszd5zEdZLezTyHuQNQznbUDo6SCgf2a5mLKGE3IVY+fUIiYe2ABVFrC2qBjJy/Mjn FOsC6cGWcxE8qaT9lTJqk3PSxB+WpUtpSiqlTwzflp+Qoos01lcXiFskLxbEPVWG4Mkr oFZLLjHUNfKQ58XyA7LfKdJW+mgX01n60YZMRqb+dlOAKm7OEtNblXIZM4s57ZuS5DmH wVlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=C6yDwHR8CjSzLvtEor6MI6CE+UiAGOZc12BD4oiDuSo=; fh=TQKnco0ggU+zuPYQtU1mJz8+bM+vQUgmoNY/SIUMevI=; b=z83FmAv3VLoo0BbksrmuD1LZz2jba+BjWJBsbkBYwZdadeIIjtxJsgDZEbbdb0DkM+ i5ARRF7nCP8fPeTH0fqLdjgffI7SpZFzirjYnQ06zQouxXjaNA3U5tGlu6VPDZuU61oR vXAdxeLKEBYfXm1m4ArCmZfWIOQkKGul61pLJiVXN08k5KKw47+GU9EshzPBc4cNwsdp nWHcjOILAP04k0ez+rBlms9A/0N7BdkRMeY+SKBINN6pnS8LP8iXSavjmKGCROsC8wj6 8sICAqYcnVa9aLhCKQhCEK8EnHZk+5rsnlmBDiCrpTUM8+gq5ZdLRFy/miqN8Vv0LKQg fNrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PdKQDS+1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mh3-20020a17090b4ac300b0026350f0644asi3149011pjb.65.2023.07.21.03.47.31; Fri, 21 Jul 2023 03:47:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PdKQDS+1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230143AbjGUJlS (ORCPT + 99 others); Fri, 21 Jul 2023 05:41:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53292 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230029AbjGUJlO (ORCPT ); Fri, 21 Jul 2023 05:41:14 -0400 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CB282D46 for ; Fri, 21 Jul 2023 02:41:13 -0700 (PDT) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1b89d47ffb6so10390125ad.2 for ; Fri, 21 Jul 2023 02:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1689932473; x=1690537273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=C6yDwHR8CjSzLvtEor6MI6CE+UiAGOZc12BD4oiDuSo=; b=PdKQDS+1nlXydb+5R8TxjZ7RbKzetxDiuD7HuGUHno/JNfMOM1u+Wugb/3enYlBk0a /yJRnGtbDQsFLP5Vhtcis/4Q0J2RY5Jvk1NWjHcaBmvu/RgtuWqDmAu1uMk4YoeqtNxp iyUHSBJydok2kBv/ryvHmscoax+3oJELdtfRGtyX3zf9qdxnN5E8N6nWLvy4rpkmOT4o hRLSF8TeHyf1FdQgQvchDb/1d+iNwbwiMdFQtZE3BOcPI4Nm2W2XM1aV5U21xenx9YR4 6qLMKQhJBb1JrYhh5dsRcdbVTcrrrhYgSEkDq0I/7XhH7qQUISf3qrSnpBlXHl+RGbS/ /uMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689932473; x=1690537273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=C6yDwHR8CjSzLvtEor6MI6CE+UiAGOZc12BD4oiDuSo=; b=PjTiMFKsUe9iZLpOQMlMBnGJ5Qm1SpExTtDeDRkNHjoDuiSHT7chEIeh2+9UF25kBw f/AwS47xCfuwio/Zg95QrTeamN8jqhjOpfDZsp0NvaPvrz9YRppDUOLw21EtlQciUtuy 5xcaedHUFtOCJpEtuwJOIuvnYUhPcsdk5hceG24uOKzoxSvl1fh5mE5ncmilU4uacLsg 8z6X4W4w0pY2QDO7Ac3e/WlvADRkeTzt4H7h2L60phn7zIHFGbBUt4aN8lDIBasqC9cM YfUtk5HVryhhssdfw8B3xnJagh1sytsbamxz2hCgYodZz6Ts+LUp3bRktRsnlndbNndJ d47g== X-Gm-Message-State: ABy/qLYlfgPUwWy2EPjCAhhom2gT0TWspYVI5GcqEinxh+TMbyuYj2kU 44ZbhdZ8n2QUucAi9nk1RtBbLQ== X-Received: by 2002:a17:902:ce84:b0:1b6:ba60:77f0 with SMTP id f4-20020a170902ce8400b001b6ba6077f0mr1347225plg.10.1689932472961; Fri, 21 Jul 2023 02:41:12 -0700 (PDT) Received: from localhost ([122.172.87.195]) by smtp.gmail.com with ESMTPSA id c1-20020a170902d48100b001b895a17429sm2959770plg.280.2023.07.21.02.41.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 02:41:12 -0700 (PDT) From: Viresh Kumar To: Viresh Kumar , Nishanth Menon , Stephen Boyd , "Rafael J. Wysocki" Cc: Viresh Kumar , linux-pm@vger.kernel.org, Vincent Guittot , Manivannan Sadhasivam , linux-kernel@vger.kernel.org Subject: [PATCH 1/6] OPP: Rearrange entries in pm_opp.h Date: Fri, 21 Jul 2023 15:10:54 +0530 Message-Id: <754833b3194c30dad5af0145e25192a8e29521ab.1689932341.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772026818157531398 X-GMAIL-MSGID: 1772026818157531398 Rearrange the helper function declarations / definitions to keep them in order of freq, level and then bw. Signed-off-by: Viresh Kumar --- include/linux/pm_opp.h | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index dc1fb5890792..3821f50b9b89 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -121,17 +121,19 @@ unsigned long dev_pm_opp_get_suspend_opp_freq(struct device *dev); struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, unsigned long freq, bool available); + struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, unsigned long *freq); +struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, + unsigned long *freq); + struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev, unsigned int level); + struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev, unsigned int *level); -struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, - unsigned long *freq); - struct dev_pm_opp *dev_pm_opp_find_bw_ceil(struct device *dev, unsigned int *bw, int index); @@ -247,32 +249,32 @@ static inline unsigned long dev_pm_opp_get_suspend_opp_freq(struct device *dev) return 0; } -static inline struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev, - unsigned int level) +static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, + unsigned long freq, bool available) { return ERR_PTR(-EOPNOTSUPP); } -static inline struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev, - unsigned int *level) +static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, + unsigned long *freq) { return ERR_PTR(-EOPNOTSUPP); } -static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, - unsigned long freq, bool available) +static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, + unsigned long *freq) { return ERR_PTR(-EOPNOTSUPP); } -static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, - unsigned long *freq) +static inline struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev, + unsigned int level) { return ERR_PTR(-EOPNOTSUPP); } -static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, - unsigned long *freq) +static inline struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev, + unsigned int *level) { return ERR_PTR(-EOPNOTSUPP); } From patchwork Fri Jul 21 09:40:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 123707 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp89198vqg; Fri, 21 Jul 2023 02:52:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlGiCKN56bmCj5QjaSfISQvo00b2CSdH05RgHRc/4OAZkpTyTNkACVHTdu/tGPJt4R49BCmZ X-Received: by 2002:a17:907:2cf7:b0:993:f8b2:d6fa with SMTP id hz23-20020a1709072cf700b00993f8b2d6famr1083390ejc.21.1689933174718; Fri, 21 Jul 2023 02:52:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689933174; cv=none; d=google.com; s=arc-20160816; b=rXBcXTgF4nqwuFfTIHbipAbxJWy5J3cGzPwBzjB3kiH0FnXrXPWVPFOZzt0RlTzujp AQxCwccthlOQJUsWCL3Qp9GJyRFQ4er35t//XyoAvVcfanZXyIGkVgPiCtklIU6/bBrA c/X7t3dsB35/+fyfeI34tl6uF2NzCN3s5qWZzIx9OcORJMTap6QQp/Wx0FTQF0aGLQby 3mdqbl8bLeeGxwm56EjpKhtyQ7BMp0hNvIiALm6EAgUNalnzeiMCj1kGzUI1poVuD5xj 7HqvQF94Ng+XVzrXeg/co2XIiDThrkPv8RiBP6WW41r6S88WeJ6gvKzhkTHj6omTvRXu OqfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6VfRkQPrBQp5nkzs4j3nyKArLBvoZpDkodHX3J6rbBs=; fh=TQKnco0ggU+zuPYQtU1mJz8+bM+vQUgmoNY/SIUMevI=; b=PSiSCM5Lyz0OXmYWolSZcQYafpEKw1eA0N1wtX1J1kw8923keC9K99EVAK/KGHxmUY Qw4yhuvFpfHlcfKFUdVfhkpm/T1Aj/+1bQGWKAZB4b8HosQ0KVUSJo5pk1YbrvNv90BF qVTit0xzg909qsB/CfGyTKAFFjcLIH5rA1lbb1kAZ1VFxX1bZ6tgln9g4dUF6yGpQXC5 0bDGRoM6/wn90J3un4W8Yl9FequXj88utY9JdvXZQhTvHpwr4rzFKjiIGNMp4fuvoEj6 3XGDwCTme9mNqqwjFrPkF80XI/LtEQ/Q5N8gS5vLRA6PtZ4D67ARS4+dqYCZpINsSy0l 8plg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=iCXPQGvw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w11-20020a170906480b00b00992a9bc7432si2149893ejq.936.2023.07.21.02.52.28; Fri, 21 Jul 2023 02:52:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=iCXPQGvw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230210AbjGUJl0 (ORCPT + 99 others); Fri, 21 Jul 2023 05:41:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230120AbjGUJlS (ORCPT ); Fri, 21 Jul 2023 05:41:18 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E58C330C7 for ; Fri, 21 Jul 2023 02:41:16 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-68336d06620so1531172b3a.1 for ; Fri, 21 Jul 2023 02:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1689932476; x=1690537276; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6VfRkQPrBQp5nkzs4j3nyKArLBvoZpDkodHX3J6rbBs=; b=iCXPQGvwGph1wJcfy5vSSwH6shKYOGyynlju+9gl4A04h/yKW9uOhJRBt8NLnwxmo6 ED0QoVvs6hdXY5QsxX6AlkkaG3tj4o/XB0FBmWbBrdJ4GUM2T2TK9pSZlsKQMyYgSYz6 MppgzuZZ56SOT1Tr0Ti7X+g2ov8t+2tuNznc+FukPQ6mIK3U1fa987bB+yHh8svg4oRG LNSXvTbC2fYdX9P2hR8XRhia9Bo1em7EHAzTCySDUy1u922uOvaoLOAMBpkF0Hbs+Pci M9LFscK0/EDqwEY7zgmjhW9llglYBLEfJ8002K2wHzkSlgT/0mOG3qbc9JRMk4pjQSoQ pMWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689932476; x=1690537276; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6VfRkQPrBQp5nkzs4j3nyKArLBvoZpDkodHX3J6rbBs=; b=gQPHzvCXrJqZkj7l9Mh7M4uOuSF8pjCmZEKYLQijZTs30mEzK5cnqcTrTEo9xS0jQc aGvegN9QnJZZZBW2lCqI4CHUr+dw81tIo75obbhtcWx5Dky9V7npCJmDHd36c3m99s2R YG/gmtJ51v6fULcUaJx8wmPIUdaC4xP20zYzCnUxTRU/myYq1uuXJ4LgOb1gyBPZts3Z LrMYkwwOVx94K3zIS+67CsMh10v06ZgZkxXj44aaiJ931vaDU4r8ye8EO9tr7qwpR3Z4 Sj/lZPfrV4bx7brG+Qh2/3eRgePpycYi5NVr5e3+g4FYd2ScNr4Rw4pJm40vxyDW53M8 3jgw== X-Gm-Message-State: ABy/qLZtTUI3E79/lVx705E0cBtnGbrau3ylNfCTPZ9bFy1Fo/UxEhl4 9bqFPBtWBuQO5/qAmYetSizbfmwRl600Ag6Pnq4= X-Received: by 2002:a05:6a00:22c4:b0:686:2fde:4da with SMTP id f4-20020a056a0022c400b006862fde04damr1949197pfj.15.1689932476347; Fri, 21 Jul 2023 02:41:16 -0700 (PDT) Received: from localhost ([122.172.87.195]) by smtp.gmail.com with ESMTPSA id x9-20020a056a00270900b00654228f9e93sm2584934pfv.120.2023.07.21.02.41.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 02:41:15 -0700 (PDT) From: Viresh Kumar To: Viresh Kumar , Nishanth Menon , Stephen Boyd , "Rafael J. Wysocki" Cc: Viresh Kumar , linux-pm@vger.kernel.org, Vincent Guittot , Manivannan Sadhasivam , linux-kernel@vger.kernel.org Subject: [PATCH 2/6] OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs Date: Fri, 21 Jul 2023 15:10:55 +0530 Message-Id: <142e17c1c2b48e3fb4f024e62ab6dee18f268694.1689932341.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772023368649835220 X-GMAIL-MSGID: 1772023368649835220 From: Manivannan Sadhasivam In the case of devices with multiple clocks, drivers need to specify the clock index for the OPP framework to find the OPP corresponding to the floor/ceil of the supplied frequency. So let's introduce the two new APIs accepting the clock index as an argument. These APIs use the exising _find_key_ceil() helper by supplying the clock index to it. Signed-off-by: Manivannan Sadhasivam [ Viresh: Rearranged definitions in pm_opp.h ] Signed-off-by: Viresh Kumar --- drivers/opp/core.c | 56 ++++++++++++++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 18 ++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 3f46e499d615..cb4f47b341f9 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -658,6 +658,34 @@ struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, } EXPORT_SYMBOL_GPL(dev_pm_opp_find_freq_ceil); +/** + * dev_pm_opp_find_freq_ceil_indexed() - Search for a rounded ceil freq for the + * clock corresponding to the index + * @dev: Device for which we do this operation + * @freq: Start frequency + * @index: Clock index + * + * Search for the matching ceil *available* OPP for the clock corresponding to + * the specified index from a starting freq for a device. + * + * Return: matching *opp and refreshes *freq accordingly, else returns + * ERR_PTR in case of error and should be handled using IS_ERR. Error return + * values can be: + * EINVAL: for bad pointer + * ERANGE: no match found for search + * ENODEV: if device not found in list of registered devices + * + * The callers are required to call dev_pm_opp_put() for the returned OPP after + * use. + */ +struct dev_pm_opp * +dev_pm_opp_find_freq_ceil_indexed(struct device *dev, unsigned long *freq, + u32 index) +{ + return _find_key_ceil(dev, freq, index, true, _read_freq, NULL); +} +EXPORT_SYMBOL_GPL(dev_pm_opp_find_freq_ceil_indexed); + /** * dev_pm_opp_find_freq_floor() - Search for a rounded floor freq * @dev: device for which we do this operation @@ -683,6 +711,34 @@ struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, } EXPORT_SYMBOL_GPL(dev_pm_opp_find_freq_floor); +/** + * dev_pm_opp_find_freq_floor_indexed() - Search for a rounded floor freq for the + * clock corresponding to the index + * @dev: Device for which we do this operation + * @freq: Start frequency + * @index: Clock index + * + * Search for the matching floor *available* OPP for the clock corresponding to + * the specified index from a starting freq for a device. + * + * Return: matching *opp and refreshes *freq accordingly, else returns + * ERR_PTR in case of error and should be handled using IS_ERR. Error return + * values can be: + * EINVAL: for bad pointer + * ERANGE: no match found for search + * ENODEV: if device not found in list of registered devices + * + * The callers are required to call dev_pm_opp_put() for the returned OPP after + * use. + */ +struct dev_pm_opp * +dev_pm_opp_find_freq_floor_indexed(struct device *dev, unsigned long *freq, + u32 index) +{ + return _find_key_floor(dev, freq, index, true, _read_freq, NULL); +} +EXPORT_SYMBOL_GPL(dev_pm_opp_find_freq_floor_indexed); + /** * dev_pm_opp_find_level_exact() - search for an exact level * @dev: device for which we do this operation diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 3821f50b9b89..2617f2c51f29 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -125,9 +125,15 @@ struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, unsigned long *freq); +struct dev_pm_opp *dev_pm_opp_find_freq_floor_indexed(struct device *dev, + unsigned long *freq, u32 index); + struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, unsigned long *freq); +struct dev_pm_opp *dev_pm_opp_find_freq_ceil_indexed(struct device *dev, + unsigned long *freq, u32 index); + struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev, unsigned int level); @@ -261,12 +267,24 @@ static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, return ERR_PTR(-EOPNOTSUPP); } +static inline struct dev_pm_opp * +dev_pm_opp_find_freq_floor_indexed(struct device *dev, unsigned long *freq, u32 index) +{ + return ERR_PTR(-EOPNOTSUPP); +} + static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, unsigned long *freq) { return ERR_PTR(-EOPNOTSUPP); } +static inline struct dev_pm_opp * +dev_pm_opp_find_freq_ceil_indexed(struct device *dev, unsigned long *freq, u32 index) +{ + return ERR_PTR(-EOPNOTSUPP); +} + static inline struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev, unsigned int level) { From patchwork Fri Jul 21 09:40:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 123780 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp115496vqg; Fri, 21 Jul 2023 03:49:00 -0700 (PDT) X-Google-Smtp-Source: APBJJlFOKBKUqGg2Xl07BFj7hhU5u+9qOj+3HWiafxXHvGZhBGcGWZO9RNXSDHARzDhlT6E04Pn9 X-Received: by 2002:a17:902:70c3:b0:1bb:59da:77f8 with SMTP id l3-20020a17090270c300b001bb59da77f8mr1399016plt.48.1689936540322; Fri, 21 Jul 2023 03:49:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689936540; cv=none; d=google.com; s=arc-20160816; b=jsZp90KbriiBSVpyvRetNKyg9siG/ZrAi2xO1pQNDQSAewBpFiIszU7rtB8qeD97pL z23q7V/jiytdzZ6NBlh16h5TopYAzpYg+X2WWUFGvMYhyS987qN1DhWQITbcAhmfLqkH 2fQMi+39do53EnobIgxSj8535j1FJYGnUF6mNLmb7VDRJJMWNzFokN2aovKpyDxD5HZQ /LoMOKGV7j8n7h5U8nR2BECn/SXnIFUwrUqgunqCpjGBOG1kJtRvGF5JL9fEU78uQsvP RK/DhPu3gOB8cbI9JpB6gH/o57CWl7Ty9sdR4Sii9pTz1k1HLEx29EPHfggz7H+1LavS xXqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=JYBTSL0OfRqOhOs6Z05SkTlqzON3K7UIBYPi9xq4xxc=; fh=TQKnco0ggU+zuPYQtU1mJz8+bM+vQUgmoNY/SIUMevI=; b=ePmwAExzrFkN+cz5TjPsPF/JC7w/L+hu9OsMgFPJFOGt8p2GI+D3xHZyDMRwC5mpQn Dq55+9L7CzTqvgLsNFhxh21oFu3m8OId53aUYx8BUkC/JduwpptUh670fQTb3gYkMMEc b7p4HLHOr5/7SCsI19BaT+p0u9HSDt1LZTFFIHeOMNKOuJvx3XeAHa/QFlPVVswBag6M nkK0cyDkAPkClBKqPXltz3UuKy+wLar4oCx/AkaT8Lui/vHsiwVow2z2olkueTGISNMQ s1mlmBpq+dsOlr95JUdQe9Pgyz7JbIHKKha5tAR7FKdSOA0YkqSaEuufUyqTaNRFKJOE 0Wug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="h/+u+zIo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f14-20020a170902684e00b001b02e044c87si2716456pln.320.2023.07.21.03.48.46; Fri, 21 Jul 2023 03:49:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="h/+u+zIo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230398AbjGUJlc (ORCPT + 99 others); Fri, 21 Jul 2023 05:41:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230268AbjGUJlX (ORCPT ); Fri, 21 Jul 2023 05:41:23 -0400 Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4760D30D6 for ; Fri, 21 Jul 2023 02:41:20 -0700 (PDT) Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-666eec46206so1551162b3a.3 for ; Fri, 21 Jul 2023 02:41:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1689932480; x=1690537280; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JYBTSL0OfRqOhOs6Z05SkTlqzON3K7UIBYPi9xq4xxc=; b=h/+u+zIoZ/y1VnucGLle63jX7c+pQ7Xm0NSJwjLnLSldtrque1+JD9Y6a5Wt6PV+s8 nSh+rpgcEuhavmiPomFhpb0tgkZ9ria5aWjkvT4t/eGKlkkib3Se8yudwK9gO7HWsWso riB1rg8fd7Cn3A4auXB5333l3S1A/Wm/ucpZx74pgINzcnP4STs9BAOF0/Wx9lk5e+d/ +mOZ6lXDiummONPaFzjVBcA7Ne48ukqaWjjF9HPevN7LRV5KGvNLT9FWwCs5HFGjSxKr EPYzojBgnvifHYFzhsMhUsMRDXh5/j/snvR7jwU9b/RRxI6r0U2/XSIGuPL2z9v0xMEB OszQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689932480; x=1690537280; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JYBTSL0OfRqOhOs6Z05SkTlqzON3K7UIBYPi9xq4xxc=; b=KqoIlFE8o6reoeQi1/je7uZdN5Kg5XtSozCA0qcdkVVzNZyPypj0gSbOO0ZiZ5iBQ5 eGXg72PLek3p0ratYiHwnpbOKUtadtoJdKqBL6QOG890GM5E/00CZTUaW8/sggezV9D9 NH48/Vvav1rq7dhfuCztOoJYjUYii3lQVUyPr9uwH/y467tuh49wpyqAXUyhvwy7o/ia CIpJPl/OHilzAZGy+T0T2lnGn4L5o/mW0sZ5/7DV58+JpuDNb8zHQSpEo/U15rm9fZ9n N2V3AoGCYFD7Hv+wAICYZJlV0qD4dTydiXPk2eCKX4IrZSVWOIBcm4dXBpqdipDYo8R6 l6dg== X-Gm-Message-State: ABy/qLbrNktcuPvQLdJH8Iw77ZLmn1eIcifHtPPGYPNEfiM2mSq80kJi NnyHc1xj8wUHXD47Q/Ys41PkpQ== X-Received: by 2002:a05:6a00:2351:b0:686:24e1:d12e with SMTP id j17-20020a056a00235100b0068624e1d12emr1697924pfj.30.1689932479645; Fri, 21 Jul 2023 02:41:19 -0700 (PDT) Received: from localhost ([122.172.87.195]) by smtp.gmail.com with ESMTPSA id j26-20020a62e91a000000b00682ad247e5fsm2633899pfh.179.2023.07.21.02.41.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 02:41:19 -0700 (PDT) From: Viresh Kumar To: Viresh Kumar , Nishanth Menon , Stephen Boyd , "Rafael J. Wysocki" Cc: Viresh Kumar , linux-pm@vger.kernel.org, Vincent Guittot , Manivannan Sadhasivam , linux-kernel@vger.kernel.org Subject: [PATCH 3/6] OPP: Introduce dev_pm_opp_get_freq_indexed() API Date: Fri, 21 Jul 2023 15:10:56 +0530 Message-Id: <93dc0fb7d0c51908ce1a1c35bec846afa7596e65.1689932341.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772026897805889868 X-GMAIL-MSGID: 1772026897805889868 From: Manivannan Sadhasivam In the case of devices with multiple clocks, drivers need to specify the frequency index for the OPP framework to get the specific frequency within the required OPP. So let's introduce the dev_pm_opp_get_freq_indexed() API accepting the frequency index as an argument. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Viresh Kumar --- drivers/opp/core.c | 22 ++++++++++++++++++++++ include/linux/pm_opp.h | 7 +++++++ 2 files changed, 29 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index cb4f47b341f9..00638d40353f 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -197,6 +197,28 @@ unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp) } EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); +/** + * dev_pm_opp_get_freq_indexed() - Gets the frequency corresponding to an + * available opp with specified index + * @opp: opp for which frequency has to be returned for + * @index: index of the frequency within the required opp + * + * Return: frequency in hertz corresponding to the opp with specified index, + * else return 0 + */ +unsigned long dev_pm_opp_get_freq_indexed(struct dev_pm_opp *opp, u32 index) +{ + struct opp_table *opp_table = opp->opp_table; + + if (IS_ERR_OR_NULL(opp) || index >= opp_table->clk_count) { + pr_err("%s: Invalid parameters\n", __func__); + return 0; + } + + return opp->rates[index]; +} +EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq_indexed); + /** * dev_pm_opp_get_level() - Gets the level corresponding to an available opp * @opp: opp for which level value has to be returned for diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 2617f2c51f29..a13a1705df57 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -105,6 +105,8 @@ unsigned long dev_pm_opp_get_power(struct dev_pm_opp *opp); unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp); +unsigned long dev_pm_opp_get_freq_indexed(struct dev_pm_opp *opp, u32 index); + unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp); unsigned int dev_pm_opp_get_required_pstate(struct dev_pm_opp *opp, @@ -213,6 +215,11 @@ static inline unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp) return 0; } +static inline unsigned long dev_pm_opp_get_freq_indexed(struct dev_pm_opp *opp, u32 index) +{ + return 0; +} + static inline unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp) { return 0; From patchwork Fri Jul 21 09:40:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 123783 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp116683vqg; Fri, 21 Jul 2023 03:51:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlFJhDM9Dtqj3i1WUvI5zL/Mlyru9zENvDsL4fPrekMtRh8/+tT4guMtc6UMup8KdpWBzz7N X-Received: by 2002:a05:6870:1f86:b0:1b7:5f13:334b with SMTP id go6-20020a0568701f8600b001b75f13334bmr2030215oac.12.1689936714873; Fri, 21 Jul 2023 03:51:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689936714; cv=none; d=google.com; s=arc-20160816; b=IJQNrcQbh1hy6qir2y8iJm+dp7THigP/iVLnSlQoY2wSmRcb/SPM+PKeczXQGUG20c KzOVwPjLwm3x02NhXqjXW9Yb4PRZOitMJwdJD/uYiGKk5U9mHTA+m4tYfx4VI8Qstjei qFDK9WUjxJjp8+H7p+UuRzXHtsh4lmKPWA+ZeDO53jqFcQDtbRcBdIStXwjO4NUrH+LJ gAYh2UpSZ9F0PwGHnAjcnw2wad+ri5TiaId3zkqb/WBu1xT2X3YTLF9Lggrw0FwKZYTI VOFScFTYHdDlrJTd97ICYmPdkN9Hgo7J7YKz18C7G2Kyqg7Cel6fN/d9D12vgUQ90dzL OmGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Fj8dA1DktttqIwOcB9+fhQ+T0lm3kSZr4JIH2/qzqQA=; fh=TQKnco0ggU+zuPYQtU1mJz8+bM+vQUgmoNY/SIUMevI=; b=o7hOxN70om0nTnMZNxuotdNSYeeXQ/xv4retd/Ckry/nPBAPEDWXRuXrCDta6l4Yy4 dyJtinSCR/nhPL9ZIBMUTHvcILpcd8OGO5EwPnhXxZxb2jtW81V3WhTzpmaDEsR1yIiv XoY2ryzBpiIKgrEUgsZw3FzDDrAPAVXHDvCRfrHMik1tjE74RxZmnINq+9n6ohJmt3QK I1vjQC/Wlcio7/3m4xNyKiP1+S1Sljh9/F8qxJ+VCCeLWxZTt+UyYebHiwQAmus/nQVi kuB5xFCUwOWM0mcwx3atYOhpSawyr40QHp/PupeyayxuQrJktIL3PrdNlbl55p0h5vYD VjgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ppSdeh1t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bu6-20020a056a00410600b0067ff1a1ccbcsi2809207pfb.63.2023.07.21.03.51.42; Fri, 21 Jul 2023 03:51:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ppSdeh1t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231314AbjGUJlg (ORCPT + 99 others); Fri, 21 Jul 2023 05:41:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230443AbjGUJl2 (ORCPT ); Fri, 21 Jul 2023 05:41:28 -0400 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74A202D46 for ; Fri, 21 Jul 2023 02:41:23 -0700 (PDT) Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-666e3b15370so1244631b3a.0 for ; Fri, 21 Jul 2023 02:41:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1689932483; x=1690537283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Fj8dA1DktttqIwOcB9+fhQ+T0lm3kSZr4JIH2/qzqQA=; b=ppSdeh1tc7/xXjxPCMvsSLzFw8TMUJ+nxHU66ilqA2uJIXDHmUOzyl4Jhi3/j3Xxkn bfZ9i1cASnTa6Yxxl+HjKVYqZiVFA8lTf45yyrSB82n+lGi4ucYK86AjQwwnI3NAL1gc GCVmCtXOjB1m8QAo63HIFFGB6JNi4DTzyY7AYQ09GWX/PtG2JgDmxbUtMpZKYuQGUTFa IK9CQ6hNGTlmVIwjvsYyzE5+2fQpNDBZTEKESutobnEaknXcJf1MXkJsifXubACig7YY XMIfHP/45X5v3I6GkyI23Zf8bkcFIyc6ULojKi8BtpAi3D2RAYyj3SY39FOZmJEZ9VsX 0HZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689932483; x=1690537283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fj8dA1DktttqIwOcB9+fhQ+T0lm3kSZr4JIH2/qzqQA=; b=fHOE/4sT7AH+oT1yvAqaG3RUcEN+dK+zNQAMyV1QGjHZwrsQnlGuG9QVYcGM0HMJ5E 2HjAb2Hw1m+FJlQXbj8qDKMqlVSrCthjHb2h46mX++dc7ByiIAWE5ziJEJom05TmjsV/ GMWWz69W3yg/LRZAqXfiWQIQaviFM9qUDeJmKtcRV8n+r7Rrqa+FBIIdBlXFk7EvLxtU vegireQODcMooKA77xcrwmMZCwyu5Rg0bCy2TrvfBrCw/CPux3anvfAfwuUiovxiSysg SydUbuGKqDKeeDyad0pCJNfJF8vxPY70WudjOjsRe4aXqJXvMCs6nnhWcPrdd/3Lyuuf k+lg== X-Gm-Message-State: ABy/qLZnF1hPFFSrfq/ienRC1Szc1AboX6n6Knul1CaZDK/7b5t1YbLO +kwjjvbw/PECZH/vE6JfsYKrRg== X-Received: by 2002:a05:6a20:b715:b0:130:661c:613d with SMTP id fg21-20020a056a20b71500b00130661c613dmr1069627pzb.5.1689932482813; Fri, 21 Jul 2023 02:41:22 -0700 (PDT) Received: from localhost ([122.172.87.195]) by smtp.gmail.com with ESMTPSA id j26-20020a62e91a000000b00682ad247e5fsm2634011pfh.179.2023.07.21.02.41.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 02:41:22 -0700 (PDT) From: Viresh Kumar To: Viresh Kumar , Nishanth Menon , Stephen Boyd , "Rafael J. Wysocki" Cc: Viresh Kumar , linux-pm@vger.kernel.org, Vincent Guittot , Manivannan Sadhasivam , linux-kernel@vger.kernel.org Subject: [PATCH 4/6] OPP: Add dev_pm_opp_find_freq_exact_indexed() Date: Fri, 21 Jul 2023 15:10:57 +0530 Message-Id: <852a47c0e7a795bdf6424519ab7fadfdeb5b4a3c.1689932341.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772027081132423704 X-GMAIL-MSGID: 1772027081132423704 The indexed version of the API is added for other floor and ceil, add the same for exact as well for completeness. Signed-off-by: Viresh Kumar --- drivers/opp/core.c | 28 ++++++++++++++++++++++++++++ include/linux/pm_opp.h | 11 +++++++++++ 2 files changed, 39 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 00638d40353f..7b1d5724b3d8 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -648,6 +648,34 @@ struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, } EXPORT_SYMBOL_GPL(dev_pm_opp_find_freq_exact); +/** + * dev_pm_opp_find_freq_exact_indexed() - Search for an exact freq for the + * clock corresponding to the index + * @dev: Device for which we do this operation + * @freq: frequency to search for + * @index: Clock index + * @available: true/false - match for available opp + * + * Search for the matching exact OPP for the clock corresponding to the + * specified index from a starting freq for a device. + * + * Return: matching *opp , else returns ERR_PTR in case of error and should be + * handled using IS_ERR. Error return values can be: + * EINVAL: for bad pointer + * ERANGE: no match found for search + * ENODEV: if device not found in list of registered devices + * + * The callers are required to call dev_pm_opp_put() for the returned OPP after + * use. + */ +struct dev_pm_opp * +dev_pm_opp_find_freq_exact_indexed(struct device *dev, unsigned long freq, + u32 index, bool available) +{ + return _find_key_exact(dev, freq, index, available, _read_freq, NULL); +} +EXPORT_SYMBOL_GPL(dev_pm_opp_find_freq_exact_indexed); + static noinline struct dev_pm_opp *_find_freq_ceil(struct opp_table *opp_table, unsigned long *freq) { diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index a13a1705df57..23e4e4eaaa42 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -124,6 +124,10 @@ struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, unsigned long freq, bool available); +struct dev_pm_opp * +dev_pm_opp_find_freq_exact_indexed(struct device *dev, unsigned long freq, + u32 index, bool available); + struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, unsigned long *freq); @@ -268,6 +272,13 @@ static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, return ERR_PTR(-EOPNOTSUPP); } +static inline struct dev_pm_opp * +dev_pm_opp_find_freq_exact_indexed(struct device *dev, unsigned long freq, + u32 index, bool available) +{ + return ERR_PTR(-EOPNOTSUPP); +} + static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, unsigned long *freq) { From patchwork Fri Jul 21 09:40:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 123716 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp93415vqg; Fri, 21 Jul 2023 03:02:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlHchNiIozOIONeFOKECQKLpwCc8Dt0o3xDoTQn1yEKmnTpL5ZlYnyJS57x2d7JYgidzSlCZ X-Received: by 2002:a05:6a20:8f16:b0:134:16a3:83ad with SMTP id b22-20020a056a208f1600b0013416a383admr1334115pzk.57.1689933720642; Fri, 21 Jul 2023 03:02:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689933720; cv=none; d=google.com; s=arc-20160816; b=cQjmWoNFh4WrU3+7T6Cm4lEhRs3xawQIrgLPXE+OTEjMJNPrTZpmE7V5sPbRAHQzKg Fu/lBKDg2497bmwLyLXb7oSuSTzcGq/uz8MSJ15DESqIpFNSi9cCLtK9RaQ5RkADpeA/ 8jpkukgNWzwr/1ECGWAYEdUIwANOKFyrZSbyMMpO5cuYAefHV51GOLEM0ooFzeyFfL1m NCy80E/3P6h68LYBro9fr1HUWgrYWDQKuJApvtMzGtp4NIqtLsGs4d9JXRiGasuitnB4 pEVxrnCej0pHXbjUMR9RwTC3wOnEuvMSpZXu4MYy/7O5PQ0YbQQQNzyXotDh5pK/PWkT RHVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ecCZasV/2WenVXDyoE4/W5g65II48G/OFEkNC6yHhK4=; fh=F4en2BCkoyzQIxDGGOBCsJHG8WU+UsiADh3hfDeM5Ug=; b=P7mHrvB8vVFykpVUxifCO64qdnmRTFg0gE9o5Wy0usJ1rke7a9TjKLouygh9YBp9tr hYDFsEudFvprWF+lBsxB76Vt7evOxrnfl62Z4E59tZNNPvzQQ+KzQ2NwP3qO2h16Jz6B +h5Q0KSnVJYBbpOKoHtcwUnLoh8PtWeTU92zTtrubX9C8Rs2/iMe7ZZOWt8h0yyp1C29 f8zFSDaRD6tQFaZQwNg2bTrvL2VqfxemGnRj5me14sSMNU8Pf1Fb76w9N4zr8GRWIcdr 5A7CrYlLipMI20jysZYyPA//MizTR8PY5iqA+Pd4cO1EzCnLQoP3xppdRYNQzYUb09b9 nYIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xPO2cIrc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x22-20020a056a00189600b00674ff6d1b1esi2922181pfh.42.2023.07.21.03.01.45; Fri, 21 Jul 2023 03:02:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xPO2cIrc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230388AbjGUJlp (ORCPT + 99 others); Fri, 21 Jul 2023 05:41:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230219AbjGUJlb (ORCPT ); Fri, 21 Jul 2023 05:41:31 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69F8C358C for ; Fri, 21 Jul 2023 02:41:26 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1b9e9765f2cso10966845ad.3 for ; Fri, 21 Jul 2023 02:41:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1689932486; x=1690537286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ecCZasV/2WenVXDyoE4/W5g65II48G/OFEkNC6yHhK4=; b=xPO2cIrcSsEOWHLbJo/1rP2vhKK+JOYOe3Q0ys29Ek26FtDXZUte1VyFagly6pU1c6 WF0Hc8txjsBW6htA1P6/B3Et9sMJqeMDGtZ9QlhYOAW0k5v/ljmqZ3LlmkBTWsvzLqrc By+JpiGtwqO1BB5Ib/lZKA+iK5vc4vKQps36kqmDyRgmkDM7XVZPlmaHMp4SPBq1vZW9 Ohb/l6AIAQFKjXnSbvcvURLoxKgJJ+vfLtKgnhaxCdFrto/AE8sa0cyu8e0p4uqH3MCP PVOKtMgMkP+mweNRC45npmdd3bl6UkU9I1NWOWNYhrP69yPOZi6RTk00uJW2nAJQTAmH Mivg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689932486; x=1690537286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ecCZasV/2WenVXDyoE4/W5g65II48G/OFEkNC6yHhK4=; b=FBmwScmJnebSTXofFpV8pvsqa68RnhbDkMnhXn91cu4suj9eXr/v7ZJy9dxb9ogDOM tH4MjsTf/oFmdzIx4n8lg496LRxzi15TtHYNUt+V4EjR576Qk0MUZ/VK0i05LdhVmTFy GGMIOfevc4EMD0rpkClkhRPVKz+e6BSArFdP7X3U1qrRZo6GfKWykWT+UZAJ3KUGUETc AACT1wy7Fk7O1zPYu6fRaAO07qhos3JkUUtRaa7eysZAAfaOIABf8BMIoxlx090NqQWS XCbBuRNIjHUB7lVuyHcIE3VkkqpVPXJGYKioMxSSC3TTUnCSJ5/YJtPSIbS6qRK1jrD5 te+A== X-Gm-Message-State: ABy/qLYfRWbO60IXeKJ3VD0DaPqVZ038q4FQuLFnxDPrlSlyc0smjr9+ NAv0LvWt/o4axUNc6fg8aZZ6cg== X-Received: by 2002:a17:902:ba88:b0:1b8:944a:a932 with SMTP id k8-20020a170902ba8800b001b8944aa932mr1144713pls.2.1689932485880; Fri, 21 Jul 2023 02:41:25 -0700 (PDT) Received: from localhost ([122.172.87.195]) by smtp.gmail.com with ESMTPSA id jg5-20020a17090326c500b001b9fdeead86sm2989244plb.68.2023.07.21.02.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 02:41:25 -0700 (PDT) From: Viresh Kumar To: Viresh Kumar , Nishanth Menon , Stephen Boyd Cc: Viresh Kumar , linux-pm@vger.kernel.org, Vincent Guittot , "Rafael J. Wysocki" , Manivannan Sadhasivam , linux-kernel@vger.kernel.org Subject: [PATCH 5/6] OPP: Update _read_freq() to return the correct frequency Date: Fri, 21 Jul 2023 15:10:58 +0530 Message-Id: <13c3657578d0c054cfcfe4496dde560b6a816e3b.1689932341.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772023941357298245 X-GMAIL-MSGID: 1772023941357298245 Now that we support finding indexed frequencies, lets update _read_freq() to return the right one. Signed-off-by: Viresh Kumar Acked-by: Manivannan Sadhasivam --- drivers/opp/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 7b1d5724b3d8..95f49fbe431c 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -472,7 +472,7 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_get_opp_count); /* Helpers to read keys */ static unsigned long _read_freq(struct dev_pm_opp *opp, int index) { - return opp->rates[0]; + return opp->rates[index]; } static unsigned long _read_level(struct dev_pm_opp *opp, int index) From patchwork Fri Jul 21 09:40:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 123731 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp99704vqg; Fri, 21 Jul 2023 03:13:31 -0700 (PDT) X-Google-Smtp-Source: APBJJlHrz6gvZ1r0U3Acb3r0APEuV25stBX0F6K28qcLuRlmlj+xzRQ/M+XaIQBlap9RffZMHcGT X-Received: by 2002:a05:6a00:1acb:b0:67e:e019:3a28 with SMTP id f11-20020a056a001acb00b0067ee0193a28mr1381853pfv.16.1689934411499; Fri, 21 Jul 2023 03:13:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689934411; cv=none; d=google.com; s=arc-20160816; b=GyR+FVuQtLgvbCamcUNMIEwp6B0BoQVkHyMf0/NepAkIkEFCez4ivdxZEjNclb9tkH 0qtXa3CY8FyNNHPuUp1rmPT4dbq+d83raiiRtKLfjbMYktFUWzAhUAsMn//Q/t5teM+6 pZMRPfdYTfakglrU33T1RgaCBZNhnpK0mQMP2/dF+ZKicZJVN6JQXVdWYOeX0dXeI1jE oqivY+czY89QGBjNa0Ly6K8VTTnDtgGPW3M/QJpn9N3nr/1A5WSC13WpI/pdnNVHLvYh 1UDei0MLZejyOJxn4c80iPQ4Kc3pc9ggYsbJjOxR1DkWQ4PsU1V13y8yZgnpxDd7zUP4 /aPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wV1Dq3qxy3owBxFZT6zTX4jA+LGfZlUCj9m2f/LMDI4=; fh=TQKnco0ggU+zuPYQtU1mJz8+bM+vQUgmoNY/SIUMevI=; b=MZOvsee5ZNIHLVxFjxndllTeOQVCF8p2HBRxpV4D11peYoPP4Mctos90g77lyTgvkA U/AYJ/UBUbP03XJjiDhb/tyN5RAM/FjmGGP7J8gTDpi6+jg/xARZxUFdlTTyJ62BBHgY q5iPblSTUZeUoyozPn6KfU+5H9iS4TScCMDw8fARKVp2ciGO2dl21MINAfP2vFi0rnlG ZiNSDQxD6J4fA+vc8jsUBKgBvIaSGQ8Gsc/Q2cBfToSC6M3W0ywEbKzyTn4OR1ytPuRo 8OcZ8jt1ML5YFLRAUWEwB2hgGN08cBiwbh9mLsTgHHGY+GMNvSLXaDsGTPs9IyEIqniH NTtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PX7uG1Kz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fc41-20020a056a002e2900b00653b5ab16c3si2804557pfb.265.2023.07.21.03.13.18; Fri, 21 Jul 2023 03:13:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PX7uG1Kz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230443AbjGUJls (ORCPT + 99 others); Fri, 21 Jul 2023 05:41:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230326AbjGUJlh (ORCPT ); Fri, 21 Jul 2023 05:41:37 -0400 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D678F30DF for ; Fri, 21 Jul 2023 02:41:29 -0700 (PDT) Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1b8ad907ba4so10602525ad.0 for ; Fri, 21 Jul 2023 02:41:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1689932489; x=1690537289; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wV1Dq3qxy3owBxFZT6zTX4jA+LGfZlUCj9m2f/LMDI4=; b=PX7uG1KzgJBF9OqFkdVoGQGowY0yc8uyhhSfAf0grrqIE31HiSaobdTHh3woQlGXGl AFqxibmxcYe39UOHeBHgoboxh9JYggzuUuvt1gJCi3ouJBIdUMoF4ixPcx8eJN3OK+ki btdQ/IoO87PY9n2Su1E4ChD5X10ObsuPDki1Rx/1aBCFcdc0ZdGVGdfetwIkwd4MKWeJ bJJqDzcGmqQUmyZtwGJPIyHwHDwculDG0IBmUXRxtWgTrZCBt4aD8Bdicjs7GNHauexv CtVk4Y80Atp8Fu256ntEOo/AGfDuZyhUX4EgdG9q7xiblOoGPCtYOssK23WQuWvV/B85 uh+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689932489; x=1690537289; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wV1Dq3qxy3owBxFZT6zTX4jA+LGfZlUCj9m2f/LMDI4=; b=e7/rr6+6a3pPsqitwekgGYVAaPHPZlmIpANFQL7wlM/TIz9YGhTDQ6AZw7TzppkJAR nKQ12n8niVXvUemJxndRP0IcW6A/la/zNJNCKux+/nORCjKoDgDrXIzM1UMvaJT3N4qo CRLej4sgTYfqDNG1vV7lc2VbvyuMxUa2ssnxJ5x6ob+CVN6O0JRFuv3i7Iizj6cs7P5h SiyINEB8u6ay5QESOZFmFE2I3+VgMBuRGazx9UjUR3D5+PLGqgK8bDlieBlhcLJhUNrP GzG5zetFKqELu8FNB0jiOCSLbFNzkXH8jXCd2jSPXuhIsIbPXmyXqroq9X2NMAzWpUN5 0x9g== X-Gm-Message-State: ABy/qLZVUQGdSgOxwMCbBWtu6QyJax1np+4fJQqdgRN9yaOMs7mc86Tk s+JeNuFpv6V9CLazmGZWqoJC/g== X-Received: by 2002:a17:902:ce84:b0:1b6:ba60:77f0 with SMTP id f4-20020a170902ce8400b001b6ba6077f0mr1347697plg.10.1689932489156; Fri, 21 Jul 2023 02:41:29 -0700 (PDT) Received: from localhost ([122.172.87.195]) by smtp.gmail.com with ESMTPSA id u22-20020a170902a61600b001b2069072ccsm3005270plq.18.2023.07.21.02.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 02:41:28 -0700 (PDT) From: Viresh Kumar To: Viresh Kumar , Nishanth Menon , Stephen Boyd , "Rafael J. Wysocki" Cc: Viresh Kumar , linux-pm@vger.kernel.org, Vincent Guittot , Manivannan Sadhasivam , linux-kernel@vger.kernel.org Subject: [PATCH 6/6] OPP: Reuse dev_pm_opp_get_freq_indexed() Date: Fri, 21 Jul 2023 15:10:59 +0530 Message-Id: <5ddded46303f9d034ecb79f1fcc48abcc590f7db.1689932341.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.31.1.272.g89b43f80a514 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772024665693222798 X-GMAIL-MSGID: 1772024665693222798 Reuse dev_pm_opp_get_freq_indexed() from dev_pm_opp_get_freq(). Signed-off-by: Viresh Kumar Acked-by: Manivannan Sadhasivam --- drivers/opp/core.c | 21 --------------------- include/linux/pm_opp.h | 12 +++++------- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 95f49fbe431c..16a103e6695b 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -176,27 +176,6 @@ unsigned long dev_pm_opp_get_power(struct dev_pm_opp *opp) } EXPORT_SYMBOL_GPL(dev_pm_opp_get_power); -/** - * dev_pm_opp_get_freq() - Gets the frequency corresponding to an available opp - * @opp: opp for which frequency has to be returned for - * - * Return: frequency in hertz corresponding to the opp, else - * return 0 - */ -unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp) -{ - if (IS_ERR_OR_NULL(opp)) { - pr_err("%s: Invalid parameters\n", __func__); - return 0; - } - - if (!assert_single_clk(opp->opp_table)) - return 0; - - return opp->rates[0]; -} -EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); - /** * dev_pm_opp_get_freq_indexed() - Gets the frequency corresponding to an * available opp with specified index diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 23e4e4eaaa42..91f87d7e807c 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -103,8 +103,6 @@ int dev_pm_opp_get_supplies(struct dev_pm_opp *opp, struct dev_pm_opp_supply *su unsigned long dev_pm_opp_get_power(struct dev_pm_opp *opp); -unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp); - unsigned long dev_pm_opp_get_freq_indexed(struct dev_pm_opp *opp, u32 index); unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp); @@ -214,11 +212,6 @@ static inline unsigned long dev_pm_opp_get_power(struct dev_pm_opp *opp) return 0; } -static inline unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp) -{ - return 0; -} - static inline unsigned long dev_pm_opp_get_freq_indexed(struct dev_pm_opp *opp, u32 index) { return 0; @@ -669,4 +662,9 @@ static inline void dev_pm_opp_put_prop_name(int token) dev_pm_opp_clear_config(token); } +static inline unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp) +{ + return dev_pm_opp_get_freq_indexed(opp, 0); +} + #endif /* __LINUX_OPP_H__ */