* [PATCH 00/40] [Set 9] Rid W=1 warnings from GPU
@ 2020-11-24 19:37 Lee Jones
2020-11-24 19:37 ` [PATCH 01/40] drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device' Lee Jones
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Lee Jones @ 2020-11-24 19:37 UTC (permalink / raw)
To: lee.jones
Cc: linux-kernel, Alex Deucher, Alex Sierra, amd-gfx,
Chandan Uddaraju, Christian König, Daniel Vetter,
David Airlie, dri-devel, Evan Quan, freedreno, Hawking Zhang,
Kuogee Hsieh, linaro-mm-sig, linux-arm-msm, linux-media,
Luben Tuikov, Nirmoy Das, Rob Clark, Sean Paul, Sumit Semwal,
Veerabadhran G, Xiaojian Du, Zhigang Luo
This set is part of a larger effort attempting to clean-up W=1
kernel builds, which are currently overwhelmingly riddled with
niggly little warnings.
730 out of 5000 left.
Lee Jones (40):
drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device'
drm/amd/amdgpu/gmc_v10_0: Suppy some missing function doc descriptions
drm/msm/adreno/a6xx_gpu_state: Make some local functions static
drm/amd/amdgpu/iceland_ih: Add missing function param descriptions for
'ih' and 'entry'
drm/amd/amdgpu/tonga_ih: Provide some missing descriptions for 'ih'
and 'entry'
drm/amd/amdgpu/cz_ih: Add missing function param descriptions for 'ih'
and 'entry'
drm/amd/amdgpu/amdgpu_psp: Make local function
'parse_ta_bin_descriptor' static
drm/msm/dp/dp_ctrl: Move 'tu' from the stack to the heap
drm/amd/amdgpu/vega10_ih: Add descriptions for 'ih' and 'entry'
drm/amd/amdgpu/navi10_ih: Add descriptions for 'ih' and 'entry'
drm/amd/amdgpu/psp_v11_0: Make local function
'psp_v11_0_wait_for_bootloader()' static
drm/amd/amdgpu/dce_v10_0: Supply description for function param
'async'
drm/amd/amdgpu/dce_v11_0: Supply description for function param
'async'
drm/amd/amdgpu/gfx_v9_0: Make called-by-reference only function static
drm/amd/amdgpu/gfx_v8_0: Functions must follow directly after their
headers
drm/amd/amdgpu/gfx_v10_0: Remove a bunch of set but unused variables
drm/amd/amdgpu/sdma_v2_4: Fix a bunch of kernel-doc function
documentation issues
drm/amd/amdgpu/sdma_v3_0: Fix a bunch of kernel-doc function
documentation issues
drm/amd/amdgpu/sdma_v3_0: Fix incorrect param doc-rot issue
drm/amd/amdgpu/uvd_v5_0: Fix a bunch of kernel-doc function
documentation issues
drm/amd/amdgpu/sdma_v4_0: Repair a bunch of kernel-doc problems
drm/amd/amdgpu/amdgpu_uvd: Fix some function documentation headers
drm/amd/amdgpu/sdma_v5_0: Provide some missing and repair other
function params
drm/amd/amdgpu/sdma_v5_2: Provide some missing and repair other
function params
drm/amd/amdgpu/amdgpu_vce: Provide some missing and repair other
function params
drm/amd/amdgpu/uvd_v6_0: Fix a bunch of kernel-doc function
documentation issues
drm/amd/amdgpu/uvd_v7_0: Fix a bunch of kernel-doc function
documentation issues
drm/amd/amdgpu/gfx_v10_0: Make local function 'gfx_v10_0_rlc_stop()'
static
drm/amd/amdgpu/vcn_v1_0: Fix a few kernel-doc misdemeanours
drm/amd/amdgpu/jpeg_v1_0: Add some missing function param descriptions
drm/amd/amdgpu/jpeg_v2_0: Add some missing kernel-doc descriptions
drm/amd/amdgpu/vcn_v2_0: Fix a few kernel-doc misdemeanours
drm/amd/amdgpu/vcn_v3_0: Remove unused variable 'direct_poll' from
'vcn_v3_0_start_sriov()'
drm/amd/amdgpu/amdgpu_acp: Fix doc-rot issues pertaining to a couple
of 'handle' params
drm/amd/pm/swsmu/smu11/vangogh_ppt: Make local function
'vangogh_set_default_dpm_tables()' static
drm/amd/pm/inc/smu_v11_0: Mark 'smu11_thermal_policy' as
__maybe_unused
drm/amd/pm/swsmu/smu12/renoir_ppt: Demote kernel-doc formatting abuse
drm/amd/pm/swsmu/smu11/navi10_ppt: Remove unused 'struct i2c_algorithm
navi10_i2c_algo'
drm/amd/pm/powerplay/smumgr/fiji_smumgr: Remove unused variable
'result'
drm/amd/amdgpu/amdgpu_uvd: Add description for
amdgpu_uvd_cs_msg_decode()'s 'buf_sizes' param
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 19 +-
drivers/gpu/drm/amd/amdgpu/cz_ih.c | 4 +
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 1 +
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 1 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 11 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 4 +
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c | 7 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 5 +
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 16 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 16 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 22 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 19 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 19 +-
drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 4 +
drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 21 +-
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 21 +-
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 14 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 4 -
drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 5 +
drivers/gpu/drm/amd/pm/inc/smu_v11_0.h | 3 +-
.../drm/amd/pm/powerplay/smumgr/fiji_smumgr.c | 13 +-
.../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 204 -----------
.../gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 4 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 6 +-
drivers/gpu/drm/msm/dp/dp_ctrl.c | 338 +++++++++---------
drivers/gpu/drm/msm/msm_gem_shrinker.c | 4 +-
37 files changed, 378 insertions(+), 474 deletions(-)
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Alex Sierra <alex.sierra@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: Chandan Uddaraju <chandanu@codeaurora.org>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Cc: Evan Quan <evan.quan@amd.com>
Cc: freedreno@lists.freedesktop.org
Cc: Hawking Zhang <Hawking.Zhang@amd.com>
Cc: Kuogee Hsieh <khsieh@codeaurora.org>
Cc: linaro-mm-sig@lists.linaro.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: Luben Tuikov <luben.tuikov@amd.com>
Cc: Nirmoy Das <nirmoy.das@amd.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Veerabadhran G <vegopala@amd.com>
Cc: Xiaojian Du <Xiaojian.Du@amd.com>
Cc: Zhigang Luo <zhigang.luo@amd.com>
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 01/40] drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device'
2020-11-24 19:37 [PATCH 00/40] [Set 9] Rid W=1 warnings from GPU Lee Jones
@ 2020-11-24 19:37 ` Lee Jones
2020-11-24 19:37 ` [PATCH 03/40] drm/msm/adreno/a6xx_gpu_state: Make some local functions static Lee Jones
2020-11-24 19:37 ` [PATCH 08/40] drm/msm/dp/dp_ctrl: Move 'tu' from the stack to the heap Lee Jones
2 siblings, 0 replies; 4+ messages in thread
From: Lee Jones @ 2020-11-24 19:37 UTC (permalink / raw)
To: lee.jones
Cc: linux-kernel, Rob Clark, Sean Paul, David Airlie, Daniel Vetter,
linux-arm-msm, dri-devel, freedreno
Fixes the following W=1 kernel build warning(s):
drivers/gpu/drm/msm/msm_gem_shrinker.c:108: warning: Function parameter or member 'dev' not described in 'msm_gem_shrinker_init'
drivers/gpu/drm/msm/msm_gem_shrinker.c:108: warning: Excess function parameter 'dev_priv' description in 'msm_gem_shrinker_init'
drivers/gpu/drm/msm/msm_gem_shrinker.c:126: warning: Function parameter or member 'dev' not described in 'msm_gem_shrinker_cleanup'
drivers/gpu/drm/msm/msm_gem_shrinker.c:126: warning: Excess function parameter 'dev_priv' description in 'msm_gem_shrinker_cleanup'
Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: linux-arm-msm@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: freedreno@lists.freedesktop.org
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
drivers/gpu/drm/msm/msm_gem_shrinker.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_gem_shrinker.c b/drivers/gpu/drm/msm/msm_gem_shrinker.c
index 6f4b1355725f4..caf032e5bf2f1 100644
--- a/drivers/gpu/drm/msm/msm_gem_shrinker.c
+++ b/drivers/gpu/drm/msm/msm_gem_shrinker.c
@@ -100,7 +100,7 @@ msm_gem_shrinker_vmap(struct notifier_block *nb, unsigned long event, void *ptr)
/**
* msm_gem_shrinker_init - Initialize msm shrinker
- * @dev_priv: msm device
+ * @dev: drm device
*
* This function registers and sets up the msm shrinker.
*/
@@ -118,7 +118,7 @@ void msm_gem_shrinker_init(struct drm_device *dev)
/**
* msm_gem_shrinker_cleanup - Clean up msm shrinker
- * @dev_priv: msm device
+ * @dev: drm device
*
* This function unregisters the msm shrinker.
*/
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 03/40] drm/msm/adreno/a6xx_gpu_state: Make some local functions static
2020-11-24 19:37 [PATCH 00/40] [Set 9] Rid W=1 warnings from GPU Lee Jones
2020-11-24 19:37 ` [PATCH 01/40] drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device' Lee Jones
@ 2020-11-24 19:37 ` Lee Jones
2020-11-24 19:37 ` [PATCH 08/40] drm/msm/dp/dp_ctrl: Move 'tu' from the stack to the heap Lee Jones
2 siblings, 0 replies; 4+ messages in thread
From: Lee Jones @ 2020-11-24 19:37 UTC (permalink / raw)
To: lee.jones
Cc: linux-kernel, Rob Clark, Sean Paul, David Airlie, Daniel Vetter,
linux-arm-msm, dri-devel, freedreno
Fixes the following W=1 kernel build warning(s):
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:83:7: warning: no previous prototype for ‘state_kcalloc’ [-Wmissing-prototypes]
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:95:7: warning: no previous prototype for ‘state_kmemdup’ [-Wmissing-prototypes]
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:947:6: warning: no previous prototype for ‘a6xx_gpu_state_destroy’ [-Wmissing-prototypes]
Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: linux-arm-msm@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: freedreno@lists.freedesktop.org
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index e9ede19193b0e..c1699b4f9a897 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -80,7 +80,7 @@ struct a6xx_state_memobj {
unsigned long long data[];
};
-void *state_kcalloc(struct a6xx_gpu_state *a6xx_state, int nr, size_t objsize)
+static void *state_kcalloc(struct a6xx_gpu_state *a6xx_state, int nr, size_t objsize)
{
struct a6xx_state_memobj *obj =
kzalloc((nr * objsize) + sizeof(*obj), GFP_KERNEL);
@@ -92,7 +92,7 @@ void *state_kcalloc(struct a6xx_gpu_state *a6xx_state, int nr, size_t objsize)
return &obj->data;
}
-void *state_kmemdup(struct a6xx_gpu_state *a6xx_state, void *src,
+static void *state_kmemdup(struct a6xx_gpu_state *a6xx_state, void *src,
size_t size)
{
void *dst = state_kcalloc(a6xx_state, 1, size);
@@ -944,7 +944,7 @@ struct msm_gpu_state *a6xx_gpu_state_get(struct msm_gpu *gpu)
return &a6xx_state->base;
}
-void a6xx_gpu_state_destroy(struct kref *kref)
+static void a6xx_gpu_state_destroy(struct kref *kref)
{
struct a6xx_state_memobj *obj, *tmp;
struct msm_gpu_state *state = container_of(kref,
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 08/40] drm/msm/dp/dp_ctrl: Move 'tu' from the stack to the heap
2020-11-24 19:37 [PATCH 00/40] [Set 9] Rid W=1 warnings from GPU Lee Jones
2020-11-24 19:37 ` [PATCH 01/40] drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device' Lee Jones
2020-11-24 19:37 ` [PATCH 03/40] drm/msm/adreno/a6xx_gpu_state: Make some local functions static Lee Jones
@ 2020-11-24 19:37 ` Lee Jones
2 siblings, 0 replies; 4+ messages in thread
From: Lee Jones @ 2020-11-24 19:37 UTC (permalink / raw)
To: lee.jones
Cc: linux-kernel, Rob Clark, Sean Paul, David Airlie, Daniel Vetter,
Chandan Uddaraju, Kuogee Hsieh, linux-arm-msm, dri-devel,
freedreno
'struct tu_algo_data' is huge ~400 Bytes.
Fixes the following W=1 kernel build warning(s):
drivers/gpu/drm/msm/dp/dp_ctrl.c: In function ‘_dp_ctrl_calc_tu.constprop’:
drivers/gpu/drm/msm/dp/dp_ctrl.c:938:1: warning: the frame size of 1184 bytes is larger than 1024 bytes [-Wframe-larger-than=]
Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Chandan Uddaraju <chandanu@codeaurora.org>
Cc: Kuogee Hsieh <khsieh@codeaurora.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: freedreno@lists.freedesktop.org
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
drivers/gpu/drm/msm/dp/dp_ctrl.c | 338 ++++++++++++++++---------------
1 file changed, 171 insertions(+), 167 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c
index c569e97c82a6c..e3462f5d96d75 100644
--- a/drivers/gpu/drm/msm/dp/dp_ctrl.c
+++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c
@@ -614,7 +614,7 @@ static void _tu_valid_boundary_calc(struct tu_algo_data *tu)
static void _dp_ctrl_calc_tu(struct dp_tu_calc_input *in,
struct dp_vc_tu_mapping_table *tu_table)
{
- struct tu_algo_data tu;
+ struct tu_algo_data *tu;
int compare_result_1, compare_result_2;
u64 temp = 0;
s64 temp_fp = 0, temp1_fp = 0, temp2_fp = 0;
@@ -629,298 +629,300 @@ static void _dp_ctrl_calc_tu(struct dp_tu_calc_input *in,
uint EXTRA_PIXCLK_CYCLE_DELAY = 4;
uint HBLANK_MARGIN = 4;
- memset(&tu, 0, sizeof(tu));
+ tu = kzalloc(sizeof(*tu), GFP_KERNEL);
+ if (!tu)
+ return
- dp_panel_update_tu_timings(in, &tu);
+ dp_panel_update_tu_timings(in, tu);
- tu.err_fp = drm_fixp_from_fraction(1000, 1); /* 1000 */
+ tu->err_fp = drm_fixp_from_fraction(1000, 1); /* 1000 */
temp1_fp = drm_fixp_from_fraction(4, 1);
- temp2_fp = drm_fixp_mul(temp1_fp, tu.lclk_fp);
- temp_fp = drm_fixp_div(temp2_fp, tu.pclk_fp);
- tu.extra_buffer_margin = drm_fixp2int_ceil(temp_fp);
+ temp2_fp = drm_fixp_mul(temp1_fp, tu->lclk_fp);
+ temp_fp = drm_fixp_div(temp2_fp, tu->pclk_fp);
+ tu->extra_buffer_margin = drm_fixp2int_ceil(temp_fp);
- temp1_fp = drm_fixp_from_fraction(tu.bpp, 8);
- temp2_fp = drm_fixp_mul(tu.pclk_fp, temp1_fp);
- temp1_fp = drm_fixp_from_fraction(tu.nlanes, 1);
+ temp1_fp = drm_fixp_from_fraction(tu->bpp, 8);
+ temp2_fp = drm_fixp_mul(tu->pclk_fp, temp1_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->nlanes, 1);
temp2_fp = drm_fixp_div(temp2_fp, temp1_fp);
- tu.ratio_fp = drm_fixp_div(temp2_fp, tu.lclk_fp);
-
- tu.original_ratio_fp = tu.ratio_fp;
- tu.boundary_moderation_en = false;
- tu.upper_boundary_count = 0;
- tu.lower_boundary_count = 0;
- tu.i_upper_boundary_count = 0;
- tu.i_lower_boundary_count = 0;
- tu.valid_lower_boundary_link = 0;
- tu.even_distribution_BF = 0;
- tu.even_distribution_legacy = 0;
- tu.even_distribution = 0;
- tu.delay_start_time_fp = 0;
-
- tu.err_fp = drm_fixp_from_fraction(1000, 1);
- tu.n_err_fp = 0;
- tu.n_n_err_fp = 0;
-
- tu.ratio = drm_fixp2int(tu.ratio_fp);
- temp1_fp = drm_fixp_from_fraction(tu.nlanes, 1);
- div64_u64_rem(tu.lwidth_fp, temp1_fp, &temp2_fp);
+ tu->ratio_fp = drm_fixp_div(temp2_fp, tu->lclk_fp);
+
+ tu->original_ratio_fp = tu->ratio_fp;
+ tu->boundary_moderation_en = false;
+ tu->upper_boundary_count = 0;
+ tu->lower_boundary_count = 0;
+ tu->i_upper_boundary_count = 0;
+ tu->i_lower_boundary_count = 0;
+ tu->valid_lower_boundary_link = 0;
+ tu->even_distribution_BF = 0;
+ tu->even_distribution_legacy = 0;
+ tu->even_distribution = 0;
+ tu->delay_start_time_fp = 0;
+
+ tu->err_fp = drm_fixp_from_fraction(1000, 1);
+ tu->n_err_fp = 0;
+ tu->n_n_err_fp = 0;
+
+ tu->ratio = drm_fixp2int(tu->ratio_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->nlanes, 1);
+ div64_u64_rem(tu->lwidth_fp, temp1_fp, &temp2_fp);
if (temp2_fp != 0 &&
- !tu.ratio && tu.dsc_en == 0) {
- tu.ratio_fp = drm_fixp_mul(tu.ratio_fp, RATIO_SCALE_fp);
- tu.ratio = drm_fixp2int(tu.ratio_fp);
- if (tu.ratio)
- tu.ratio_fp = drm_fixp_from_fraction(1, 1);
+ !tu->ratio && tu->dsc_en == 0) {
+ tu->ratio_fp = drm_fixp_mul(tu->ratio_fp, RATIO_SCALE_fp);
+ tu->ratio = drm_fixp2int(tu->ratio_fp);
+ if (tu->ratio)
+ tu->ratio_fp = drm_fixp_from_fraction(1, 1);
}
- if (tu.ratio > 1)
- tu.ratio = 1;
+ if (tu->ratio > 1)
+ tu->ratio = 1;
- if (tu.ratio == 1)
+ if (tu->ratio == 1)
goto tu_size_calc;
- compare_result_1 = _tu_param_compare(tu.ratio_fp, const_p49_fp);
+ compare_result_1 = _tu_param_compare(tu->ratio_fp, const_p49_fp);
if (!compare_result_1 || compare_result_1 == 1)
compare_result_1 = 1;
else
compare_result_1 = 0;
- compare_result_2 = _tu_param_compare(tu.ratio_fp, const_p56_fp);
+ compare_result_2 = _tu_param_compare(tu->ratio_fp, const_p56_fp);
if (!compare_result_2 || compare_result_2 == 2)
compare_result_2 = 1;
else
compare_result_2 = 0;
- if (tu.dsc_en && compare_result_1 && compare_result_2) {
+ if (tu->dsc_en && compare_result_1 && compare_result_2) {
HBLANK_MARGIN += 4;
DRM_DEBUG_DP("Info: increase HBLANK_MARGIN to %d\n",
HBLANK_MARGIN);
}
tu_size_calc:
- for (tu.tu_size = 32; tu.tu_size <= 64; tu.tu_size++) {
- temp1_fp = drm_fixp_from_fraction(tu.tu_size, 1);
- temp2_fp = drm_fixp_mul(tu.ratio_fp, temp1_fp);
+ for (tu->tu_size = 32; tu->tu_size <= 64; tu->tu_size++) {
+ temp1_fp = drm_fixp_from_fraction(tu->tu_size, 1);
+ temp2_fp = drm_fixp_mul(tu->ratio_fp, temp1_fp);
temp = drm_fixp2int_ceil(temp2_fp);
temp1_fp = drm_fixp_from_fraction(temp, 1);
- tu.n_err_fp = temp1_fp - temp2_fp;
+ tu->n_err_fp = temp1_fp - temp2_fp;
- if (tu.n_err_fp < tu.err_fp) {
- tu.err_fp = tu.n_err_fp;
- tu.tu_size_desired = tu.tu_size;
+ if (tu->n_err_fp < tu->err_fp) {
+ tu->err_fp = tu->n_err_fp;
+ tu->tu_size_desired = tu->tu_size;
}
}
- tu.tu_size_minus1 = tu.tu_size_desired - 1;
+ tu->tu_size_minus1 = tu->tu_size_desired - 1;
- temp1_fp = drm_fixp_from_fraction(tu.tu_size_desired, 1);
- temp2_fp = drm_fixp_mul(tu.ratio_fp, temp1_fp);
- tu.valid_boundary_link = drm_fixp2int_ceil(temp2_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->tu_size_desired, 1);
+ temp2_fp = drm_fixp_mul(tu->ratio_fp, temp1_fp);
+ tu->valid_boundary_link = drm_fixp2int_ceil(temp2_fp);
- temp1_fp = drm_fixp_from_fraction(tu.bpp, 8);
- temp2_fp = tu.lwidth_fp;
+ temp1_fp = drm_fixp_from_fraction(tu->bpp, 8);
+ temp2_fp = tu->lwidth_fp;
temp2_fp = drm_fixp_mul(temp2_fp, temp1_fp);
- temp1_fp = drm_fixp_from_fraction(tu.valid_boundary_link, 1);
+ temp1_fp = drm_fixp_from_fraction(tu->valid_boundary_link, 1);
temp2_fp = drm_fixp_div(temp2_fp, temp1_fp);
- tu.n_tus = drm_fixp2int(temp2_fp);
+ tu->n_tus = drm_fixp2int(temp2_fp);
if ((temp2_fp & 0xFFFFFFFF) > 0xFFFFF000)
- tu.n_tus += 1;
+ tu->n_tus += 1;
- tu.even_distribution_legacy = tu.n_tus % tu.nlanes == 0 ? 1 : 0;
+ tu->even_distribution_legacy = tu->n_tus % tu->nlanes == 0 ? 1 : 0;
DRM_DEBUG_DP("Info: n_sym = %d, num_of_tus = %d\n",
- tu.valid_boundary_link, tu.n_tus);
+ tu->valid_boundary_link, tu->n_tus);
- temp1_fp = drm_fixp_from_fraction(tu.tu_size_desired, 1);
- temp2_fp = drm_fixp_mul(tu.original_ratio_fp, temp1_fp);
- temp1_fp = drm_fixp_from_fraction(tu.valid_boundary_link, 1);
+ temp1_fp = drm_fixp_from_fraction(tu->tu_size_desired, 1);
+ temp2_fp = drm_fixp_mul(tu->original_ratio_fp, temp1_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->valid_boundary_link, 1);
temp2_fp = temp1_fp - temp2_fp;
- temp1_fp = drm_fixp_from_fraction(tu.n_tus + 1, 1);
+ temp1_fp = drm_fixp_from_fraction(tu->n_tus + 1, 1);
temp2_fp = drm_fixp_mul(temp1_fp, temp2_fp);
temp = drm_fixp2int(temp2_fp);
if (temp && temp2_fp)
- tu.extra_bytes = drm_fixp2int_ceil(temp2_fp);
+ tu->extra_bytes = drm_fixp2int_ceil(temp2_fp);
else
- tu.extra_bytes = 0;
+ tu->extra_bytes = 0;
- temp1_fp = drm_fixp_from_fraction(tu.extra_bytes, 1);
- temp2_fp = drm_fixp_from_fraction(8, tu.bpp);
+ temp1_fp = drm_fixp_from_fraction(tu->extra_bytes, 1);
+ temp2_fp = drm_fixp_from_fraction(8, tu->bpp);
temp1_fp = drm_fixp_mul(temp1_fp, temp2_fp);
if (temp && temp1_fp)
- tu.extra_pclk_cycles = drm_fixp2int_ceil(temp1_fp);
+ tu->extra_pclk_cycles = drm_fixp2int_ceil(temp1_fp);
else
- tu.extra_pclk_cycles = drm_fixp2int(temp1_fp);
+ tu->extra_pclk_cycles = drm_fixp2int(temp1_fp);
- temp1_fp = drm_fixp_div(tu.lclk_fp, tu.pclk_fp);
- temp2_fp = drm_fixp_from_fraction(tu.extra_pclk_cycles, 1);
+ temp1_fp = drm_fixp_div(tu->lclk_fp, tu->pclk_fp);
+ temp2_fp = drm_fixp_from_fraction(tu->extra_pclk_cycles, 1);
temp1_fp = drm_fixp_mul(temp2_fp, temp1_fp);
if (temp1_fp)
- tu.extra_pclk_cycles_in_link_clk = drm_fixp2int_ceil(temp1_fp);
+ tu->extra_pclk_cycles_in_link_clk = drm_fixp2int_ceil(temp1_fp);
else
- tu.extra_pclk_cycles_in_link_clk = drm_fixp2int(temp1_fp);
+ tu->extra_pclk_cycles_in_link_clk = drm_fixp2int(temp1_fp);
- tu.filler_size = tu.tu_size_desired - tu.valid_boundary_link;
+ tu->filler_size = tu->tu_size_desired - tu->valid_boundary_link;
- temp1_fp = drm_fixp_from_fraction(tu.tu_size_desired, 1);
- tu.ratio_by_tu_fp = drm_fixp_mul(tu.ratio_fp, temp1_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->tu_size_desired, 1);
+ tu->ratio_by_tu_fp = drm_fixp_mul(tu->ratio_fp, temp1_fp);
- tu.delay_start_link = tu.extra_pclk_cycles_in_link_clk +
- tu.filler_size + tu.extra_buffer_margin;
+ tu->delay_start_link = tu->extra_pclk_cycles_in_link_clk +
+ tu->filler_size + tu->extra_buffer_margin;
- tu.resulting_valid_fp =
- drm_fixp_from_fraction(tu.valid_boundary_link, 1);
+ tu->resulting_valid_fp =
+ drm_fixp_from_fraction(tu->valid_boundary_link, 1);
- temp1_fp = drm_fixp_from_fraction(tu.tu_size_desired, 1);
- temp2_fp = drm_fixp_div(tu.resulting_valid_fp, temp1_fp);
- tu.TU_ratio_err_fp = temp2_fp - tu.original_ratio_fp;
+ temp1_fp = drm_fixp_from_fraction(tu->tu_size_desired, 1);
+ temp2_fp = drm_fixp_div(tu->resulting_valid_fp, temp1_fp);
+ tu->TU_ratio_err_fp = temp2_fp - tu->original_ratio_fp;
temp1_fp = drm_fixp_from_fraction(HBLANK_MARGIN, 1);
- temp1_fp = tu.hbp_relative_to_pclk_fp - temp1_fp;
- tu.hbp_time_fp = drm_fixp_div(temp1_fp, tu.pclk_fp);
+ temp1_fp = tu->hbp_relative_to_pclk_fp - temp1_fp;
+ tu->hbp_time_fp = drm_fixp_div(temp1_fp, tu->pclk_fp);
- temp1_fp = drm_fixp_from_fraction(tu.delay_start_link, 1);
- tu.delay_start_time_fp = drm_fixp_div(temp1_fp, tu.lclk_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->delay_start_link, 1);
+ tu->delay_start_time_fp = drm_fixp_div(temp1_fp, tu->lclk_fp);
- compare_result_1 = _tu_param_compare(tu.hbp_time_fp,
- tu.delay_start_time_fp);
+ compare_result_1 = _tu_param_compare(tu->hbp_time_fp,
+ tu->delay_start_time_fp);
if (compare_result_1 == 2) /* if (hbp_time_fp < delay_start_time_fp) */
- tu.min_hblank_violated = 1;
+ tu->min_hblank_violated = 1;
- tu.hactive_time_fp = drm_fixp_div(tu.lwidth_fp, tu.pclk_fp);
+ tu->hactive_time_fp = drm_fixp_div(tu->lwidth_fp, tu->pclk_fp);
- compare_result_2 = _tu_param_compare(tu.hactive_time_fp,
- tu.delay_start_time_fp);
+ compare_result_2 = _tu_param_compare(tu->hactive_time_fp,
+ tu->delay_start_time_fp);
if (compare_result_2 == 2)
- tu.min_hblank_violated = 1;
+ tu->min_hblank_violated = 1;
- tu.delay_start_time_fp = 0;
+ tu->delay_start_time_fp = 0;
/* brute force */
- tu.delay_start_link_extra_pixclk = EXTRA_PIXCLK_CYCLE_DELAY;
- tu.diff_abs_fp = tu.resulting_valid_fp - tu.ratio_by_tu_fp;
+ tu->delay_start_link_extra_pixclk = EXTRA_PIXCLK_CYCLE_DELAY;
+ tu->diff_abs_fp = tu->resulting_valid_fp - tu->ratio_by_tu_fp;
- temp = drm_fixp2int(tu.diff_abs_fp);
- if (!temp && tu.diff_abs_fp <= 0xffff)
- tu.diff_abs_fp = 0;
+ temp = drm_fixp2int(tu->diff_abs_fp);
+ if (!temp && tu->diff_abs_fp <= 0xffff)
+ tu->diff_abs_fp = 0;
/* if(diff_abs < 0) diff_abs *= -1 */
- if (tu.diff_abs_fp < 0)
- tu.diff_abs_fp = drm_fixp_mul(tu.diff_abs_fp, -1);
+ if (tu->diff_abs_fp < 0)
+ tu->diff_abs_fp = drm_fixp_mul(tu->diff_abs_fp, -1);
- tu.boundary_mod_lower_err = 0;
- if ((tu.diff_abs_fp != 0 &&
- ((tu.diff_abs_fp > BRUTE_FORCE_THRESHOLD_fp) ||
- (tu.even_distribution_legacy == 0) ||
+ tu->boundary_mod_lower_err = 0;
+ if ((tu->diff_abs_fp != 0 &&
+ ((tu->diff_abs_fp > BRUTE_FORCE_THRESHOLD_fp) ||
+ (tu->even_distribution_legacy == 0) ||
(DP_BRUTE_FORCE == 1))) ||
- (tu.min_hblank_violated == 1)) {
+ (tu->min_hblank_violated == 1)) {
do {
- tu.err_fp = drm_fixp_from_fraction(1000, 1);
+ tu->err_fp = drm_fixp_from_fraction(1000, 1);
- temp1_fp = drm_fixp_div(tu.lclk_fp, tu.pclk_fp);
+ temp1_fp = drm_fixp_div(tu->lclk_fp, tu->pclk_fp);
temp2_fp = drm_fixp_from_fraction(
- tu.delay_start_link_extra_pixclk, 1);
+ tu->delay_start_link_extra_pixclk, 1);
temp1_fp = drm_fixp_mul(temp2_fp, temp1_fp);
if (temp1_fp)
- tu.extra_buffer_margin =
+ tu->extra_buffer_margin =
drm_fixp2int_ceil(temp1_fp);
else
- tu.extra_buffer_margin = 0;
+ tu->extra_buffer_margin = 0;
- temp1_fp = drm_fixp_from_fraction(tu.bpp, 8);
- temp1_fp = drm_fixp_mul(tu.lwidth_fp, temp1_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->bpp, 8);
+ temp1_fp = drm_fixp_mul(tu->lwidth_fp, temp1_fp);
if (temp1_fp)
- tu.n_symbols = drm_fixp2int_ceil(temp1_fp);
+ tu->n_symbols = drm_fixp2int_ceil(temp1_fp);
else
- tu.n_symbols = 0;
-
- for (tu.tu_size = 32; tu.tu_size <= 64; tu.tu_size++) {
- for (tu.i_upper_boundary_count = 1;
- tu.i_upper_boundary_count <= 15;
- tu.i_upper_boundary_count++) {
- for (tu.i_lower_boundary_count = 1;
- tu.i_lower_boundary_count <= 15;
- tu.i_lower_boundary_count++) {
- _tu_valid_boundary_calc(&tu);
+ tu->n_symbols = 0;
+
+ for (tu->tu_size = 32; tu->tu_size <= 64; tu->tu_size++) {
+ for (tu->i_upper_boundary_count = 1;
+ tu->i_upper_boundary_count <= 15;
+ tu->i_upper_boundary_count++) {
+ for (tu->i_lower_boundary_count = 1;
+ tu->i_lower_boundary_count <= 15;
+ tu->i_lower_boundary_count++) {
+ _tu_valid_boundary_calc(tu);
}
}
}
- tu.delay_start_link_extra_pixclk--;
- } while (tu.boundary_moderation_en != true &&
- tu.boundary_mod_lower_err == 1 &&
- tu.delay_start_link_extra_pixclk != 0);
+ tu->delay_start_link_extra_pixclk--;
+ } while (tu->boundary_moderation_en != true &&
+ tu->boundary_mod_lower_err == 1 &&
+ tu->delay_start_link_extra_pixclk != 0);
- if (tu.boundary_moderation_en == true) {
+ if (tu->boundary_moderation_en == true) {
temp1_fp = drm_fixp_from_fraction(
- (tu.upper_boundary_count *
- tu.valid_boundary_link +
- tu.lower_boundary_count *
- (tu.valid_boundary_link - 1)), 1);
+ (tu->upper_boundary_count *
+ tu->valid_boundary_link +
+ tu->lower_boundary_count *
+ (tu->valid_boundary_link - 1)), 1);
temp2_fp = drm_fixp_from_fraction(
- (tu.upper_boundary_count +
- tu.lower_boundary_count), 1);
- tu.resulting_valid_fp =
+ (tu->upper_boundary_count +
+ tu->lower_boundary_count), 1);
+ tu->resulting_valid_fp =
drm_fixp_div(temp1_fp, temp2_fp);
temp1_fp = drm_fixp_from_fraction(
- tu.tu_size_desired, 1);
- tu.ratio_by_tu_fp =
- drm_fixp_mul(tu.original_ratio_fp, temp1_fp);
+ tu->tu_size_desired, 1);
+ tu->ratio_by_tu_fp =
+ drm_fixp_mul(tu->original_ratio_fp, temp1_fp);
- tu.valid_lower_boundary_link =
- tu.valid_boundary_link - 1;
+ tu->valid_lower_boundary_link =
+ tu->valid_boundary_link - 1;
- temp1_fp = drm_fixp_from_fraction(tu.bpp, 8);
- temp1_fp = drm_fixp_mul(tu.lwidth_fp, temp1_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->bpp, 8);
+ temp1_fp = drm_fixp_mul(tu->lwidth_fp, temp1_fp);
temp2_fp = drm_fixp_div(temp1_fp,
- tu.resulting_valid_fp);
- tu.n_tus = drm_fixp2int(temp2_fp);
+ tu->resulting_valid_fp);
+ tu->n_tus = drm_fixp2int(temp2_fp);
- tu.tu_size_minus1 = tu.tu_size_desired - 1;
- tu.even_distribution_BF = 1;
+ tu->tu_size_minus1 = tu->tu_size_desired - 1;
+ tu->even_distribution_BF = 1;
temp1_fp =
- drm_fixp_from_fraction(tu.tu_size_desired, 1);
+ drm_fixp_from_fraction(tu->tu_size_desired, 1);
temp2_fp =
- drm_fixp_div(tu.resulting_valid_fp, temp1_fp);
- tu.TU_ratio_err_fp = temp2_fp - tu.original_ratio_fp;
+ drm_fixp_div(tu->resulting_valid_fp, temp1_fp);
+ tu->TU_ratio_err_fp = temp2_fp - tu->original_ratio_fp;
}
}
- temp2_fp = drm_fixp_mul(LCLK_FAST_SKEW_fp, tu.lwidth_fp);
+ temp2_fp = drm_fixp_mul(LCLK_FAST_SKEW_fp, tu->lwidth_fp);
if (temp2_fp)
temp = drm_fixp2int_ceil(temp2_fp);
else
temp = 0;
- temp1_fp = drm_fixp_from_fraction(tu.nlanes, 1);
- temp2_fp = drm_fixp_mul(tu.original_ratio_fp, temp1_fp);
- temp1_fp = drm_fixp_from_fraction(tu.bpp, 8);
+ temp1_fp = drm_fixp_from_fraction(tu->nlanes, 1);
+ temp2_fp = drm_fixp_mul(tu->original_ratio_fp, temp1_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->bpp, 8);
temp2_fp = drm_fixp_div(temp1_fp, temp2_fp);
temp1_fp = drm_fixp_from_fraction(temp, 1);
temp2_fp = drm_fixp_mul(temp1_fp, temp2_fp);
temp = drm_fixp2int(temp2_fp);
- if (tu.async_en)
- tu.delay_start_link += (int)temp;
+ if (tu->async_en)
+ tu->delay_start_link += (int)temp;
- temp1_fp = drm_fixp_from_fraction(tu.delay_start_link, 1);
- tu.delay_start_time_fp = drm_fixp_div(temp1_fp, tu.lclk_fp);
+ temp1_fp = drm_fixp_from_fraction(tu->delay_start_link, 1);
+ tu->delay_start_time_fp = drm_fixp_div(temp1_fp, tu->lclk_fp);
/* OUTPUTS */
- tu_table->valid_boundary_link = tu.valid_boundary_link;
- tu_table->delay_start_link = tu.delay_start_link;
- tu_table->boundary_moderation_en = tu.boundary_moderation_en;
- tu_table->valid_lower_boundary_link = tu.valid_lower_boundary_link;
- tu_table->upper_boundary_count = tu.upper_boundary_count;
- tu_table->lower_boundary_count = tu.lower_boundary_count;
- tu_table->tu_size_minus1 = tu.tu_size_minus1;
+ tu_table->valid_boundary_link = tu->valid_boundary_link;
+ tu_table->delay_start_link = tu->delay_start_link;
+ tu_table->boundary_moderation_en = tu->boundary_moderation_en;
+ tu_table->valid_lower_boundary_link = tu->valid_lower_boundary_link;
+ tu_table->upper_boundary_count = tu->upper_boundary_count;
+ tu_table->lower_boundary_count = tu->lower_boundary_count;
+ tu_table->tu_size_minus1 = tu->tu_size_minus1;
DRM_DEBUG_DP("TU: valid_boundary_link: %d\n",
tu_table->valid_boundary_link);
@@ -935,6 +937,8 @@ static void _dp_ctrl_calc_tu(struct dp_tu_calc_input *in,
DRM_DEBUG_DP("TU: lower_boundary_count: %d\n",
tu_table->lower_boundary_count);
DRM_DEBUG_DP("TU: tu_size_minus1: %d\n", tu_table->tu_size_minus1);
+
+ kfree(tu);
}
static void dp_ctrl_calc_tu_parameters(struct dp_ctrl_private *ctrl,
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-11-24 19:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-24 19:37 [PATCH 00/40] [Set 9] Rid W=1 warnings from GPU Lee Jones
2020-11-24 19:37 ` [PATCH 01/40] drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device' Lee Jones
2020-11-24 19:37 ` [PATCH 03/40] drm/msm/adreno/a6xx_gpu_state: Make some local functions static Lee Jones
2020-11-24 19:37 ` [PATCH 08/40] drm/msm/dp/dp_ctrl: Move 'tu' from the stack to the heap Lee Jones
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).