clk: rockchip: Optimize PLL table memory usage
authorElaine Zhang <zhangqing@rock-chips.com>
Tue, 11 May 2021 09:07:26 +0000 (17:07 +0800)
committerHeiko Stuebner <heiko@sntech.de>
Tue, 11 May 2021 10:22:29 +0000 (12:22 +0200)
Before the change: The sizeof rk3568_pll_rates = 2544
Use union: The sizeof rk3568_pll_rates = 1696

In future Soc, more PLL types will be added, and the
rockchip_pll_rate_table will add more members,
and the space savings will be even more pronounced
by using union.

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Link: https://lore.kernel.org/r/20210511090726.15146-1-zhangqing@rock-chips.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
drivers/clk/rockchip/clk.h

index 571cee7..7aa45cc 100644 (file)
@@ -271,17 +271,24 @@ struct rockchip_clk_provider {
 
 struct rockchip_pll_rate_table {
        unsigned long rate;
-       unsigned int nr;
-       unsigned int nf;
-       unsigned int no;
-       unsigned int nb;
-       /* for RK3036/RK3399 */
-       unsigned int fbdiv;
-       unsigned int postdiv1;
-       unsigned int refdiv;
-       unsigned int postdiv2;
-       unsigned int dsmpd;
-       unsigned int frac;
+       union {
+               struct {
+                       /* for RK3066 */
+                       unsigned int nr;
+                       unsigned int nf;
+                       unsigned int no;
+                       unsigned int nb;
+               };
+               struct {
+                       /* for RK3036/RK3399 */
+                       unsigned int fbdiv;
+                       unsigned int postdiv1;
+                       unsigned int refdiv;
+                       unsigned int postdiv2;
+                       unsigned int dsmpd;
+                       unsigned int frac;
+               };
+       };
 };
 
 /**