]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ARM: imx: imx8mp: fix enable_i2c_clk
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Wed, 22 Mar 2023 14:42:05 +0000 (15:42 +0100)
committerStefano Babic <sbabic@denx.de>
Thu, 30 Mar 2023 11:47:04 +0000 (13:47 +0200)
In order for i2c_num==4 and 5 to stay invalid for non-imx8mp SOCs, the
i2c_ccgr[] array must be sized by the number of initializers present,
not with a hard-coded 6 which would implicitly initialize the last two
elements with zeroes.

Also, the bounds check is off-by-one.

Fixes: c92c3a4453b8 "ARM: imx: imx8mp: Enable support for i2c5 and i2c6 on i.MX8MP"
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
arch/arm/mach-imx/imx8m/clock_imx8mm.c

index 32f8623f2352a421f360ae740d7f97bfcbc79520..22e954b4624994086bf8f5fa3c72edac3481b14c 100644 (file)
@@ -37,14 +37,14 @@ void enable_ocotp_clk(unsigned char enable)
 
 int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
 {
-       u8 i2c_ccgr[6] = {
+       u8 i2c_ccgr[] = {
                        CCGR_I2C1, CCGR_I2C2, CCGR_I2C3, CCGR_I2C4,
 #if (IS_ENABLED(CONFIG_IMX8MP))
                        CCGR_I2C5_8MP, CCGR_I2C6_8MP
 #endif
        };
 
-       if (i2c_num > ARRAY_SIZE(i2c_ccgr))
+       if (i2c_num >= ARRAY_SIZE(i2c_ccgr))
                return -EINVAL;
 
        clock_enable(i2c_ccgr[i2c_num], !!enable);