From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [agd5f:drm-next 124/190] drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:877:51: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
Date: Wed, 26 Jan 2022 19:54:36 +0800 [thread overview]
Message-ID: <202201261900.ZLv3AEFH-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 13434 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Hawking Zhang <Hawking.Zhang@amd.com>
CC: Alex Deucher <alexander.deucher@amd.com>
CC: "Zhou, Peng Ju" <PengJu.Zhou@amd.com>
CC: Lijo Lazar <lijo.lazar@amd.com>
tree: https://gitlab.freedesktop.org/agd5f/linux.git drm-next
head: 63e583c8843f305a3e334a96d5de00435f4d38a2
commit: 5d447e296701484f3df5b31a7a078cbf1e3a9cc9 [124/190] drm/amdgpu: add helper for rlcg indirect reg access
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
compiler: riscv32-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/dc_helper.c:
>> drivers/gpu/drm/amd/display/dc/dc_helper.c:450:48: warning: Function 'generic_reg_wait' argument order different: declaration 'ctx, addr, mask, shift, condition_value, delay_between_poll_us, time_out_num_tries, func_name, line' definition 'ctx, addr, shift, mask, condition_value, delay_between_poll_us, time_out_num_tries, func_name, line' [funcArgOrderDifferent]
void generic_reg_wait(const struct dc_context *ctx,
^
drivers/gpu/drm/amd/display/dc/dm_services.h:140:48: note: Function 'generic_reg_wait' argument order different: declaration 'ctx, addr, mask, shift, condition_value, delay_between_poll_us, time_out_num_tries, func_name, line' definition 'ctx, addr, shift, mask, condition_value, delay_between_poll_us, time_out_num_tries, func_name, line'
void generic_reg_wait(const struct dc_context *ctx,
^
drivers/gpu/drm/amd/display/dc/dc_helper.c:450:48: note: Function 'generic_reg_wait' argument order different: declaration 'ctx, addr, mask, shift, condition_value, delay_between_poll_us, time_out_num_tries, func_name, line' definition 'ctx, addr, shift, mask, condition_value, delay_between_poll_us, time_out_num_tries, func_name, line'
void generic_reg_wait(const struct dc_context *ctx,
^
--
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:877:51: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
scratch_reg0 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg0;
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:878:51: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
scratch_reg1 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg1;
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:879:51: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
scratch_reg2 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg2;
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:880:51: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
scratch_reg3 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg3;
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:877:51: warning: Uninitialized struct member: reg_access_ctrl.scratch_reg0 [uninitStructMember]
scratch_reg0 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg0;
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:878:51: warning: Uninitialized struct member: reg_access_ctrl.scratch_reg1 [uninitStructMember]
scratch_reg1 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg1;
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:879:51: warning: Uninitialized struct member: reg_access_ctrl.scratch_reg2 [uninitStructMember]
scratch_reg2 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg2;
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:880:51: warning: Uninitialized struct member: reg_access_ctrl.scratch_reg3 [uninitStructMember]
scratch_reg3 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg3;
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:884:16: warning: Uninitialized struct member: reg_access_ctrl.grbm_cntl [uninitStructMember]
if (offset == reg_access_ctrl->grbm_cntl) {
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:888:23: warning: Uninitialized struct member: reg_access_ctrl.grbm_idx [uninitStructMember]
} else if (offset == reg_access_ctrl->grbm_idx) {
^
>> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:881:6: warning: Uninitialized struct member: reg_access_ctrl.spare_int [uninitStructMember]
if (reg_access_ctrl->spare_int)
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:882:49: warning: Uninitialized struct member: reg_access_ctrl.spare_int [uninitStructMember]
spare_int = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->spare_int;
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:901:7: warning: Uninitialized struct member: reg_access_ctrl.spare_int [uninitStructMember]
if (reg_access_ctrl->spare_int)
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:881:6: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
if (reg_access_ctrl->spare_int)
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:882:49: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
spare_int = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->spare_int;
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:884:16: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
if (offset == reg_access_ctrl->grbm_cntl) {
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:888:23: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
} else if (offset == reg_access_ctrl->grbm_idx) {
^
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:901:7: warning: Uninitialized variable: reg_access_ctrl [uninitvar]
if (reg_access_ctrl->spare_int)
^
>> drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:7676:7: warning: Identical inner 'if' condition is always true. [identicalInnerCondition]
if (grbm_soft_reset) {
^
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:7666:6: note: outer condition: grbm_soft_reset
if (grbm_soft_reset) {
^
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:7676:7: note: identical inner condition: grbm_soft_reset
if (grbm_soft_reset) {
^
>> drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:7537:6: warning: Unused variable: r [unusedVariable]
int r;
^
vim +877 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
5d447e29670148 Hawking Zhang 2022-01-18 858
5d447e29670148 Hawking Zhang 2022-01-18 859 static u32 amdgpu_virt_rlcg_reg_rw(struct amdgpu_device *adev, u32 offset, u32 v, u32 flag)
5d447e29670148 Hawking Zhang 2022-01-18 860 {
5d447e29670148 Hawking Zhang 2022-01-18 861 struct amdgpu_rlcg_reg_access_ctrl *reg_access_ctrl;
5d447e29670148 Hawking Zhang 2022-01-18 862 uint32_t timeout = 50000;
5d447e29670148 Hawking Zhang 2022-01-18 863 uint32_t i, tmp;
5d447e29670148 Hawking Zhang 2022-01-18 864 uint32_t ret = 0;
5d447e29670148 Hawking Zhang 2022-01-18 865 static void *scratch_reg0;
5d447e29670148 Hawking Zhang 2022-01-18 866 static void *scratch_reg1;
5d447e29670148 Hawking Zhang 2022-01-18 867 static void *scratch_reg2;
5d447e29670148 Hawking Zhang 2022-01-18 868 static void *scratch_reg3;
5d447e29670148 Hawking Zhang 2022-01-18 869 static void *spare_int;
5d447e29670148 Hawking Zhang 2022-01-18 870
5d447e29670148 Hawking Zhang 2022-01-18 871 if (!adev->gfx.rlc.rlcg_reg_access_supported) {
5d447e29670148 Hawking Zhang 2022-01-18 872 dev_err(adev->dev,
5d447e29670148 Hawking Zhang 2022-01-18 873 "indirect registers access through rlcg is not available\n");
5d447e29670148 Hawking Zhang 2022-01-18 874 return 0;
5d447e29670148 Hawking Zhang 2022-01-18 875 }
5d447e29670148 Hawking Zhang 2022-01-18 876
5d447e29670148 Hawking Zhang 2022-01-18 @877 scratch_reg0 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg0;
5d447e29670148 Hawking Zhang 2022-01-18 @878 scratch_reg1 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg1;
5d447e29670148 Hawking Zhang 2022-01-18 @879 scratch_reg2 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg2;
5d447e29670148 Hawking Zhang 2022-01-18 @880 scratch_reg3 = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->scratch_reg3;
5d447e29670148 Hawking Zhang 2022-01-18 @881 if (reg_access_ctrl->spare_int)
5d447e29670148 Hawking Zhang 2022-01-18 882 spare_int = (void __iomem *)adev->rmmio + 4 * reg_access_ctrl->spare_int;
5d447e29670148 Hawking Zhang 2022-01-18 883
5d447e29670148 Hawking Zhang 2022-01-18 @884 if (offset == reg_access_ctrl->grbm_cntl) {
5d447e29670148 Hawking Zhang 2022-01-18 885 /* if the target reg offset is grbm_cntl, write to scratch_reg2 */
5d447e29670148 Hawking Zhang 2022-01-18 886 writel(v, scratch_reg2);
5d447e29670148 Hawking Zhang 2022-01-18 887 writel(v, ((void __iomem *)adev->rmmio) + (offset * 4));
5d447e29670148 Hawking Zhang 2022-01-18 @888 } else if (offset == reg_access_ctrl->grbm_idx) {
5d447e29670148 Hawking Zhang 2022-01-18 889 /* if the target reg offset is grbm_idx, write to scratch_reg3 */
5d447e29670148 Hawking Zhang 2022-01-18 890 writel(v, scratch_reg3);
5d447e29670148 Hawking Zhang 2022-01-18 891 writel(v, ((void __iomem *)adev->rmmio) + (offset * 4));
5d447e29670148 Hawking Zhang 2022-01-18 892 } else {
5d447e29670148 Hawking Zhang 2022-01-18 893 /*
5d447e29670148 Hawking Zhang 2022-01-18 894 * SCRATCH_REG0 = read/write value
5d447e29670148 Hawking Zhang 2022-01-18 895 * SCRATCH_REG1[30:28] = command
5d447e29670148 Hawking Zhang 2022-01-18 896 * SCRATCH_REG1[19:0] = address in dword
5d447e29670148 Hawking Zhang 2022-01-18 897 * SCRATCH_REG1[26:24] = Error reporting
5d447e29670148 Hawking Zhang 2022-01-18 898 */
5d447e29670148 Hawking Zhang 2022-01-18 899 writel(v, scratch_reg0);
5d447e29670148 Hawking Zhang 2022-01-18 900 writel((offset | flag), scratch_reg1);
5d447e29670148 Hawking Zhang 2022-01-18 901 if (reg_access_ctrl->spare_int)
5d447e29670148 Hawking Zhang 2022-01-18 902 writel(1, spare_int);
5d447e29670148 Hawking Zhang 2022-01-18 903
5d447e29670148 Hawking Zhang 2022-01-18 904 for (i = 0; i < timeout; i++) {
5d447e29670148 Hawking Zhang 2022-01-18 905 tmp = readl(scratch_reg1);
5d447e29670148 Hawking Zhang 2022-01-18 906 if (!(tmp & flag))
5d447e29670148 Hawking Zhang 2022-01-18 907 break;
5d447e29670148 Hawking Zhang 2022-01-18 908 udelay(10);
5d447e29670148 Hawking Zhang 2022-01-18 909 }
5d447e29670148 Hawking Zhang 2022-01-18 910
5d447e29670148 Hawking Zhang 2022-01-18 911 if (i >= timeout) {
5d447e29670148 Hawking Zhang 2022-01-18 912 if (amdgpu_sriov_rlcg_error_report_enabled(adev)) {
5d447e29670148 Hawking Zhang 2022-01-18 913 if (tmp & AMDGPU_RLCG_VFGATE_DISABLED) {
5d447e29670148 Hawking Zhang 2022-01-18 914 dev_err(adev->dev,
5d447e29670148 Hawking Zhang 2022-01-18 915 "vfgate is disabled, rlcg failed to program reg: 0x%05x\n", offset);
5d447e29670148 Hawking Zhang 2022-01-18 916 } else if (tmp & AMDGPU_RLCG_WRONG_OPERATION_TYPE) {
5d447e29670148 Hawking Zhang 2022-01-18 917 dev_err(adev->dev,
5d447e29670148 Hawking Zhang 2022-01-18 918 "wrong operation type, rlcg failed to program reg: 0x%05x\n", offset);
5d447e29670148 Hawking Zhang 2022-01-18 919 } else if (tmp & AMDGPU_RLCG_REG_NOT_IN_RANGE) {
5d447e29670148 Hawking Zhang 2022-01-18 920 dev_err(adev->dev,
5d447e29670148 Hawking Zhang 2022-01-18 921 "regiser is not in range, rlcg failed to program reg: 0x%05x\n", offset);
5d447e29670148 Hawking Zhang 2022-01-18 922 } else {
5d447e29670148 Hawking Zhang 2022-01-18 923 dev_err(adev->dev,
5d447e29670148 Hawking Zhang 2022-01-18 924 "unknown error type, rlcg failed to program reg: 0x%05x\n", offset);
5d447e29670148 Hawking Zhang 2022-01-18 925 }
5d447e29670148 Hawking Zhang 2022-01-18 926 } else {
5d447e29670148 Hawking Zhang 2022-01-18 927 dev_err(adev->dev,
5d447e29670148 Hawking Zhang 2022-01-18 928 "timeout: rlcg faled to program reg: 0x%05x\n", offset);
5d447e29670148 Hawking Zhang 2022-01-18 929 }
5d447e29670148 Hawking Zhang 2022-01-18 930 }
5d447e29670148 Hawking Zhang 2022-01-18 931 }
5d447e29670148 Hawking Zhang 2022-01-18 932
5d447e29670148 Hawking Zhang 2022-01-18 933 ret = readl(scratch_reg0);
5d447e29670148 Hawking Zhang 2022-01-18 934 return ret;
5d447e29670148 Hawking Zhang 2022-01-18 935 }
5d447e29670148 Hawking Zhang 2022-01-18 936
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-01-26 11:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-26 11:54 kernel test robot [this message]
2022-01-27 6:58 ` [agd5f:drm-next 124/190] drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:877:51: warning: Uninitialized variable: reg_access_ctrl [uninitvar] kernel test robot
2022-01-27 6:58 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202201261900.ZLv3AEFH-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.