Skip to content

Commit 6a3d70f

Browse files
juhosgandersson
authored andcommitted
clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an empty element. Add such entry to the end of the arrays where it is missing in order to avoid possible out-of-bound access when the table is traversed by functions like qcom_find_freq() or qcom_find_freq_floor(). Only compile tested. Fixes: ff93872 ("clk: qcom: camcc-sc8280xp: Add sc8280xp CAMCC") Signed-off-by: Gabor Juhos <[email protected]> Reviewed-by: Stephen Boyd <[email protected]> Cc: [email protected] Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Andersson <[email protected]>
1 parent bd2b639 commit 6a3d70f

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

drivers/clk/qcom/camcc-sc8280xp.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,7 @@ static const struct freq_tbl ftbl_camcc_bps_clk_src[] = {
630630
F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0),
631631
F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0),
632632
F(760000000, P_CAMCC_PLL3_OUT_EVEN, 1, 0, 0),
633+
{ }
633634
};
634635

635636
static struct clk_rcg2 camcc_bps_clk_src = {
@@ -654,6 +655,7 @@ static const struct freq_tbl ftbl_camcc_camnoc_axi_clk_src[] = {
654655
F(320000000, P_CAMCC_PLL7_OUT_ODD, 1, 0, 0),
655656
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
656657
F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0),
658+
{ }
657659
};
658660

