[radeon-alex:drm-next-4.21-wip 79/110] drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:2138 amdgpu_pm_sysfs_init() warn: maybe use && instead of &
Dan Carpenter
dan.carpenter at oracle.com
Mon Jan 14 08:11:10 UTC 2019
tree: git://people.freedesktop.org/~agd5f/linux.git drm-next-4.21-wip
head: 364c6471cc8cca8dbaa558077597c525b3d7f9e6
commit: 2c5acb77e1ad3dfa5658f6c8b769e264b53728b4 [79/110] drm/amdgpu: Add sysfs file for PCIe usage v5
New smatch warnings:
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:2138 amdgpu_pm_sysfs_init() warn: maybe use && instead of &
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:2138 amdgpu_pm_sysfs_init() warn: bitwise AND condition is false here
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:2184 amdgpu_pm_sysfs_fini() warn: maybe use && instead of &
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:2184 amdgpu_pm_sysfs_fini() warn: bitwise AND condition is false here
Old smatch warnings:
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:593 amdgpu_set_pp_od_clk_voltage() error: uninitialized symbol 'ret'.
git remote add radeon-alex git://people.freedesktop.org/~agd5f/linux.git
git remote update radeon-alex
git checkout 2c5acb77e1ad3dfa5658f6c8b769e264b53728b4
vim +2138 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
d38ceaf99 Alex Deucher 2015-04-20 2034
d38ceaf99 Alex Deucher 2015-04-20 2035 int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
d38ceaf99 Alex Deucher 2015-04-20 2036 {
0624e145f Evan Quan 2019-01-07 2037 struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
d38ceaf99 Alex Deucher 2015-04-20 2038 int ret;
d38ceaf99 Alex Deucher 2015-04-20 2039
c86f5ebfb Alex Deucher 2015-10-23 2040 if (adev->pm.sysfs_initialized)
c86f5ebfb Alex Deucher 2015-10-23 2041 return 0;
c86f5ebfb Alex Deucher 2015-10-23 2042
d2f52ac80 Rex Zhu 2017-09-22 2043 if (adev->pm.dpm_enabled == 0)
d2f52ac80 Rex Zhu 2017-09-22 2044 return 0;
d2f52ac80 Rex Zhu 2017-09-22 2045
d38ceaf99 Alex Deucher 2015-04-20 2046 adev->pm.int_hwmon_dev = hwmon_device_register_with_groups(adev->dev,
d38ceaf99 Alex Deucher 2015-04-20 2047 DRIVER_NAME, adev,
d38ceaf99 Alex Deucher 2015-04-20 2048 hwmon_groups);
d38ceaf99 Alex Deucher 2015-04-20 2049 if (IS_ERR(adev->pm.int_hwmon_dev)) {
d38ceaf99 Alex Deucher 2015-04-20 2050 ret = PTR_ERR(adev->pm.int_hwmon_dev);
d38ceaf99 Alex Deucher 2015-04-20 2051 dev_err(adev->dev,
d38ceaf99 Alex Deucher 2015-04-20 2052 "Unable to register hwmon device: %d\n", ret);
d38ceaf99 Alex Deucher 2015-04-20 2053 return ret;
d38ceaf99 Alex Deucher 2015-04-20 2054 }
d38ceaf99 Alex Deucher 2015-04-20 2055
d38ceaf99 Alex Deucher 2015-04-20 2056 ret = device_create_file(adev->dev, &dev_attr_power_dpm_state);
d38ceaf99 Alex Deucher 2015-04-20 2057 if (ret) {
d38ceaf99 Alex Deucher 2015-04-20 2058 DRM_ERROR("failed to create device file for dpm state\n");
d38ceaf99 Alex Deucher 2015-04-20 2059 return ret;
d38ceaf99 Alex Deucher 2015-04-20 2060 }
d38ceaf99 Alex Deucher 2015-04-20 2061 ret = device_create_file(adev->dev, &dev_attr_power_dpm_force_performance_level);
d38ceaf99 Alex Deucher 2015-04-20 2062 if (ret) {
d38ceaf99 Alex Deucher 2015-04-20 2063 DRM_ERROR("failed to create device file for dpm state\n");
d38ceaf99 Alex Deucher 2015-04-20 2064 return ret;
d38ceaf99 Alex Deucher 2015-04-20 2065 }
f3898ea12 Eric Huang 2015-12-11 2066
6d07fe7bc Rex Zhu 2017-09-25 2067
f3898ea12 Eric Huang 2015-12-11 2068 ret = device_create_file(adev->dev, &dev_attr_pp_num_states);
f3898ea12 Eric Huang 2015-12-11 2069 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2070 DRM_ERROR("failed to create device file pp_num_states\n");
f3898ea12 Eric Huang 2015-12-11 2071 return ret;
f3898ea12 Eric Huang 2015-12-11 2072 }
f3898ea12 Eric Huang 2015-12-11 2073 ret = device_create_file(adev->dev, &dev_attr_pp_cur_state);
f3898ea12 Eric Huang 2015-12-11 2074 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2075 DRM_ERROR("failed to create device file pp_cur_state\n");
f3898ea12 Eric Huang 2015-12-11 2076 return ret;
f3898ea12 Eric Huang 2015-12-11 2077 }
f3898ea12 Eric Huang 2015-12-11 2078 ret = device_create_file(adev->dev, &dev_attr_pp_force_state);
f3898ea12 Eric Huang 2015-12-11 2079 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2080 DRM_ERROR("failed to create device file pp_force_state\n");
f3898ea12 Eric Huang 2015-12-11 2081 return ret;
f3898ea12 Eric Huang 2015-12-11 2082 }
f3898ea12 Eric Huang 2015-12-11 2083 ret = device_create_file(adev->dev, &dev_attr_pp_table);
f3898ea12 Eric Huang 2015-12-11 2084 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2085 DRM_ERROR("failed to create device file pp_table\n");
f3898ea12 Eric Huang 2015-12-11 2086 return ret;
f3898ea12 Eric Huang 2015-12-11 2087 }
c85e299ff Eric Huang 2016-05-19 2088
f3898ea12 Eric Huang 2015-12-11 2089 ret = device_create_file(adev->dev, &dev_attr_pp_dpm_sclk);
f3898ea12 Eric Huang 2015-12-11 2090 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2091 DRM_ERROR("failed to create device file pp_dpm_sclk\n");
f3898ea12 Eric Huang 2015-12-11 2092 return ret;
f3898ea12 Eric Huang 2015-12-11 2093 }
f3898ea12 Eric Huang 2015-12-11 2094 ret = device_create_file(adev->dev, &dev_attr_pp_dpm_mclk);
f3898ea12 Eric Huang 2015-12-11 2095 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2096 DRM_ERROR("failed to create device file pp_dpm_mclk\n");
f3898ea12 Eric Huang 2015-12-11 2097 return ret;
f3898ea12 Eric Huang 2015-12-11 2098 }
f3898ea12 Eric Huang 2015-12-11 2099 ret = device_create_file(adev->dev, &dev_attr_pp_dpm_pcie);
f3898ea12 Eric Huang 2015-12-11 2100 if (ret) {
f3898ea12 Eric Huang 2015-12-11 2101 DRM_ERROR("failed to create device file pp_dpm_pcie\n");
f3898ea12 Eric Huang 2015-12-11 2102 return ret;
f3898ea12 Eric Huang 2015-12-11 2103 }
8b2e574dc Eric Huang 2016-05-19 2104 ret = device_create_file(adev->dev, &dev_attr_pp_sclk_od);
8b2e574dc Eric Huang 2016-05-19 2105 if (ret) {
8b2e574dc Eric Huang 2016-05-19 2106 DRM_ERROR("failed to create device file pp_sclk_od\n");
8b2e574dc Eric Huang 2016-05-19 2107 return ret;
8b2e574dc Eric Huang 2016-05-19 2108 }
f2bdc05f7 Eric Huang 2016-05-24 2109 ret = device_create_file(adev->dev, &dev_attr_pp_mclk_od);
f2bdc05f7 Eric Huang 2016-05-24 2110 if (ret) {
f2bdc05f7 Eric Huang 2016-05-24 2111 DRM_ERROR("failed to create device file pp_mclk_od\n");
f2bdc05f7 Eric Huang 2016-05-24 2112 return ret;
f2bdc05f7 Eric Huang 2016-05-24 2113 }
34bb2734d Eric Huang 2016-09-12 2114 ret = device_create_file(adev->dev,
37c5c4dbf Rex Zhu 2018-01-10 2115 &dev_attr_pp_power_profile_mode);
37c5c4dbf Rex Zhu 2018-01-10 2116 if (ret) {
37c5c4dbf Rex Zhu 2018-01-10 2117 DRM_ERROR("failed to create device file "
37c5c4dbf Rex Zhu 2018-01-10 2118 "pp_power_profile_mode\n");
37c5c4dbf Rex Zhu 2018-01-10 2119 return ret;
37c5c4dbf Rex Zhu 2018-01-10 2120 }
0624e145f Evan Quan 2019-01-07 2121 if (hwmgr->od_enabled) {
e3933f26b Rex Zhu 2018-01-16 2122 ret = device_create_file(adev->dev,
e3933f26b Rex Zhu 2018-01-16 2123 &dev_attr_pp_od_clk_voltage);
e3933f26b Rex Zhu 2018-01-16 2124 if (ret) {
e3933f26b Rex Zhu 2018-01-16 2125 DRM_ERROR("failed to create device file "
e3933f26b Rex Zhu 2018-01-16 2126 "pp_od_clk_voltage\n");
e3933f26b Rex Zhu 2018-01-16 2127 return ret;
e3933f26b Rex Zhu 2018-01-16 2128 }
0624e145f Evan Quan 2019-01-07 2129 }
b374d82dc Tom St Denis 2018-06-20 2130 ret = device_create_file(adev->dev,
b374d82dc Tom St Denis 2018-06-20 2131 &dev_attr_gpu_busy_percent);
b374d82dc Tom St Denis 2018-06-20 2132 if (ret) {
b374d82dc Tom St Denis 2018-06-20 2133 DRM_ERROR("failed to create device file "
b374d82dc Tom St Denis 2018-06-20 2134 "gpu_busy_level\n");
b374d82dc Tom St Denis 2018-06-20 2135 return ret;
b374d82dc Tom St Denis 2018-06-20 2136 }
2c5acb77e Kent Russell 2019-01-03 2137 /* PCIe Perf counters won't work on APU nodes */
2c5acb77e Kent Russell 2019-01-03 @2138 if (adev->flags & !AMD_IS_APU) {
2c5acb77e Kent Russell 2019-01-03 2139 ret = device_create_file(adev->dev, &dev_attr_pcie_bw);
2c5acb77e Kent Russell 2019-01-03 2140 if (ret) {
2c5acb77e Kent Russell 2019-01-03 2141 DRM_ERROR("failed to create device file pcie_bw\n");
2c5acb77e Kent Russell 2019-01-03 2142 return ret;
2c5acb77e Kent Russell 2019-01-03 2143 }
2c5acb77e Kent Russell 2019-01-03 2144 }
d38ceaf99 Alex Deucher 2015-04-20 2145 ret = amdgpu_debugfs_pm_init(adev);
d38ceaf99 Alex Deucher 2015-04-20 2146 if (ret) {
d38ceaf99 Alex Deucher 2015-04-20 2147 DRM_ERROR("Failed to register debugfs file for dpm!\n");
d38ceaf99 Alex Deucher 2015-04-20 2148 return ret;
d38ceaf99 Alex Deucher 2015-04-20 2149 }
d38ceaf99 Alex Deucher 2015-04-20 2150
c86f5ebfb Alex Deucher 2015-10-23 2151 adev->pm.sysfs_initialized = true;
c86f5ebfb Alex Deucher 2015-10-23 2152
d38ceaf99 Alex Deucher 2015-04-20 2153 return 0;
d38ceaf99 Alex Deucher 2015-04-20 2154 }
d38ceaf99 Alex Deucher 2015-04-20 2155
d38ceaf99 Alex Deucher 2015-04-20 2156 void amdgpu_pm_sysfs_fini(struct amdgpu_device *adev)
d38ceaf99 Alex Deucher 2015-04-20 2157 {
0624e145f Evan Quan 2019-01-07 2158 struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
0624e145f Evan Quan 2019-01-07 2159
d2f52ac80 Rex Zhu 2017-09-22 2160 if (adev->pm.dpm_enabled == 0)
d2f52ac80 Rex Zhu 2017-09-22 2161 return;
d2f52ac80 Rex Zhu 2017-09-22 2162
d38ceaf99 Alex Deucher 2015-04-20 2163 if (adev->pm.int_hwmon_dev)
d38ceaf99 Alex Deucher 2015-04-20 2164 hwmon_device_unregister(adev->pm.int_hwmon_dev);
d38ceaf99 Alex Deucher 2015-04-20 2165 device_remove_file(adev->dev, &dev_attr_power_dpm_state);
d38ceaf99 Alex Deucher 2015-04-20 2166 device_remove_file(adev->dev, &dev_attr_power_dpm_force_performance_level);
6d07fe7bc Rex Zhu 2017-09-25 2167
f3898ea12 Eric Huang 2015-12-11 2168 device_remove_file(adev->dev, &dev_attr_pp_num_states);
f3898ea12 Eric Huang 2015-12-11 2169 device_remove_file(adev->dev, &dev_attr_pp_cur_state);
f3898ea12 Eric Huang 2015-12-11 2170 device_remove_file(adev->dev, &dev_attr_pp_force_state);
f3898ea12 Eric Huang 2015-12-11 2171 device_remove_file(adev->dev, &dev_attr_pp_table);
6d07fe7bc Rex Zhu 2017-09-25 2172
f3898ea12 Eric Huang 2015-12-11 2173 device_remove_file(adev->dev, &dev_attr_pp_dpm_sclk);
f3898ea12 Eric Huang 2015-12-11 2174 device_remove_file(adev->dev, &dev_attr_pp_dpm_mclk);
f3898ea12 Eric Huang 2015-12-11 2175 device_remove_file(adev->dev, &dev_attr_pp_dpm_pcie);
8b2e574dc Eric Huang 2016-05-19 2176 device_remove_file(adev->dev, &dev_attr_pp_sclk_od);
f2bdc05f7 Eric Huang 2016-05-24 2177 device_remove_file(adev->dev, &dev_attr_pp_mclk_od);
34bb2734d Eric Huang 2016-09-12 2178 device_remove_file(adev->dev,
37c5c4dbf Rex Zhu 2018-01-10 2179 &dev_attr_pp_power_profile_mode);
0624e145f Evan Quan 2019-01-07 2180 if (hwmgr->od_enabled)
e3933f26b Rex Zhu 2018-01-16 2181 device_remove_file(adev->dev,
e3933f26b Rex Zhu 2018-01-16 2182 &dev_attr_pp_od_clk_voltage);
b374d82dc Tom St Denis 2018-06-20 2183 device_remove_file(adev->dev, &dev_attr_gpu_busy_percent);
2c5acb77e Kent Russell 2019-01-03 @2184 if (adev->flags & !AMD_IS_APU)
2c5acb77e Kent Russell 2019-01-03 2185 device_remove_file(adev->dev, &dev_attr_pcie_bw);
d38ceaf99 Alex Deucher 2015-04-20 2186 }
d38ceaf99 Alex Deucher 2015-04-20 2187
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
More information about the dri-devel
mailing list