Hi, > + > +long exynos_ufs_calc_time_cntr(struct exynos_ufs *ufs, long period) > +{ > + const int precise = 10; > + long pclk_rate = ufs->pclk_rate; > + long clk_period, fraction; > + > + clk_period = UNIPRO_PCLK_PERIOD(ufs); > + fraction = ((NSEC_PER_SEC % pclk_rate) * precise) / pclk_rate; > + > + return (period * precise) / ((clk_period * precise) + fraction); > +} This helper essentially calculates a factor f, and returns period x f. Why not do that regardless of period? > +extern long exynos_ufs_calc_time_cntr(struct exynos_ufs *, long); Why this factor needed to be exported?