From patchwork Wed Aug 21 02:56:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manivannan Sadhasivam X-Patchwork-Id: 171894 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp370769ily; Tue, 20 Aug 2019 19:56:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqxmuL9lZajOqOir0s/UuMPJLsonDVcbhvqkKycmz/F6OhBmsJ2+ub2lTUfdNZwuAuFb61O5 X-Received: by 2002:a17:902:8e8b:: with SMTP id bg11mr29918273plb.93.1566356213214; Tue, 20 Aug 2019 19:56:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566356213; cv=none; d=google.com; s=arc-20160816; b=k/Elyd3jslAbMYwXPhsQPJwRoMkkW5Mkl5OYctYcLcgiyLCCNXm/qHT5yXJ7YDxpUK e/nl0kUx3dw7qjlPlAFLBevEHhipfNWqohmFjNDz/2NxbnSHX+b40gJXYOzH0EOiHkxW QC2oBrq6OdKXw/Aib0+5qX3Msf0vP5zdyehmmR8ix8dibyuLEUTQYV5F5RIMSb7ybdhw zu82I9P7mgCyJyTQsPUGWKiQe31DwN44bEDzJe7xGILx52L6T6ZFwGs8Cdl2zU3wY91I AFStcd8lybmk158GoZce3sIP57ewG4AlVGj+R8uF6J3UXJbdYAsmfCMfcuwNT3t7KhiC tyFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=Hn9ny8/GLVF+YVcbiT4jfW3YxcXYEYikLYvYoEONj7Y=; b=0HBVEDI/dmnmnSVWDM2XWNNjLjb00Uev4mJ0H1Vo1hW3LdQ56MFeiP6RBTSpAWpTCI 88jzADYxhnASedPv5LowGAnuURXIGRzDFr2tCBs5UrGr9C1c+qL75VvxkhYglapoWNbD CTAUCTwDiJ5uVUU5QFv3cK2uvu2q9CT6CcsYvsduZKGKkdlpO0EchRFEOW94dC74L7eG XZoo//Di3ddXM/SgCucb2IQrWsN+lgeP5UkCoVVrn4CezD4wiiCHvf4VXVgKXfuvDr2b 8NeCRBTnrtYQ5rya3Rgw0NbilpaWDt1p87jKAyvm4duhRP7qm9AA/suJVjhBQR6uwiT5 uwpQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aABCInNi; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1si13880652plq.153.2019.08.20.19.56.52; Tue, 20 Aug 2019 19:56:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aABCInNi; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-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 S1726947AbfHUC4w (ORCPT + 8 others); Tue, 20 Aug 2019 22:56:52 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:41276 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726478AbfHUC4w (ORCPT ); Tue, 20 Aug 2019 22:56:52 -0400 Received: by mail-pl1-f194.google.com with SMTP id m9so485360pls.8 for ; Tue, 20 Aug 2019 19:56:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Hn9ny8/GLVF+YVcbiT4jfW3YxcXYEYikLYvYoEONj7Y=; b=aABCInNix2J6e7HF4fvEuYdfPtOj7yi3+jBRArEzJDf4aafZ2Ya4C+W1j2S5Md9TSx /yi/W6AgbXxfHF5mD/0/dFnswnFKNhOqDpclsLoqR8lEqTvp4MBGyFbeN8B4y7yp21qb MZXqFWO4v3gk1rdrKNogftXfbH4IRIJicTGZZllZJyuFr8Vy8lhtWIdzEkHq8WFS5V/J dQbnNm9Tt56q6SL4w9Hiw3pxtObzputeTinFIye4JGdn6LSaffY/LgIQG/2QyttgmpBc JzMXdRaGT9iay1Sn/hbgP0GZvVZDBdOXIjl5u1HN8gY3JUTYGnRnnruISYy9oaT4ATkb UyYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Hn9ny8/GLVF+YVcbiT4jfW3YxcXYEYikLYvYoEONj7Y=; b=Ozofz8kZmvbaSu/3et2dykiHcS/3XH0pwIFO3tKy8Y/Vl6CINL+eUwngU+9F91erdI aIYYlZ+Wi1W6UA9lSMjenNrZlEKB9NHcUM3MOCLINlXAl/mOZWEwHblnZlzFcX4iZOZv VhFpzdSKUBWVhBdpA67SJlsVFxj3cAATU4N64oHz4VBo+xaWFAOJ1RyJfGPjGG7d017X UEXSjWm2/WbJNbK05/UeVBxmRb9qhr6PvSVGxOgz6OoE5QdMmueQEIRjSbpaQilzBoqp O/s1ZaMsSrfHhyPAU6a7NDUcaMx0Q+Bu5s44S7UKUB077E2HjPoBWbyRU3CEkT35gEaZ LnfA== X-Gm-Message-State: APjAAAW/7K5QVADOgbraVFcGJe3BV36gLKIWCyddh2hAFFj6w1zyZ0tM CPXUcw2voS268PJKOlhgH+ZG X-Received: by 2002:a17:902:b588:: with SMTP id a8mr19709561pls.15.1566356211322; Tue, 20 Aug 2019 19:56:51 -0700 (PDT) Received: from localhost.localdomain ([2405:204:7101:175:ddd7:6c31:ebc7:37e8]) by smtp.gmail.com with ESMTPSA id d16sm13251682pfd.81.2019.08.20.19.56.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Aug 2019 19:56:50 -0700 (PDT) From: Manivannan Sadhasivam To: ulf.hansson@linaro.org, afaerber@suse.de, robh+dt@kernel.org, sboyd@kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, thomas.liau@actions-semi.com, linux-actions@lists.infradead.org, linus.walleij@linaro.org, linux-clk@vger.kernel.org, Manivannan Sadhasivam Subject: [PATCH v3 1/7] clk: actions: Fix factor clk struct member access Date: Wed, 21 Aug 2019 08:26:23 +0530 Message-Id: <20190821025629.15470-2-manivannan.sadhasivam@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190821025629.15470-1-manivannan.sadhasivam@linaro.org> References: <20190821025629.15470-1-manivannan.sadhasivam@linaro.org> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Since the helper "owl_factor_helper_round_rate" is shared between factor and composite clocks, using the factor clk specific helper function like "hw_to_owl_factor" to access its members will create issues when called from composite clk specific code. Hence, pass the "factor_hw" struct pointer directly instead of fetching it using factor clk specific helpers. This issue has been observed when a composite clock like "sd0_clk" tried to call "owl_factor_helper_round_rate" resulting in pointer dereferencing error. While we are at it, let's rename the "clk_val_best" function to "owl_clk_val_best" since this is an owl SoCs specific helper. Fixes: 4bb78fc9744a ("clk: actions: Add factor clock support") Signed-off-by: Manivannan Sadhasivam Reviewed-by: Stephen Boyd --- drivers/clk/actions/owl-factor.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) -- 2.17.1 diff --git a/drivers/clk/actions/owl-factor.c b/drivers/clk/actions/owl-factor.c index 317d4a9e112e..f15e2621fa18 100644 --- a/drivers/clk/actions/owl-factor.c +++ b/drivers/clk/actions/owl-factor.c @@ -64,11 +64,10 @@ static unsigned int _get_table_val(const struct clk_factor_table *table, return val; } -static int clk_val_best(struct clk_hw *hw, unsigned long rate, +static int owl_clk_val_best(const struct owl_factor_hw *factor_hw, + struct clk_hw *hw, unsigned long rate, unsigned long *best_parent_rate) { - struct owl_factor *factor = hw_to_owl_factor(hw); - struct owl_factor_hw *factor_hw = &factor->factor_hw; const struct clk_factor_table *clkt = factor_hw->table; unsigned long parent_rate, try_parent_rate, best = 0, cur_rate; unsigned long parent_rate_saved = *best_parent_rate; @@ -126,7 +125,7 @@ long owl_factor_helper_round_rate(struct owl_clk_common *common, const struct clk_factor_table *clkt = factor_hw->table; unsigned int val, mul = 0, div = 1; - val = clk_val_best(&common->hw, rate, parent_rate); + val = owl_clk_val_best(factor_hw, &common->hw, rate, parent_rate); _get_table_div_mul(clkt, val, &mul, &div); return *parent_rate * mul / div;