From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756535AbbGVNEA (ORCPT ); Wed, 22 Jul 2015 09:04:00 -0400 Received: from mga14.intel.com ([192.55.52.115]:23339 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755276AbbGVND6 (ORCPT ); Wed, 22 Jul 2015 09:03:58 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,523,1432623600"; d="scan'208";a="528276897" Message-ID: <1437570205.8014.31.camel@linux.intel.com> Subject: Re: [PATCH v5 1/8] clk: divider: switch to GENMASK() From: Andy Shevchenko To: Stephen Boyd Cc: linux-kernel@vger.kernel.org, Sascha Hauer , Peter De Schrijver , Tero Kristo , Russell King , Dinh Nguyen Date: Wed, 22 Jul 2015 16:03:25 +0300 In-Reply-To: <20150721234807.GA15042@codeaurora.org> References: <1436796468-45723-1-git-send-email-andriy.shevchenko@linux.intel.com> <1436796468-45723-2-git-send-email-andriy.shevchenko@linux.intel.com> <20150721234807.GA15042@codeaurora.org> Organization: Intel Finland Oy Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.3-1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2015-07-21 at 16:48 -0700, Stephen Boyd wrote: > On 07/13, Andy Shevchenko wrote: > > Convert the code to use GENMASK() helper instead of div_mask() > > macro. > > > > Signed-off-by: Andy Shevchenko > > --- > > drivers/clk/clk-divider.c | 18 ++++++++---------- > > 1 file changed, 8 insertions(+), 10 deletions(-) > > > > diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c > > index 706b578..3bde790 100644 > > --- a/drivers/clk/clk-divider.c > > +++ b/drivers/clk/clk-divider.c > > @@ -30,8 +30,6 @@ > > > > #include ? In clk-provider.h? It already is using BIT() macro. That's why I didn't add the header inclusion. > > > @@ -391,10 +389,10 @@ static int clk_divider_set_rate(struct clk_hw > > *hw, unsigned long rate, > > spin_lock_irqsave(divider->lock, flags); > > > > if (divider->flags & CLK_DIVIDER_HIWORD_MASK) { > > - val = div_mask(divider->width) << (divider->shift > > + 16); > > + val = GENMASK(divider->width - 1, 0) << (divider > > ->shift + 16); > > } else { > > val = clk_readl(divider->reg); > > - val &= ~(div_mask(divider->width) << divider > > ->shift); > > + val &= ~(GENMASK(divider->width - 1, 0) << divider > > ->shift); > > Shouldn't this be doing the shift in the GENMASK? It shouldn't. I checked an assembly and it's far complex from the proposed form. > > start = divider->width - 1 + divider->shift; > end = divider->shift; > > ... > > val &= ~GENMASK(start, end); > -- Andy Shevchenko Intel Finland Oy