lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <2653032.av3sFfN860@phil> Date: Wed, 07 Oct 2015 12:24:32 +0200 From: Heiko Stuebner <heiko@...ech.de> To: Xing Zheng <zhengxing@...k-chips.com> Cc: linux-rockchip@...ts.infradead.org, Michael Turquette <mturquette@...libre.com>, Stephen Boyd <sboyd@...eaurora.org>, linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org, linux-arm-kernel@...ts.infradead.org Subject: Re: [PATCH v2 3/9] clk: rockchip: add clock controller for rk3036 Hi, Am Donnerstag, 24. September 2015, 11:31:58 schrieb Xing Zheng: > On 2015年09月24日 11:04, Xing Zheng wrote: > >>> #define RK3066_PLL_RATE(_rate, _nr, _nf, _no) \ > >>> > >>> @@ -95,12 +106,31 @@ enum rockchip_pll_type { > >>> > >>> .nb = _nb, \ > >>> > >>> } > >>> > >>> +#define RK3036_PLL_RATE(_rate, _refdiv, _fbdiv, _postdiv1, \ > >>> + _postdiv2, _dsmpd, _frac) \ > >>> +{ \ > >>> + .rate = _rate##U, \ > >>> + .fbdiv = _fbdiv, \ > >>> + .postdiv1 = _postdiv1, \ > >>> + .refdiv = _refdiv, \ > >>> + .postdiv2 = _postdiv2, \ > >>> + .dsmpd = _dsmpd, \ > >>> + .frac = _frac, \ > >>> +} > >>> + > >>> > >>> struct rockchip_pll_rate_table { > >>> > >>> unsigned long rate; > >>> unsigned int nr; > >>> unsigned int nf; > >>> unsigned int no; > >>> unsigned int nb; > >>> > >>> + /* for RK3036 */ > >>> + unsigned int fbdiv; > >>> + unsigned int postdiv1; > >>> + unsigned int refdiv; > >>> + unsigned int postdiv2; > >>> + unsigned int dsmpd; > >>> + unsigned int frac; > >> > >> same for these 2 ... should be part of the pll addition itself > >> > > }; > > > > Done. > > Sorry, I have one question: > The "struct rockchip_pll_rate_table" is called in "rockchip/clk-pll.c" > on many functions, I think I could add a struct like: > struct rk3036_pll_rate_table { > unsigned int fbdiv; > unsigned int postdiv1; > unsigned int refdiv; > unsigned int postdiv2; > unsigned int dsmpd; > unsigned int frac; > }; > but, it will add many redundancy codes in "rockchip/clk-pll.c" just for > call "struct rk3036_pll_rate_table". One possible solution may be to cast to void* in the general functions, so have sturct rk3066_pll_rate_table, rk3036_pll_rate_table, have rockchip_clk_register_pll and friends handle it as void* and then only have the rockchip_rk3066_pll_* functions as well as the clk-rkxxxx.c use them as their actual type, as they know which they need. Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists