Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757032AbbEETQO (ORCPT ); Tue, 5 May 2015 15:16:14 -0400 Received: from hqemgate15.nvidia.com ([216.228.121.64]:2649 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752184AbbEETQL (ORCPT ); Tue, 5 May 2015 15:16:11 -0400 X-PGP-Universal: processed; by hqnvupgp07.nvidia.com on Tue, 05 May 2015 12:14:45 -0700 Message-ID: <554916F8.2060908@nvidia.com> Date: Tue, 5 May 2015 15:16:08 -0400 From: Rhyland Klein User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Benson Leung CC: Peter De Schrijver , Mike Turquette , Stephen Warren , Stephen Boyd , Thierry Reding , Alexandre Courbot , , , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v4 08/20] clk: tegra: pll: Add logic for handling SDM data References: <1430757460-9478-1-git-send-email-rklein@nvidia.com> <1430757460-9478-9-git-send-email-rklein@nvidia.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1789 Lines: 50 On 5/4/2015 7:01 PM, Benson Leung wrote: > On Mon, May 4, 2015 at 9:37 AM, Rhyland Klein wrote: >> @@ -495,6 +505,28 @@ static int _calc_rate(struct clk_hw *hw, struct tegra_clk_pll_freq_table *cfg, >> return 0; >> } >> >> +static void clk_pll_set_sdm_data(struct clk_hw *hw, >> + struct tegra_clk_pll_freq_table *cfg) >> +{ >> + struct tegra_clk_pll *pll = to_clk_pll(hw); >> + u32 val; >> + >> + if (!pll->params->sdm_din_reg) >> + return; >> + >> + if (cfg->sdm_data) { >> + val = pll_readl_sdm_din(pll) & (~sdm_din_mask(pll)); >> + val |= sdin_data_to_din(cfg->sdm_data) & sdm_din_mask(pll); >> + pll_writel_sdm_din(val, pll); >> + } >> + >> + val = pll_readl_sdm_ctrl(pll); >> + if (!cfg->sdm_data != !(val & pll->params->sdm_ctrl_en_mask)) { > > You can use sdm_en_mask(pll) here. > > I'm not super clear about what you're trying to accomplish here with > !cfg->sdm_data != !(val & mask). > Are you just checking if the masked value is different from sdm_data, > but accounting for the integer widths being different (u16 vs u32)? So I got clarification from the downstream author to be sure, and this is the answer to what this is checking: ( AND ) OR ( AND ) So the check is correct, just a complicated way of expressing it. -rhyland -- nvpublic -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/