659661
static struct clk_rcg2 camcc_camnoc_axi_clk_src = {
@@ -673,6 +675,7 @@ static struct clk_rcg2 camcc_camnoc_axi_clk_src = {
673675
static const struct freq_tbl ftbl_camcc_cci_0_clk_src[] = {
674676
F(19200000, P_BI_TCXO, 1, 0, 0),
675677
F(37500000, P_CAMCC_PLL0_OUT_EVEN, 16, 0, 0),
678+
{ }
676679
};
677680

678681
static struct clk_rcg2 camcc_cci_0_clk_src = {
@@ -735,6 +738,7 @@ static const struct freq_tbl ftbl_camcc_cphy_rx_clk_src[] = {
735738
F(19200000, P_BI_TCXO, 1, 0, 0),
736739
F(240000000, P_CAMCC_PLL0_OUT_EVEN, 2.5, 0, 0),
737740
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
741+
{ }
738742
};
739743

740744
static struct clk_rcg2 camcc_cphy_rx_clk_src = {
@@ -754,6 +758,7 @@ static struct clk_rcg2 camcc_cphy_rx_clk_src = {
754758
static const struct freq_tbl ftbl_camcc_csi0phytimer_clk_src[] = {
755759
F(19200000, P_BI_TCXO, 1, 0, 0),
756760
F(300000000, P_CAMCC_PLL0_OUT_EVEN, 2, 0, 0),
761+
{ }
757762
};
758763

759764
static struct clk_rcg2 camcc_csi0phytimer_clk_src = {
@@ -818,6 +823,7 @@ static const struct freq_tbl ftbl_camcc_fast_ahb_clk_src[] = {
818823
F(200000000, P_CAMCC_PLL0_OUT_EVEN, 3, 0, 0),
819824
F(300000000, P_CAMCC_PLL0_OUT_MAIN, 4, 0, 0),
820825
F(400000000, P_CAMCC_PLL0_OUT_MAIN, 3, 0, 0),
826+
{ }
821827
};
822828

823829
static struct clk_rcg2 camcc_fast_ahb_clk_src = {
@@ -838,6 +844,7 @@ static const struct freq_tbl ftbl_camcc_icp_clk_src[] = {
838844
F(19200000, P_BI_TCXO, 1, 0, 0),
839845
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
840846
F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0),
847+
{ }
841848
};
842849

843850
static struct clk_rcg2 camcc_icp_clk_src = {
@@ -860,6 +867,7 @@ static const struct freq_tbl ftbl_camcc_ife_0_clk_src[] = {
860867
F(558000000, P_CAMCC_PLL3_OUT_EVEN, 1, 0, 0),
861868
F(637000000, P_CAMCC_PLL3_OUT_EVEN, 1, 0, 0),
862869
F(760000000, P_CAMCC_PLL3_OUT_EVEN, 1, 0, 0),
870+
{ }
863871
};
864872

865873
static struct clk_rcg2 camcc_ife_0_clk_src = {
@@ -883,6 +891,7 @@ static const struct freq_tbl ftbl_camcc_ife_0_csid_clk_src[] = {
883891
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
884892
F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0),
885893
F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0),
894+
{ }
886895
};
887896

888897
static struct clk_rcg2 camcc_ife_0_csid_clk_src = {
@@ -905,6 +914,7 @@ static const struct freq_tbl ftbl_camcc_ife_1_clk_src[] = {
905914
F(558000000, P_CAMCC_PLL4_OUT_EVEN, 1, 0, 0),
906915
F(637000000, P_CAMCC_PLL4_OUT_EVEN, 1, 0, 0),
907916
F(760000000, P_CAMCC_PLL4_OUT_EVEN, 1, 0, 0),
917+
{ }
908918
};
909919

910920
static struct clk_rcg2 camcc_ife_1_clk_src = {
@@ -941,6 +951,7 @@ static const struct freq_tbl ftbl_camcc_ife_2_clk_src[] = {
941951
F(558000000, P_CAMCC_PLL5_OUT_EVEN, 1, 0, 0),
942952
F(637000000, P_CAMCC_PLL5_OUT_EVEN, 1, 0, 0),
943953
F(760000000, P_CAMCC_PLL5_OUT_EVEN, 1, 0, 0),
954+
{ }
944955
};
945956

946957
static struct clk_rcg2 camcc_ife_2_clk_src = {
@@ -962,6 +973,7 @@ static const struct freq_tbl ftbl_camcc_ife_2_csid_clk_src[] = {
962973
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
963974
F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0),
964975
F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0),
976+
{ }
965977
};
966978

967979
static struct clk_rcg2 camcc_ife_2_csid_clk_src = {
@@ -984,6 +996,7 @@ static const struct freq_tbl ftbl_camcc_ife_3_clk_src[] = {
984996
F(558000000, P_CAMCC_PLL6_OUT_EVEN, 1, 0, 0),
985997
F(637000000, P_CAMCC_PLL6_OUT_EVEN, 1, 0, 0),
986998
F(760000000, P_CAMCC_PLL6_OUT_EVEN, 1, 0, 0),
999+
{ }
9871000
};
9881001

9891002
static struct clk_rcg2 camcc_ife_3_clk_src = {
@@ -1020,6 +1033,7 @@ static const struct freq_tbl ftbl_camcc_ife_lite_0_clk_src[] = {
10201033
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
10211034
F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0),
10221035
F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0),
1036+
{ }
10231037
};
10241038

10251039
static struct clk_rcg2 camcc_ife_lite_0_clk_src = {
@@ -1140,6 +1154,7 @@ static const struct freq_tbl ftbl_camcc_ipe_0_clk_src[] = {
11401154
F(475000000, P_CAMCC_PLL1_OUT_EVEN, 1, 0, 0),
11411155
F(520000000, P_CAMCC_PLL1_OUT_EVEN, 1, 0, 0),
11421156
F(600000000, P_CAMCC_PLL1_OUT_EVEN, 1, 0, 0),
1157+
{ }
11431158
};
11441159

11451160
static struct clk_rcg2 camcc_ipe_0_clk_src = {
@@ -1163,6 +1178,7 @@ static const struct freq_tbl ftbl_camcc_jpeg_clk_src[] = {
11631178
F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0),
11641179
F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0),
11651180
F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0),
1181+
{ }
11661182
};
11671183

11681184
static struct clk_rcg2 camcc_jpeg_clk_src = {
@@ -1184,6 +1200,7 @@ static const struct freq_tbl ftbl_camcc_lrme_clk_src[] = {
11841200
F(300000000, P_CAMCC_PLL0_OUT_EVEN, 2, 0, 0),
11851201
F(320000000, P_CAMCC_PLL7_OUT_ODD, 1, 0, 0),
11861202
F(400000000, P_CAMCC_PLL0_OUT_MAIN, 3, 0, 0),
1203+
{ }
11871204
};
11881205

11891206
static struct clk_rcg2 camcc_lrme_clk_src = {
@@ -1204,6 +1221,7 @@ static const struct freq_tbl ftbl_camcc_mclk0_clk_src[] = {
12041221
F(19200000, P_BI_TCXO, 1, 0, 0),
12051222
F(24000000, P_CAMCC_PLL2_OUT_EARLY, 10, 1, 4),
12061223
F(64000000, P_CAMCC_PLL2_OUT_EARLY, 15, 0, 0),
1224+
{ }
12071225
};
12081226

12091227
static struct clk_rcg2 camcc_mclk0_clk_src = {
@@ -1320,6 +1338,7 @@ static struct clk_rcg2 camcc_mclk7_clk_src = {
13201338

13211339
static const struct freq_tbl ftbl_camcc_sleep_clk_src[] = {
13221340
F(32000, P_SLEEP_CLK, 1, 0, 0),
1341+
{ }
13231342
};
13241343

13251344
static struct clk_rcg2 camcc_sleep_clk_src = {
@@ -1339,6 +1358,7 @@ static struct clk_rcg2 camcc_sleep_clk_src = {
13391358
static const struct freq_tbl ftbl_camcc_slow_ahb_clk_src[] = {
13401359
F(19200000, P_BI_TCXO, 1, 0, 0),
13411360
F(80000000, P_CAMCC_PLL7_OUT_EVEN, 6, 0, 0),
1361+
{ }
13421362
};
13431363

13441364
static struct clk_rcg2 camcc_slow_ahb_clk_src = {
@@ -1357,6 +1377,7 @@ static struct clk_rcg2 camcc_slow_ahb_clk_src = {
13571377

13581378
static const struct freq_tbl ftbl_camcc_xo_clk_src[] = {
13591379
F(19200000, P_BI_TCXO, 1, 0, 0),
1380+
{ }
13601381
};
13611382

13621383
static struct clk_rcg2 camcc_xo_clk_src = {

0 commit comments

Comments
 (0)