From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932634AbcIGGps (ORCPT ); Wed, 7 Sep 2016 02:45:48 -0400 Received: from smtp.csie.ntu.edu.tw ([140.112.30.61]:48032 "EHLO smtp.csie.ntu.edu.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932402AbcIGGpr (ORCPT ); Wed, 7 Sep 2016 02:45:47 -0400 MIME-Version: 1.0 In-Reply-To: <20160906121837.7517-5-maxime.ripard@free-electrons.com> References: <20160906121837.7517-1-maxime.ripard@free-electrons.com> <20160906121837.7517-5-maxime.ripard@free-electrons.com> From: Chen-Yu Tsai Date: Wed, 7 Sep 2016 14:45:21 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 4/7] clk: sunxi-ng: Add N-class clocks support To: Maxime Ripard Cc: Mike Turquette , Stephen Boyd , Chen-Yu Tsai , Hans de Goede , Mylene Josserand , linux-clk , devicetree , linux-arm-kernel , linux-kernel , Thomas Petazzoni Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 6, 2016 at 8:18 PM, Maxime Ripard wrote: > Add support for the class with a single factor, N, being a multiplier. > > Signed-off-by: Maxime Ripard > Acked-by: Chen-Yu Tsai > --- [...] > diff --git a/drivers/clk/sunxi-ng/ccu_mult.c b/drivers/clk/sunxi-ng/ccu_mult.c > new file mode 100644 > index 000000000000..119b190c0eb5 > --- /dev/null > +++ b/drivers/clk/sunxi-ng/ccu_mult.c [...] > +static int ccu_mult_set_rate(struct clk_hw *hw, unsigned long rate, > + unsigned long parent_rate) > +{ > + struct ccu_mult *cm = hw_to_ccu_mult(hw); > + unsigned long flags; > + unsigned int n; > + u32 reg; > + > + ccu_mux_helper_adjust_parent_for_prediv(&cm->common, &cm->mux, -1, > + &parent_rate); > + Git complains about extra whitespace here. You can keep my ack after fixing it. ChenYu > + ccu_mult_find_best(parent_rate, rate, 1 << cm->mult.width, &n); > + > + spin_lock_irqsave(cm->common.lock, flags); > + > + reg = readl(cm->common.base + cm->common.reg); > + reg &= ~GENMASK(cm->mult.width + cm->mult.shift - 1, cm->mult.shift); > + > + writel(reg | ((n - 1) << cm->mult.shift), > + cm->common.base + cm->common.reg); > + > + spin_unlock_irqrestore(cm->common.lock, flags); > + > + return 0; > +}