[PATCH v2 1/8] clk: flag to use upper half of the register as change indicator

Heiko Stübner heiko at sntech.de
Fri Jun 7 08:27:20 EDT 2013


Am Freitag, 7. Juni 2013, 13:46:32 schrieb Linus Walleij:
> On Thu, Jun 6, 2013 at 9:08 PM, Heiko Stübner <heiko at sntech.de> wrote:
> > There exist platforms, namely at least all Rockchip Cortex-A9 based ones,
> > that don't use the paradigm of reading-changing-writing the register
> > contents, but instead only write the changes to the register with a mask
> > that indicates the changed bits.
> > 
> > This patch adds flags and code to support the case where the lower 16 bit
> > of hold the information and the upper 16 bit are used as mask to
> > indicate the written changes.
> > 
> > As hardware-specific flags should not be added to the common clk flags,
> > the flags are added to gate, mux and divider clocks individually.
> > 
> > Signed-off-by: Heiko Stuebner <heiko at sntech.de>
> 
> (...)
> 
> > +       if ((clk_gate_flags & CLK_GATE_MASK_UPPER_HALF) && bit_idx > 15)
> > { +               pr_err("%s: bit_idx %d invalid\n", __func__, bit_idx);
> > +               return ERR_PTR(-EINVAL);
> > +       }
> 
> Now this looks *EXTREMELY* familiar to a patch just sent by Haojian
> for HiSilicon.
> 
> "[PATCH v2 3/6] clk: divider: add CLK_DIVIDER_HIWORD_MASK flag"
> http://marc.info/?l=linux-arm-kernel&m=137035873916777&w=2
> 
> What kind of coincidence is this? Are Rockchip and HiSilicon using
> the same silicon IP or are they of a common origin? (It is a small
> world after all.)

Now this is really interesting :-) and the handling really seems to follow the 
same pattern.


> I think you two guys need to read each others patch sets closely
> here. I'd like Haojian to look at Heiko's patches and Heiko to look
> at Haojian's patches, just to make sure you're not actually writing
> two drivers for the same hardware in the end.

I'll take a look


Heiko



More information about the linux-arm-kernel mailing list