Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/gpu/drm/radeon/btc_dpm.c btc_get_valid_mclk() -> btc_find_valid_clock()

Type Parameter Key Value
PARAM_VALUE 0 clocks 4096-ptr_max
DATA_SOURCE 1 max_clock $1
DATA_SOURCE 2 requested_clock $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rdev->pm.mclk_lock
LOCK2 &rdev->pm.mutex
LOCK2 &rdev->ring_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rdev->exclusive_lock
TYPE_LOCK (struct radeon_device)->ring_lock
TYPE_LOCK (struct radeon_pm)->mclk_lock
TYPE_LOCK (struct radeon_pm)->mutex

drivers/gpu/drm/radeon/btc_dpm.c btc_get_valid_sclk() -> btc_find_valid_clock()

Type Parameter Key Value
PARAM_VALUE 0 clocks 4096-ptr_max
DATA_SOURCE 1 max_clock $1
DATA_SOURCE 2 requested_clock $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rdev->pm.mclk_lock
HALF_LOCKED2 &rdev->pm.mutex
HALF_LOCKED2 &rdev->ring_lock

drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c btc_get_valid_mclk() -> btc_find_valid_clock()

Type Parameter Key Value
PARAM_VALUE 0 clocks 4096-ptr_max
DATA_SOURCE 1 max_clock $1
DATA_SOURCE 2 requested_clock $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &adev->pm.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct amdgpu_pm)->mutex

drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c btc_get_valid_sclk() -> btc_find_valid_clock()

Type Parameter Key Value
PARAM_VALUE 0 clocks 4096-ptr_max
DATA_SOURCE 1 max_clock $1
DATA_SOURCE 2 requested_clock $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &adev->pm.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct amdgpu_pm)->mutex