From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaehoon Chung Date: Tue, 13 Jan 2015 13:10:44 +0900 Subject: [U-Boot] Question about compile warnings of exynos clock In-Reply-To: References: <54B481D0.2070508@samsung.com> <54B484B2.7080708@samsung.com> <54B4883E.6030806@samsung.com> Message-ID: <54B49AC4.3090106@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 01/13/2015 11:56 AM, Simon Glass wrote: > Hi, > > On 12 January 2015 at 18:51, Joonyoung Shim wrote: >> Hi, >> >> On 01/13/2015 11:47 AM, Simon Glass wrote: >>> Hi, >>> >>> On 12 January 2015 at 18:36, Joonyoung Shim wrote: >>>> Hi, >>>> >>>> On 01/13/2015 11:27 AM, Simon Glass wrote: >>>>> Hi, >>>>> >>>>> On 12 January 2015 at 18:24, Joonyoung Shim wrote: >>>>>> Hi, >>>>>> >>>>>> I found below compile warnings, >>>>>> >>>>>> CC arch/arm/cpu/armv7/exynos/clock.o >>>>>> arch/arm/cpu/armv7/exynos/clock.c: In function ?clock_get_periph_rate?: >>>>>> arch/arm/cpu/armv7/exynos/clock.c:265:47: warning: array subscript is above array bounds [-Warray-bounds] >>>>>> struct clk_bit_info *bit_info = &clk_bit_info[peripheral]; >>>>>> ^ >>>>>> arch/arm/cpu/armv7/exynos/clock.c:265:47: warning: array subscript is above array bounds [-Warray-bounds] >>>>>> >>>>>> ... >>>>>>> static unsigned long exynos5_get_periph_rate(int peripheral) >>>>>>> { >>>>>>> struct clk_bit_info *bit_info = &clk_bit_info[peripheral]; >>>>>>> >>>>>> >>>>>> This can access out of bounds of clk_bit_info[] array from >>>>>> exynos5_get_periph_rate(). The peripheral value comes from >>>>>> enum periph_id but it gets out of count clk_bit_info[] array. >>>>>> >>>>>> So, i don't think exynos5_get_periph_rate is working correctly. >>>>>> Currently, exynos5_get_periph_rate is used by clock_get_periph_rate only >>>>>> from get_pwm_clk. >>>>>> >>>>>> Is it ongoing to work for generic api to get the clk freq? If not, >>>>>> let's remove exynos5_get_periph_rate and clock_get_periph_rate. >>>>> >>>>> That's going in the wrong direction - these functions make the code >>>>> much easier to follow and refactor. We should remove get_pwm_clk(), >>>>> get_mmc_clk() etc. and use generic functions instead. >>>>> >>>> >>>> I know, but current codes are wrong, so first i want to correct it even >>>> if it is old way because it's really easy. And then we can go to generic >>>> functions. >>> >>> So not remove the generic functions? >>> >>> Is it this line which is broken? >>> >>> clock_get_periph_rate(PERIPH_ID_PWM0); >>> >>> If so, it seems like everything else uses its own function. It should >>> all move easily to the generic function I think. >>> >> >> The basic problem is the generic function is wrong. > > Oh dear, does it not work for anything? I have posted the patch relevant to this. I removed the generic peripheral clock API. It's not used anywhere. Just get clock for pwm0. how about? https://patchwork.ozlabs.org/patch/426535/ Best Regards, Jaehoon Chung > > Regards, > Simon > _______________________________________________ > U-Boot mailing list > U-Boot at lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot >