Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 21 files:

Smatch caller information:

lib/math/tests/rational_kunit.c rational_test() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 3391670006945918976
PARAM_VALUE 4 *best_numerator 0
PARAM_VALUE 5 best_denominator 537680186059730944
PARAM_VALUE 5 *best_denominator 0
NOCHECK_CALL

drivers/gpu/drm/msm/dp/dp_ctrl.c msm_dp_ctrl_config_msa() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 270000,405000,450000,675000,810000,900000,1350000,2025000,2700000,4050000
PARAM_VALUE 2 max_numerator u16max
PARAM_VALUE 3 max_denominator u16max
PARAM_VALUE 4 best_numerator 6094938035153334272
PARAM_VALUE 5 best_denominator 5339635174329487360
DATA_SOURCE 1 given_denominator $2
NOCHECK_CALL
UNITS 1 given_denominator unit_byte

drivers/media/platform/amphion/venc.c venc_s_parm() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 6449121891991396352
PARAM_VALUE 5 best_denominator 3013442697065619456
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 given_numerator 1-u32max[u]
USER_DATA 1 given_denominator 1-u32max[u]
USER_DATA 2 max_numerator 1-u32max[u]
USER_DATA 3 max_denominator 1-u32max[u]
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte
UNITS 2 max_numerator unit_byte
UNITS 3 max_denominator unit_byte

drivers/clk/qcom/clk-rcg2.c clk_rcg2_dp_determine_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 4615732476971569152
PARAM_VALUE 5 best_denominator 3923570070886682624
CAPPED_DATA 2 max_numerator 1
CAPPED_DATA 3 max_denominator 1
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
NOSPEC 1 given_denominator
NOSPEC 1 given_denominator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
HOST_DATA 1 given_denominator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
USER_DATA 1 given_denominator 0-u64max
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte

drivers/clk/qcom/clk-rcg2.c clk_rcg2_dp_set_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 7587654836087087104
PARAM_VALUE 5 best_denominator 543626412230438912
CAPPED_DATA 2 max_numerator 1
CAPPED_DATA 3 max_denominator 1
DATA_SOURCE 0 given_numerator $2
DATA_SOURCE 1 given_denominator $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/clk/ingenic/x1000-cgu.c x1000_i2spll_calc_m_n_od() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 2685419596931579904
PARAM_VALUE 5 best_denominator 1566086331440713728
CAPPED_DATA 2 max_numerator 1
CAPPED_DATA 2 max_numerator 1
CAPPED_DATA 3 max_denominator 1
CAPPED_DATA 3 max_denominator 1
DATA_SOURCE 0 given_numerator $1
DATA_SOURCE 1 given_denominator $2
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
NOSPEC 1 given_denominator
NOSPEC 1 given_denominator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
HOST_DATA 1 given_denominator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
USER_DATA 1 given_denominator 0-u64max

drivers/clk/clk-fractional-divider.c clk_fd_set_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 6728303752534978560
PARAM_VALUE 5 best_denominator 4113544134496878592
DATA_SOURCE 0 given_numerator $1
DATA_SOURCE 1 given_denominator $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/clk/clk-fractional-divider.c clk_fractional_divider_general_approximation() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 72130107199692800,2426652948943613952,7174031171218358272,8375687011754790912,8384941675111460864
PARAM_VALUE 5 best_denominator 2185744096364060672,3061978560695922688,4619376598232485888,7964449212978905088,8542823875096449024
DATA_SOURCE 0 given_numerator $1 [m]
DATA_SOURCE 4 best_numerator $3
DATA_SOURCE 5 best_denominator $4
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
NOSPEC 1 given_denominator
NOSPEC 1 given_denominator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 1-u64max[c]
HOST_DATA 1 given_denominator 0-u64max[c]
USER_DATA 0 given_numerator 1-u64max[c]
USER_DATA 1 given_denominator 0-u64max
UNITS 0 given_numerator unit_byte

drivers/media/i2c/ds90ub953.c ub953_calc_clkout_ub953() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator 31
PARAM_VALUE 3 max_denominator 255
PARAM_VALUE 4 best_numerator 295536997406130176
PARAM_VALUE 5 best_denominator 2471763437613178880
DATA_SOURCE 0 given_numerator $1
DATA_SOURCE 1 given_denominator r div_u64
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
UNITS 0 given_numerator unit_byte

drivers/media/i2c/ds90ub953.c ub953_calc_clkout_ub971() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator 31
PARAM_VALUE 3 max_denominator 255
PARAM_VALUE 4 best_numerator 8339795763713019904
PARAM_VALUE 5 best_denominator 1387966048052121600
DATA_SOURCE 0 given_numerator $1
DATA_SOURCE 1 given_denominator r div_u64
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
UNITS 0 given_numerator unit_byte

drivers/clk/clk-si5351.c si5351_msynth_determine_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 1-u64max
PARAM_VALUE 1 given_denominator 1000000
PARAM_VALUE 2 max_numerator 1048574
PARAM_VALUE 3 max_denominator 1048575
PARAM_VALUE 4 best_numerator 5396247774544203776
PARAM_VALUE 4 *best_numerator 0
PARAM_VALUE 5 best_denominator 997400148591157248
PARAM_VALUE 5 *best_denominator 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 1-149999999[c]
USER_DATA 0 given_numerator 1-149999999[c]

drivers/clk/clk-si5351.c si5351_pll_determine_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 1-u64max
PARAM_VALUE 1 given_denominator 1000000
PARAM_VALUE 2 max_numerator 1048574
PARAM_VALUE 3 max_denominator 1048575
PARAM_VALUE 4 best_numerator 4873659667332526080
PARAM_VALUE 4 *best_numerator 0
PARAM_VALUE 5 best_denominator 2999121877773049856
PARAM_VALUE 5 *best_denominator 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 1-900000000000000[c]
USER_DATA 0 given_numerator 1-900000000000000

drivers/media/v4l2-core/v4l2-dv-timings.c v4l2_calc_timeperframe() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 1-u32max
PARAM_VALUE 1 given_denominator 100
PARAM_VALUE 2 max_numerator 1-u32max
PARAM_VALUE 3 max_denominator 100
PARAM_VALUE 4 best_numerator 5090229772655628288
PARAM_VALUE 5 best_denominator 2814443054941999104
NOCHECK_CALL
HALF_LOCKED2 lock
HALF_LOCKED2 req_queue_lock

drivers/media/v4l2-core/v4l2-dv-timings.c v4l2_dv_timings_aspect_ratio() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 4 best_numerator 3865709373097918464
PARAM_VALUE 5 best_denominator 8222678240585805824
NOCHECK_CALL
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte
UNITS 2 max_numerator unit_byte
UNITS 3 max_denominator unit_byte
HALF_LOCKED2 lock
HALF_LOCKED2 req_queue_lock

drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c rk_hdptx_phy_clk_pll_calc() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 0-2008000,4292983296-u32max
PARAM_VALUE 1 given_denominator 16500,18000-46875
PARAM_VALUE 2 max_numerator 127
PARAM_VALUE 3 max_denominator 255
PARAM_VALUE 4 best_numerator 2047068960873787392
PARAM_VALUE 4 *best_numerator 0
PARAM_VALUE 5 best_denominator 3162295430866157568
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &phy->mutex

drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c rk_hdptx_phy_clk_pll_calc() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 1-3984000
PARAM_VALUE 1 given_denominator 264000,288000-750000
PARAM_VALUE 2 max_numerator 127
PARAM_VALUE 3 max_denominator 255
PARAM_VALUE 4 best_numerator 64785851452944384
PARAM_VALUE 5 best_denominator 3377312696033017856
FUZZY_MAX 1 given_denominator 264000
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &phy->mutex

drivers/tty/serial/8250/8250_mid.c mid8250_set_termios() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator 16777215
PARAM_VALUE 3 max_denominator 16777215
PARAM_VALUE 4 best_numerator 5626149902412668928
PARAM_VALUE 5 best_denominator 8851203272992280576
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte
HALF_LOCKED2 &port->mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &console_mutex

drivers/tty/serial/imx.c imx_uart_set_termios() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 0-481036337040
PARAM_VALUE 2 max_numerator 65536
PARAM_VALUE 3 max_denominator 65536
PARAM_VALUE 4 best_numerator 4654024010253684736
PARAM_VALUE 5 best_denominator 5032081888513306624
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 16-30064770848,68719476720-481036337040[c]
USER_DATA 0 given_numerator 16-240518168464[c]
UNITS 1 given_denominator unit_byte
LOCK2 &sport->port.lock
LOCK2 flags
HALF_LOCKED2 &port->mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &console_mutex
TYPE_LOCK (struct uart_port)->lock

drivers/tty/serial/8250/8250_lpss.c byt_set_termios() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 0-858993459000000000
PARAM_VALUE 1 given_denominator 44236800,100000000,200000000
PARAM_VALUE 2 max_numerator s16max
PARAM_VALUE 3 max_denominator s16max
PARAM_VALUE 4 best_numerator 9142905650411462656
PARAM_VALUE 5 best_denominator 2465361975786909696
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &port->mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &console_mutex

sound/soc/rockchip/rockchip_pdm.c rockchip_pdm_hw_params() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator u16max
PARAM_VALUE 3 max_denominator u16max
PARAM_VALUE 4 best_numerator 7374359825060663296
PARAM_VALUE 5 best_denominator 4177631116427124736
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/iio/adc/ad7768-1.c ad7768_fill_scale_tbl() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 1 given_denominator 1000,10000000
PARAM_VALUE 2 max_numerator s32max
PARAM_VALUE 3 max_denominator s32max
PARAM_VALUE 4 best_numerator 8380558136187486208
PARAM_VALUE 5 best_denominator 2095639216780877824
FUZZY_MAX 1 given_denominator 1000
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex

drivers/media/platform/amphion/vpu_malone.c vpu_malone_unpack_seq_hdr() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 1000
PARAM_VALUE 1 given_denominator 1-u32max
PARAM_VALUE 2 max_numerator 1000
PARAM_VALUE 3 max_denominator 1-u32max
PARAM_VALUE 4 best_numerator 1683009952623562752
PARAM_VALUE 5 best_denominator 7953710927020097536
NOCHECK_CALL
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte
UNITS 2 max_numerator unit_byte
UNITS 3 max_denominator unit_byte
LOCK2 &pool->lock

drivers/clk/spacemit/ccu_ddn.c ccu_ddn_calc_best_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator 0-4294901760
PARAM_VALUE 3 max_denominator 0,8191,s16max,u16max,536805376
PARAM_VALUE 4 best_numerator 3653059013303447552,8851782685875421184
PARAM_VALUE 5 best_denominator 3063826695217152,7600231901548584960
DATA_SOURCE 0 given_numerator $1
DATA_SOURCE 4 best_numerator $4
DATA_SOURCE 5 best_denominator $3
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
UNITS 0 given_numerator unit_byte

drivers/clk/clk-k230.c k230_clk_find_approximate_mul_div() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 1-u64max
PARAM_VALUE 1 given_denominator 1-u64max
PARAM_VALUE 2 max_numerator 0-u32max
PARAM_VALUE 3 max_denominator 0-u32max
PARAM_VALUE 4 best_numerator 3999185295555973120
PARAM_VALUE 5 best_denominator 3626648332420747264
DATA_SOURCE 0 given_numerator $4
DATA_SOURCE 1 given_denominator $5
DATA_SOURCE 2 max_numerator $1
DATA_SOURCE 3 max_denominator $3
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
NOSPEC 1 given_denominator
NOSPEC 1 given_denominator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 1-u64max[c]
HOST_DATA 1 given_denominator 1-u64max[c]
USER_DATA 0 given_numerator 1-u64max
USER_DATA 1 given_denominator 1-u64max
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte

drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_audio_set_mai_clock() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 1 given_denominator 0
PARAM_VALUE 2 max_numerator 16777215
PARAM_VALUE 3 max_denominator 256
PARAM_VALUE 4 best_numerator 7186147829329518592
PARAM_VALUE 5 best_denominator 3039881761500577792
DATA_SOURCE 0 given_numerator r clk_get_rate
DATA_SOURCE 1 given_denominator $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vc4_hdmi->mutex
LOCK2 global &drm_unplug_srcu
TYPE_LOCK (struct vc4_hdmi)->mutex

drivers/clk/clk-cdce706.c cdce706_divider_determine_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator 1
PARAM_VALUE 3 max_denominator 127
PARAM_VALUE 4 best_numerator 8770493188066930688
PARAM_VALUE 5 best_denominator 7930523946759991296
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
NOSPEC 1 given_denominator
NOSPEC 1 given_denominator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
HOST_DATA 1 given_denominator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
USER_DATA 1 given_denominator 0-u64max
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte

drivers/clk/clk-cdce706.c cdce706_divider_determine_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 0 given_numerator 80000000-u64max
PARAM_VALUE 2 max_numerator 4095
PARAM_VALUE 3 max_denominator 511
PARAM_VALUE 4 best_numerator 5924316883026841600
PARAM_VALUE 5 best_denominator 238392393960652800
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/clk/clk-cdce706.c cdce706_pll_determine_rate() -> rational_best_approximation()

Type Parameter Key Value
PARAM_VALUE 2 max_numerator 4095
PARAM_VALUE 3 max_denominator 511
PARAM_VALUE 4 best_numerator 3864786644838203392
PARAM_VALUE 5 best_denominator 647047540756971520
NOSPEC 0 given_numerator
NOSPEC 0 given_numerator
NOSPEC 1 given_denominator
NOSPEC 1 given_denominator
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 given_numerator 0-u64max[c]
HOST_DATA 1 given_denominator 0-u64max[c]
USER_DATA 0 given_numerator 0-u64max
USER_DATA 1 given_denominator 0-u64max
UNITS 0 given_numerator unit_byte
UNITS 1 given_denominator unit_byte