Re: [PATCH 09/17] soc: imx: add i.MX8M blk-ctrl driver
by Dan Carpenter
Hi Lucas,
url: https://github.com/0day-ci/linux/commits/Lucas-Stach/i-MX8MM-GPC-improvem...
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: i386-randconfig-m021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/soc/imx/imx8m-blk-ctrl.c:222 imx8m_blk_ctrl_probe() warn: missing error code 'ret'
vim +/ret +222 drivers/soc/imx/imx8m-blk-ctrl.c
446185fda14696 Lucas Stach 2021-07-17 150 static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
446185fda14696 Lucas Stach 2021-07-17 151 {
446185fda14696 Lucas Stach 2021-07-17 152 const struct imx8m_blk_ctrl_data *bc_data;
446185fda14696 Lucas Stach 2021-07-17 153 struct device *dev = &pdev->dev;
446185fda14696 Lucas Stach 2021-07-17 154 struct imx8m_blk_ctrl *bc;
446185fda14696 Lucas Stach 2021-07-17 155 void __iomem *base;
446185fda14696 Lucas Stach 2021-07-17 156 int i, ret;
446185fda14696 Lucas Stach 2021-07-17 157
446185fda14696 Lucas Stach 2021-07-17 158 struct regmap_config regmap_config = {
446185fda14696 Lucas Stach 2021-07-17 159 .reg_bits = 32,
446185fda14696 Lucas Stach 2021-07-17 160 .val_bits = 32,
446185fda14696 Lucas Stach 2021-07-17 161 .reg_stride = 4,
446185fda14696 Lucas Stach 2021-07-17 162 };
446185fda14696 Lucas Stach 2021-07-17 163
446185fda14696 Lucas Stach 2021-07-17 164 bc = devm_kzalloc(dev, sizeof(*bc), GFP_KERNEL);
446185fda14696 Lucas Stach 2021-07-17 165 if (!bc)
446185fda14696 Lucas Stach 2021-07-17 166 return -ENOMEM;
446185fda14696 Lucas Stach 2021-07-17 167
446185fda14696 Lucas Stach 2021-07-17 168 bc->dev = dev;
446185fda14696 Lucas Stach 2021-07-17 169
446185fda14696 Lucas Stach 2021-07-17 170 bc_data = of_device_get_match_data(dev);
446185fda14696 Lucas Stach 2021-07-17 171
446185fda14696 Lucas Stach 2021-07-17 172 base = devm_platform_ioremap_resource(pdev, 0);
446185fda14696 Lucas Stach 2021-07-17 173 if (IS_ERR(base))
446185fda14696 Lucas Stach 2021-07-17 174 return PTR_ERR(base);
446185fda14696 Lucas Stach 2021-07-17 175
446185fda14696 Lucas Stach 2021-07-17 176 regmap_config.max_register = bc_data->max_reg;
446185fda14696 Lucas Stach 2021-07-17 177 bc->regmap = devm_regmap_init_mmio(dev, base, ®map_config);
446185fda14696 Lucas Stach 2021-07-17 178 if (IS_ERR(bc->regmap))
446185fda14696 Lucas Stach 2021-07-17 179 return dev_err_probe(dev, PTR_ERR(bc->regmap),
446185fda14696 Lucas Stach 2021-07-17 180 "failed to init regmap \n");
446185fda14696 Lucas Stach 2021-07-17 181
446185fda14696 Lucas Stach 2021-07-17 182 bc->domains = devm_kcalloc(dev, bc_data->num_domains,
446185fda14696 Lucas Stach 2021-07-17 183 sizeof(struct imx8m_blk_ctrl_domain),
446185fda14696 Lucas Stach 2021-07-17 184 GFP_KERNEL);
446185fda14696 Lucas Stach 2021-07-17 185 if (!bc->domains)
446185fda14696 Lucas Stach 2021-07-17 186 return -ENOMEM;
446185fda14696 Lucas Stach 2021-07-17 187
446185fda14696 Lucas Stach 2021-07-17 188 bc->onecell_data.num_domains = bc_data->num_domains;
446185fda14696 Lucas Stach 2021-07-17 189 bc->onecell_data.xlate = imx8m_blk_ctrl_xlate;
446185fda14696 Lucas Stach 2021-07-17 190 bc->onecell_data.domains =
446185fda14696 Lucas Stach 2021-07-17 191 devm_kcalloc(dev, bc_data->num_domains,
446185fda14696 Lucas Stach 2021-07-17 192 sizeof(struct generic_pm_domain *), GFP_KERNEL);
446185fda14696 Lucas Stach 2021-07-17 193 if (!bc->onecell_data.domains)
446185fda14696 Lucas Stach 2021-07-17 194 return -ENOMEM;
446185fda14696 Lucas Stach 2021-07-17 195
446185fda14696 Lucas Stach 2021-07-17 196 bc->bus_power_dev = genpd_dev_pm_attach_by_name(dev, "bus");
446185fda14696 Lucas Stach 2021-07-17 197 if (IS_ERR(bc->bus_power_dev))
446185fda14696 Lucas Stach 2021-07-17 198 return dev_err_probe(dev, PTR_ERR(bc->bus_power_dev),
446185fda14696 Lucas Stach 2021-07-17 199 "failed to attach power domain\n");
446185fda14696 Lucas Stach 2021-07-17 200
446185fda14696 Lucas Stach 2021-07-17 201 for (i = 0; i < bc_data->num_domains; i++) {
446185fda14696 Lucas Stach 2021-07-17 202 const struct imx8m_blk_ctrl_domain_data *data = &bc_data->domains[i];
446185fda14696 Lucas Stach 2021-07-17 203 struct imx8m_blk_ctrl_domain *domain = &bc->domains[i];
446185fda14696 Lucas Stach 2021-07-17 204 int j;
446185fda14696 Lucas Stach 2021-07-17 205
446185fda14696 Lucas Stach 2021-07-17 206 domain->data = data;
446185fda14696 Lucas Stach 2021-07-17 207
446185fda14696 Lucas Stach 2021-07-17 208 for (j = 0; j < data->num_clks; j++)
446185fda14696 Lucas Stach 2021-07-17 209 domain->clks[j].id = data->clk_names[j];
446185fda14696 Lucas Stach 2021-07-17 210
446185fda14696 Lucas Stach 2021-07-17 211 ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
446185fda14696 Lucas Stach 2021-07-17 212 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 213 dev_err_probe(dev, ret, "failed to get clock\n");
446185fda14696 Lucas Stach 2021-07-17 214 goto cleanup_pds;
446185fda14696 Lucas Stach 2021-07-17 215 }
446185fda14696 Lucas Stach 2021-07-17 216
446185fda14696 Lucas Stach 2021-07-17 217 domain->power_dev =
446185fda14696 Lucas Stach 2021-07-17 218 dev_pm_domain_attach_by_name(dev, data->gpc_name);
446185fda14696 Lucas Stach 2021-07-17 219 if (IS_ERR(domain->power_dev )) {
^
Extra space character.
446185fda14696 Lucas Stach 2021-07-17 220 dev_err_probe(dev, PTR_ERR(domain->power_dev),
446185fda14696 Lucas Stach 2021-07-17 221 "failed to attach power domain\n");
446185fda14696 Lucas Stach 2021-07-17 @222 goto cleanup_pds;
ret = PTR_ERR(domain->power_dev);
446185fda14696 Lucas Stach 2021-07-17 223 }
446185fda14696 Lucas Stach 2021-07-17 224
446185fda14696 Lucas Stach 2021-07-17 225 domain->genpd.name = data->name;
446185fda14696 Lucas Stach 2021-07-17 226 domain->genpd.power_on = imx8m_blk_ctrl_power_on;
446185fda14696 Lucas Stach 2021-07-17 227 domain->genpd.power_off = imx8m_blk_ctrl_power_off;
446185fda14696 Lucas Stach 2021-07-17 228 domain->bc = bc;
446185fda14696 Lucas Stach 2021-07-17 229
446185fda14696 Lucas Stach 2021-07-17 230 ret = pm_genpd_init(&domain->genpd, NULL, true);
446185fda14696 Lucas Stach 2021-07-17 231 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 232 dev_err_probe(dev, ret, "failed to init power domain\n");
446185fda14696 Lucas Stach 2021-07-17 233 dev_pm_domain_detach(domain->power_dev, true);
446185fda14696 Lucas Stach 2021-07-17 234 goto cleanup_pds;
446185fda14696 Lucas Stach 2021-07-17 235 }
446185fda14696 Lucas Stach 2021-07-17 236
446185fda14696 Lucas Stach 2021-07-17 237 /*
446185fda14696 Lucas Stach 2021-07-17 238 * We use runtime PM to trigger power on/off of the upstream GPC
446185fda14696 Lucas Stach 2021-07-17 239 * domain, as a strict hierarchical parent/child power domain
446185fda14696 Lucas Stach 2021-07-17 240 * setup doesn't allow us to meet the sequencing requirements.
446185fda14696 Lucas Stach 2021-07-17 241 * This means we have nested locking of genpd locks, without the
446185fda14696 Lucas Stach 2021-07-17 242 * nesting being visible at the genpd level, so we need a
446185fda14696 Lucas Stach 2021-07-17 243 * separate lock class to make lockdep aware of the fact that
446185fda14696 Lucas Stach 2021-07-17 244 * this are separate domain locks that can be nested without a
446185fda14696 Lucas Stach 2021-07-17 245 * self-deadlock.
446185fda14696 Lucas Stach 2021-07-17 246 */
446185fda14696 Lucas Stach 2021-07-17 247 lockdep_set_class(&domain->genpd.mlock,
446185fda14696 Lucas Stach 2021-07-17 248 &blk_ctrl_genpd_lock_class);
446185fda14696 Lucas Stach 2021-07-17 249
446185fda14696 Lucas Stach 2021-07-17 250 bc->onecell_data.domains[i] = &domain->genpd;
446185fda14696 Lucas Stach 2021-07-17 251 }
446185fda14696 Lucas Stach 2021-07-17 252
446185fda14696 Lucas Stach 2021-07-17 253 ret = of_genpd_add_provider_onecell(dev->of_node, &bc->onecell_data);
446185fda14696 Lucas Stach 2021-07-17 254 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 255 dev_err_probe(dev, ret, "failed to add power domain provider\n");
446185fda14696 Lucas Stach 2021-07-17 256 goto cleanup_pds;
446185fda14696 Lucas Stach 2021-07-17 257 }
446185fda14696 Lucas Stach 2021-07-17 258
446185fda14696 Lucas Stach 2021-07-17 259 bc->power_nb.notifier_call = bc_data->power_notifier_fn;
446185fda14696 Lucas Stach 2021-07-17 260 ret = dev_pm_genpd_add_notifier(bc->bus_power_dev, &bc->power_nb);
446185fda14696 Lucas Stach 2021-07-17 261 if (ret) {
446185fda14696 Lucas Stach 2021-07-17 262 dev_err_probe(dev, ret, "failed to add power notifier\n");
446185fda14696 Lucas Stach 2021-07-17 263 goto cleanup_provider;
446185fda14696 Lucas Stach 2021-07-17 264 }
446185fda14696 Lucas Stach 2021-07-17 265
446185fda14696 Lucas Stach 2021-07-17 266 dev_set_drvdata(dev, bc);
446185fda14696 Lucas Stach 2021-07-17 267
446185fda14696 Lucas Stach 2021-07-17 268 return 0;
446185fda14696 Lucas Stach 2021-07-17 269
446185fda14696 Lucas Stach 2021-07-17 270 cleanup_provider:
446185fda14696 Lucas Stach 2021-07-17 271 of_genpd_del_provider(dev->of_node);
446185fda14696 Lucas Stach 2021-07-17 272 cleanup_pds:
446185fda14696 Lucas Stach 2021-07-17 273 for (i--; i >= 0; i--) {
446185fda14696 Lucas Stach 2021-07-17 274 pm_genpd_remove(&bc->domains[i].genpd);
446185fda14696 Lucas Stach 2021-07-17 275 dev_pm_domain_detach(bc->domains[i].power_dev, true);
446185fda14696 Lucas Stach 2021-07-17 276 }
446185fda14696 Lucas Stach 2021-07-17 277
446185fda14696 Lucas Stach 2021-07-17 278 dev_pm_domain_detach(bc->bus_power_dev, true);
446185fda14696 Lucas Stach 2021-07-17 279
446185fda14696 Lucas Stach 2021-07-17 280 return ret;
446185fda14696 Lucas Stach 2021-07-17 281 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c:503:11: warning: %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint]
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
master
head: 2734d6c1b1a089fb593ef6a23d4b70903526fe0c
commit: bd8dcea93a7d45a3366b5f3e6c341a677ff90acf drm/amd/pm: add
callbacks to read/write sysfs file pp_power_profile_mode
date: 6 weeks ago
compiler: ia64-linux-gcc (GCC) 10.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
cppcheck warnings: (new ones prefixed by >>)
In file included from
drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/yellow_carp_ppt.c:
>> drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c:503:11: warning:
>> %d in format string (no. 1) requires 'int' but the argument type is
>> 'unsigned int'. [invalidPrintfArgType_sint]
size += sprintf(buf + size, "%2d %14s%sn",
^
vim +503 drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c
4cea0fc9816add7 Xiaomeng Hou 2021-02-09 473 bd8dcea93a7d45a Xiaomeng Hou
2021-03-29 474 static int yellow_carp_get_power_profile_mode(struct
smu_context *smu,
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 475 char *buf)
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 476 {
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 477 static const char
*profile_name[] = {
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 478 "BOOTUP_DEFAULT",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 479 "3D_FULL_SCREEN",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 480 "POWER_SAVING",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 481 "VIDEO",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 482 "VR",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 483 "COMPUTE",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 484 "CUSTOM"};
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 485 uint32_t i, size = 0;
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 486 int16_t workload_type = 0;
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 487 bd8dcea93a7d45a Xiaomeng Hou
2021-03-29 488 if (!buf)
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 489 return -EINVAL;
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 490 bd8dcea93a7d45a Xiaomeng Hou
2021-03-29 491 for (i = 0; i <= PP_SMC_POWER_PROFILE_CUSTOM; i++) {
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 492 /*
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 493 * Conv PP_SMC_POWER_PROFILE*
to WORKLOAD_PPLIB_*_BIT.
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 494 * Not all profile modes are
supported on yellow carp.
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 495 */
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 496 workload_type =
smu_cmn_to_asic_specific_index(smu,
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 497 CMN2ASIC_MAPPING_WORKLOAD,
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 498 i);
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 499 bd8dcea93a7d45a Xiaomeng Hou
2021-03-29 500 if (workload_type < 0)
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 501 continue;
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 502 bd8dcea93a7d45a Xiaomeng Hou
2021-03-29 @503 size += sprintf(buf + size, "%2d %14s%s\n",
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 504 i, profile_name[i], (i ==
smu->power_profile_mode) ? "*" : " ");
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 505 }
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 506 bd8dcea93a7d45a Xiaomeng Hou
2021-03-29 507 return size;
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 508 }
bd8dcea93a7d45a Xiaomeng Hou 2021-03-29 509
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH 08/11] drm/msm/disp/dpu1: Add support for DSC in encoder
by kernel test robot
Hi Vinod,
I love your patch! Perhaps something to improve:
[auto build test WARNING on v5.13]
[cannot apply to linus/master v5.14-rc1 next-20210716]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Vinod-Koul/drm-msm-Add-Display-S...
base: 62fb9874f5da54fdb243003b386128037319b219
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/e61efb569c28d8036eb18f53763c195c1...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Vinod-Koul/drm-msm-Add-Display-Stream-Compression-Support/20210715-145540
git checkout e61efb569c28d8036eb18f53763c195c16d8a396
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function 'dpu_encoder_prep_dsc':
>> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1911:17: warning: variable 'pic_height' set but not used [-Wunused-but-set-variable]
1911 | int pic_width, pic_height;
| ^~~~~~~~~~
vim +/pic_height +1911 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
1900
1901 static void dpu_encoder_prep_dsc(struct dpu_encoder_virt *dpu_enc,
1902 struct msm_display_dsc_config *dsc)
1903 {
1904 /* coding only for 2LM, 2enc, 1 dsc config */
1905 struct dpu_encoder_phys *enc_master = dpu_enc->cur_master;
1906 struct dpu_hw_dsc *hw_dsc[MAX_CHANNELS_PER_ENC];
1907 struct dpu_hw_pingpong *hw_pp[MAX_CHANNELS_PER_ENC];
1908 int this_frame_slices;
1909 int intf_ip_w, enc_ip_w;
1910 int dsc_common_mode;
> 1911 int pic_width, pic_height;
1912 int i;
1913
1914 for (i = 0; i < MAX_CHANNELS_PER_ENC; i++) {
1915 hw_pp[i] = dpu_enc->hw_pp[i];
1916 hw_dsc[i] = dpu_enc->hw_dsc[i];
1917
1918 if (!hw_pp[i] || !hw_dsc[i]) {
1919 DPU_ERROR_ENC(dpu_enc, "invalid params for DSC\n");
1920 return;
1921 }
1922 }
1923
1924 dsc_common_mode = 0;
1925 pic_width = dsc->drm->pic_width;
1926 pic_height = dsc->drm->pic_height;
1927
1928 dsc_common_mode = DSC_MODE_MULTIPLEX | DSC_MODE_SPLIT_PANEL;
1929 if (enc_master->intf_mode == INTF_MODE_VIDEO)
1930 dsc_common_mode |= DSC_MODE_VIDEO;
1931
1932 this_frame_slices = pic_width / dsc->drm->slice_width;
1933 intf_ip_w = this_frame_slices * dsc->drm->slice_width;
1934
1935 dpu_encoder_dsc_pclk_param_calc(dsc, intf_ip_w);
1936
1937 /*
1938 * dsc merge case: when using 2 encoders for the same stream,
1939 * no. of slices need to be same on both the encoders.
1940 */
1941 enc_ip_w = intf_ip_w / 2;
1942 dpu_encoder_dsc_initial_line_calc(dsc, enc_ip_w);
1943
1944 for (i = 0; i < MAX_CHANNELS_PER_ENC; i++)
1945 dpu_encoder_dsc_pipe_cfg(hw_dsc[i], hw_pp[i], dsc, dsc_common_mode);
1946 }
1947
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[iio:testing 20/38] drivers/iio/dac/ad5624r_spi.c:296:1: warning: ISO C90 forbids mixed declarations and code
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head: 49be30ad801804ba0ba0051eefd61f2ce74060d7
commit: 78379c9664cf4c92b7789d04d4dcc8714edb8385 [20/38] iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
config: i386-randconfig-a014-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?id=...
git remote add iio https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
git fetch --no-tags iio testing
git checkout 78379c9664cf4c92b7789d04d4dcc8714edb8385
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/iio/dac/ad5624r_spi.c: In function 'ad5624r_probe':
drivers/iio/dac/ad5624r_spi.c:296:12: error: invalid storage class for function 'ad5624r_remove'
296 | static int ad5624r_remove(struct spi_device *spi)
| ^~~~~~~~~~~~~~
>> drivers/iio/dac/ad5624r_spi.c:296:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
296 | static int ad5624r_remove(struct spi_device *spi)
| ^~~~~~
drivers/iio/dac/ad5624r_spi.c:324:12: error: initializer element is not constant
324 | .remove = ad5624r_remove,
| ^~~~~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:324:12: note: (near initialization for 'ad5624r_driver.remove')
drivers/iio/dac/ad5624r_spi.c:319:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
319 | static struct spi_driver ad5624r_driver = {
| ^~~~~~
In file included from include/linux/device.h:32,
from drivers/iio/dac/ad5624r_spi.c:10:
drivers/iio/dac/ad5624r_spi.c:327:19: error: invalid storage class for function 'ad5624r_driver_init'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~
include/linux/device/driver.h:259:19: note: in definition of macro 'module_driver'
259 | static int __init __driver##_init(void) \
| ^~~~~~~~
drivers/iio/dac/ad5624r_spi.c:327:1: note: in expansion of macro 'module_spi_driver'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/export.h:43,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from include/linux/interrupt.h:6,
from drivers/iio/dac/ad5624r_spi.c:8:
include/linux/compiler.h:242:46: error: initializer element is not constant
242 | __UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)&sym;
| ^
include/linux/init.h:236:2: note: in expansion of macro '__ADDRESSABLE'
236 | __ADDRESSABLE(fn)
| ^~~~~~~~~~~~~
include/linux/init.h:241:2: note: in expansion of macro '__define_initcall_stub'
241 | __define_initcall_stub(__stub, fn) \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:254:2: note: in expansion of macro '____define_initcall'
254 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:260:2: note: in expansion of macro '__unique_initcall'
260 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:262:35: note: in expansion of macro '___define_initcall'
262 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:291:30: note: in expansion of macro '__define_initcall'
291 | #define device_initcall(fn) __define_initcall(fn, 6)
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:296:24: note: in expansion of macro 'device_initcall'
296 | #define __initcall(fn) device_initcall(fn)
| ^~~~~~~~~~~~~~~
include/linux/module.h:88:24: note: in expansion of macro '__initcall'
88 | #define module_init(x) __initcall(x);
| ^~~~~~~~~~
include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init); \
| ^~~~~~~~~~~
include/linux/spi/spi.h:317:2: note: in expansion of macro 'module_driver'
317 | module_driver(__spi_driver, spi_register_driver, \
| ^~~~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:327:1: note: in expansion of macro 'module_spi_driver'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/bits.h:22,
from include/linux/bitops.h:6,
from include/linux/kernel.h:12,
from include/linux/interrupt.h:6,
from drivers/iio/dac/ad5624r_spi.c:8:
>> include/linux/build_bug.h:78:41: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~~~~~~~~~~~
include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
| ^~~~~~~~~~~~~~~
include/linux/init.h:246:2: note: in expansion of macro 'static_assert'
246 | static_assert(__same_type(initcall_t, &fn));
| ^~~~~~~~~~~~~
include/linux/init.h:254:2: note: in expansion of macro '____define_initcall'
254 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:260:2: note: in expansion of macro '__unique_initcall'
260 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:262:35: note: in expansion of macro '___define_initcall'
262 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:291:30: note: in expansion of macro '__define_initcall'
291 | #define device_initcall(fn) __define_initcall(fn, 6)
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:296:24: note: in expansion of macro 'device_initcall'
296 | #define __initcall(fn) device_initcall(fn)
| ^~~~~~~~~~~~~~~
include/linux/module.h:88:24: note: in expansion of macro '__initcall'
88 | #define module_init(x) __initcall(x);
| ^~~~~~~~~~
include/linux/device/driver.h:263:1: note: in expansion of macro 'module_init'
263 | module_init(__driver##_init); \
| ^~~~~~~~~~~
include/linux/spi/spi.h:317:2: note: in expansion of macro 'module_driver'
317 | module_driver(__spi_driver, spi_register_driver, \
| ^~~~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:327:1: note: in expansion of macro 'module_spi_driver'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/device.h:32,
from drivers/iio/dac/ad5624r_spi.c:10:
drivers/iio/dac/ad5624r_spi.c:327:19: error: invalid storage class for function 'ad5624r_driver_exit'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~
include/linux/device/driver.h:264:20: note: in definition of macro 'module_driver'
264 | static void __exit __driver##_exit(void) \
| ^~~~~~~~
drivers/iio/dac/ad5624r_spi.c:327:1: note: in expansion of macro 'module_spi_driver'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~~~~
>> include/linux/device/driver.h:264:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
264 | static void __exit __driver##_exit(void) \
| ^~~~~~
include/linux/spi/spi.h:317:2: note: in expansion of macro 'module_driver'
317 | module_driver(__spi_driver, spi_register_driver, \
| ^~~~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:327:1: note: in expansion of macro 'module_spi_driver'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/printk.h:6,
from include/linux/kernel.h:19,
from include/linux/interrupt.h:6,
from drivers/iio/dac/ad5624r_spi.c:8:
drivers/iio/dac/ad5624r_spi.c:327:19: error: initializer element is not constant
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~
include/linux/init.h:299:50: note: in definition of macro '__exitcall'
299 | static exitcall_t __exitcall_##fn __exit_call = fn
| ^~
include/linux/device/driver.h:268:1: note: in expansion of macro 'module_exit'
268 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
include/linux/spi/spi.h:317:2: note: in expansion of macro 'module_driver'
317 | module_driver(__spi_driver, spi_register_driver, \
| ^~~~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:327:1: note: in expansion of macro 'module_spi_driver'
327 | module_spi_driver(ad5624r_driver);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/module.h:22,
from include/linux/bpf.h:19,
from include/linux/bpf-cgroup.h:5,
from include/linux/cgroup-defs.h:22,
from include/linux/cgroup.h:28,
from include/linux/memcontrol.h:13,
from include/linux/swap.h:9,
from include/linux/suspend.h:5,
from include/linux/regulator/consumer.h:35,
from drivers/iio/dac/ad5624r_spi.c:15:
>> include/linux/moduleparam.h:24:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
24 | static const char __UNIQUE_ID(name)[] \
| ^~~~~~
include/linux/module.h:166:32: note: in expansion of macro '__MODULE_INFO'
166 | #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
| ^~~~~~~~~~~~~
include/linux/module.h:236:32: note: in expansion of macro 'MODULE_INFO'
236 | #define MODULE_AUTHOR(_author) MODULE_INFO(author, _author)
| ^~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:329:1: note: in expansion of macro 'MODULE_AUTHOR'
329 | MODULE_AUTHOR("Barry Song <21cnbao(a)gmail.com>");
| ^~~~~~~~~~~~~
drivers/iio/dac/ad5624r_spi.c:331:1: error: expected declaration or statement at end of input
331 | MODULE_LICENSE("GPL v2");
| ^~~~~~~~~~~~~~
At top level:
drivers/iio/dac/ad5624r_spi.c:222:12: warning: 'ad5624r_probe' defined but not used [-Wunused-function]
222 | static int ad5624r_probe(struct spi_device *spi)
| ^~~~~~~~~~~~~
vim +296 drivers/iio/dac/ad5624r_spi.c
6790e29fef61b2 drivers/staging/iio/dac/ad5624r_spi.c Barry Song 2010-10-27 295
fc52692c49969e drivers/iio/dac/ad5624r_spi.c Greg Kroah-Hartman 2012-12-21 @296 static int ad5624r_remove(struct spi_device *spi)
6790e29fef61b2 drivers/staging/iio/dac/ad5624r_spi.c Barry Song 2010-10-27 297 {
3ff242055b7b46 drivers/staging/iio/dac/ad5624r_spi.c Jonathan Cameron 2011-06-27 298 struct iio_dev *indio_dev = spi_get_drvdata(spi);
3ff242055b7b46 drivers/staging/iio/dac/ad5624r_spi.c Jonathan Cameron 2011-06-27 299 struct ad5624r_state *st = iio_priv(indio_dev);
3ff242055b7b46 drivers/staging/iio/dac/ad5624r_spi.c Jonathan Cameron 2011-06-27 300
d2fffd6c2fd60f drivers/staging/iio/dac/ad5624r_spi.c Jonathan Cameron 2011-10-14 301 iio_device_unregister(indio_dev);
75238230cce22b drivers/iio/dac/ad5624r_spi.c Sachin Kamat 2013-08-19 302 if (!IS_ERR(st->reg))
26a54797c1b094 drivers/staging/iio/dac/ad5624r_spi.c Jonathan Cameron 2011-08-30 303 regulator_disable(st->reg);
14f88f1b07e03b drivers/staging/iio/dac/ad5624r_spi.c Michael Hennerich 2011-03-09 304
6790e29fef61b2 drivers/staging/iio/dac/ad5624r_spi.c Barry Song 2010-10-27 305 return 0;
6790e29fef61b2 drivers/staging/iio/dac/ad5624r_spi.c Barry Song 2010-10-27 306 }
6790e29fef61b2 drivers/staging/iio/dac/ad5624r_spi.c Barry Song 2010-10-27 307
:::::: The code at line 296 was first introduced by commit
:::::: fc52692c49969ec72595766929b9f54ac402da34 Drivers: iio: remove __dev* attributes.
:::::: TO: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[linux-stable-rc:linux-4.4.y 1449/1774] drivers/input/joydev.c:485:16: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.y
head: 38c92ba3580f0d00e57a55caf8f880aa1a0f2a50
commit: ade5180681d778d36b569ad35cc175ab22196c5f [1449/1774] Input: joydev - prevent potential read overflow in ioctl
config: h8300-randconfig-r031-20210718 (attached as .config)
compiler: h8300-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.4.y
git checkout ade5180681d778d36b569ad35cc175ab22196c5f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/h8300/include/generated/asm/uaccess.h:1,
from include/linux/poll.h:11,
from drivers/input/joydev.c:27:
include/asm-generic/uaccess.h: In function '__put_user_fn':
include/asm-generic/uaccess.h:178:16: warning: operand of '?:' changes signedness from 'int' to 'size_t' {aka 'long unsigned int'} due to unsignedness of other operand [-Wsign-compare]
178 | return size ? -EFAULT : size;
drivers/input/joydev.c: In function 'joydev_handle_JSIOCSAXMAP':
drivers/input/joydev.c:451:16: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
451 | for (i = 0; i < len && i < joydev->nabs; i++) {
| ^
drivers/input/joydev.c: In function 'joydev_handle_JSIOCSBTNMAP':
>> drivers/input/joydev.c:485:16: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
485 | for (i = 0; i < (len / 2) && i < joydev->nkey; i++) {
| ^
drivers/input/joydev.c: In function 'joydev_ioctl_common':
drivers/input/joydev.c:566:52: warning: operand of '?:' changes signedness from 'int' to 'size_t' {aka 'long unsigned int'} due to unsignedness of other operand [-Wsign-compare]
566 | return copy_to_user(argp, joydev->abspam, len) ? -EFAULT : len;
drivers/input/joydev.c:573:52: warning: operand of '?:' changes signedness from 'int' to 'size_t' {aka 'long unsigned int'} due to unsignedness of other operand [-Wsign-compare]
573 | return copy_to_user(argp, joydev->keypam, len) ? -EFAULT : len;
drivers/input/joydev.c:581:42: warning: operand of '?:' changes signedness from 'int' to 'size_t' {aka 'long unsigned int'} due to unsignedness of other operand [-Wsign-compare]
581 | return copy_to_user(argp, name, len) ? -EFAULT : len;
vim +485 drivers/input/joydev.c
467
468 static int joydev_handle_JSIOCSBTNMAP(struct joydev *joydev,
469 void __user *argp, size_t len)
470 {
471 __u16 *keypam;
472 int i;
473 int retval = 0;
474
475 if (len % sizeof(*keypam))
476 return -EINVAL;
477
478 len = min(len, sizeof(joydev->keypam));
479
480 /* Validate the map. */
481 keypam = memdup_user(argp, len);
482 if (IS_ERR(keypam))
483 return PTR_ERR(keypam);
484
> 485 for (i = 0; i < (len / 2) && i < joydev->nkey; i++) {
486 if (keypam[i] > KEY_MAX || keypam[i] < BTN_MISC) {
487 retval = -EINVAL;
488 goto out;
489 }
490 }
491
492 memcpy(joydev->keypam, keypam, len);
493
494 for (i = 0; i < joydev->nkey; i++)
495 joydev->keymap[keypam[i] - BTN_MISC] = i;
496
497 out:
498 kfree(keypam);
499 return retval;
500 }
501
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[linux-chenxing:mstar_v5_14_rebase_i2_drm 257/349] drivers/clk/mstar/clk-msc313-mux.c:27:2: error: implicit declaration of function 'regmap_field_read'; did you mean 'regmap_field_write'?
by kernel test robot
tree: git://github.com/linux-chenxing/linux.git mstar_v5_14_rebase_i2_drm
head: 93dfb2364436067bf34c6d4ddcd282496182cc0f
commit: 395724ba20fe2aa13e0167b43b6914f94f128df0 [257/349] clk: mstar: msc313 clock mux base
config: mips-bigsur_defconfig (attached as .config)
compiler: mips64-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/linux-chenxing/linux/commit/395724ba20fe2aa13e0167b43b...
git remote add linux-chenxing git://github.com/linux-chenxing/linux.git
git fetch --no-tags linux-chenxing mstar_v5_14_rebase_i2_drm
git checkout 395724ba20fe2aa13e0167b43b6914f94f128df0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/clk/mstar/clk-msc313-mux.c: In function 'msc313_mux_mux_get_parent':
>> drivers/clk/mstar/clk-msc313-mux.c:27:2: error: implicit declaration of function 'regmap_field_read'; did you mean 'regmap_field_write'? [-Werror=implicit-function-declaration]
27 | regmap_field_read(mux->mux, &index);
| ^~~~~~~~~~~~~~~~~
| regmap_field_write
drivers/clk/mstar/clk-msc313-mux.c: In function 'msc313_mux_register_muxes':
>> drivers/clk/mstar/clk-msc313-mux.c:146:10: error: variable 'gate_field' has initializer but incomplete type
146 | struct reg_field gate_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:146:33: error: implicit declaration of function 'REG_FIELD' [-Werror=implicit-function-declaration]
146 | struct reg_field gate_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:146:20: error: storage size of 'gate_field' isn't known
146 | struct reg_field gate_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:148:10: error: variable 'mux_field' has initializer but incomplete type
148 | struct reg_field mux_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:148:20: error: storage size of 'mux_field' isn't known
148 | struct reg_field mux_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:150:10: error: variable 'deglitch_field' has initializer but incomplete type
150 | struct reg_field deglitch_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:150:20: error: storage size of 'deglitch_field' isn't known
150 | struct reg_field deglitch_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~~~~~~
>> drivers/clk/mstar/clk-msc313-mux.c:157:16: error: implicit declaration of function 'devm_regmap_field_alloc' [-Werror=implicit-function-declaration]
157 | mux->gate = devm_regmap_field_alloc(dev, regmap, gate_field);
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mstar/clk-msc313-mux.c:150:20: warning: unused variable 'deglitch_field' [-Wunused-variable]
150 | struct reg_field deglitch_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~~~~~~
drivers/clk/mstar/clk-msc313-mux.c:148:20: warning: unused variable 'mux_field' [-Wunused-variable]
148 | struct reg_field mux_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~
drivers/clk/mstar/clk-msc313-mux.c:146:20: warning: unused variable 'gate_field' [-Wunused-variable]
146 | struct reg_field gate_field = REG_FIELD(mux_data->offset,
| ^~~~~~~~~~
cc1: some warnings being treated as errors
vim +27 drivers/clk/mstar/clk-msc313-mux.c
21
22 static u8 msc313_mux_mux_get_parent(struct clk_hw *hw)
23 {
24 struct msc313_mux *mux = mux_to_mux(hw);
25 unsigned int index;
26
> 27 regmap_field_read(mux->mux, &index);
28
29 return index;
30 }
31
32 static const struct clk_ops msc313_mux_mux_ops = {
33 .set_parent = msc313_mux_mux_set_parent,
34 .get_parent = msc313_mux_mux_get_parent,
35 };
36
37 static int msc313_mux_deglitch_enable(struct clk_hw *hw)
38 {
39 struct msc313_mux *mux = deglitch_to_mux(hw);
40
41 if (mux->gate)
42 regmap_field_write(mux->gate, 0);
43
44 return 0;
45 }
46
47 static void msc313_mux_deglitch_disable(struct clk_hw *hw)
48 {
49 struct msc313_mux *mux = deglitch_to_mux(hw);
50
51 if (mux->gate)
52 regmap_field_write(mux->gate, 1);
53 }
54
55 static int msc313_mux_deglitch_is_enabled(struct clk_hw *hw)
56 {
57 struct msc313_mux *mux = deglitch_to_mux(hw);
58 unsigned int notgated;
59
60 if (mux->gate) {
61 regmap_field_read(mux->gate, ¬gated);
62 return !notgated;
63 }
64
65 return 1;
66 }
67
68 static int msc313_mux_deglitch_set_parent(struct clk_hw *hw, u8 index)
69 {
70 struct msc313_mux *mux = deglitch_to_mux(hw);
71
72 if (!mux->deglitch)
73 return -ENOTSUPP;
74
75 return regmap_field_write(mux->deglitch, index);
76 }
77
78 static u8 msc313_mux_deglitch_get_parent(struct clk_hw *hw)
79 {
80 struct msc313_mux *mux = deglitch_to_mux(hw);
81 unsigned int index = 0;
82
83 if (mux->deglitch){
84 regmap_field_read(mux->deglitch, &index);
85 }
86
87 return index;
88 }
89
90 static const struct clk_ops msc313_mux_deglitch_ops = {
91 .enable = msc313_mux_deglitch_enable,
92 .disable = msc313_mux_deglitch_disable,
93 .is_enabled = msc313_mux_deglitch_is_enabled,
94 .set_parent = msc313_mux_deglitch_set_parent,
95 .get_parent = msc313_mux_deglitch_get_parent,
96 };
97
98 struct clk_hw *msc313_mux_xlate(struct of_phandle_args *clkspec, void *data)
99 {
100 struct msc313_muxes *muxes = data;
101 unsigned int of_idx = clkspec->args[0];
102 unsigned int idx = of_idx / 2;
103
104 /* mux, deglitch, mux, deglitch,.. */
105 if (of_idx >= muxes->muxes_data->num_muxes * 2)
106 return ERR_PTR(-EINVAL);
107
108 if (of_idx % 2)
109 return &muxes->muxes[idx].deglitch_hw;
110
111 return &muxes->muxes[idx].mux_hw;
112 }
113
114 struct msc313_muxes *msc313_mux_register_muxes(struct device *dev,
115 struct regmap *regmap, const struct msc313_muxes_data *muxes_data,
116 int (*fill_clk_parent_data)(struct clk_parent_data*, void*, const void*, const struct msc313_muxes*, unsigned int, unsigned int), void *data)
117 {
118 const struct msc313_mux_data *mux_data = muxes_data->muxes;
119 struct clk_init_data mux_init = {
120 .ops = &msc313_mux_mux_ops,
121 };
122 struct clk_init_data deglitch_init = {
123 .ops = &msc313_mux_deglitch_ops,
124 };
125 struct clk_parent_data *dynamic_parent_data = NULL;
126 struct msc313_muxes *muxes;
127 struct msc313_mux *mux;
128 struct clk_hw *clk_hw;
129 int i, ret, mux_parent;
130
131 /*
132 * If using the dynamic clk_parent_data mode you have to have both
133 * a callback and data.
134 */
135 if ((fill_clk_parent_data && !data) || (!fill_clk_parent_data && data))
136 return ERR_PTR(-EINVAL);
137
138 muxes = devm_kzalloc(dev, struct_size(muxes, muxes, muxes_data->num_muxes), GFP_KERNEL);
139 if (!muxes)
140 return ERR_PTR(-ENOMEM);
141
142 muxes->muxes_data = muxes_data;
143 mux = muxes->muxes;
144
145 for (i = 0; i < muxes_data->num_muxes; i++, mux++, mux_data++) {
> 146 struct reg_field gate_field = REG_FIELD(mux_data->offset,
147 mux_data->gate_shift, mux_data->gate_shift);
> 148 struct reg_field mux_field = REG_FIELD(mux_data->offset,
149 mux_data->mux_shift, mux_data->mux_shift + (mux_data->mux_width - 1));
> 150 struct reg_field deglitch_field = REG_FIELD(mux_data->offset,
151 mux_data->deglitch_shift, mux_data->deglitch_shift);
152
153 if(!mux_data->name)
154 continue;
155
156 if (mux_data->gate_shift != -1) {
> 157 mux->gate = devm_regmap_field_alloc(dev, regmap, gate_field);
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH 02/11] drm/msm/disp/dpu1: Add support for DSC
by kernel test robot
Hi Vinod,
I love your patch! Perhaps something to improve:
[auto build test WARNING on v5.13]
[also build test WARNING on next-20210716]
[cannot apply to linus/master v5.14-rc1]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Vinod-Koul/drm-msm-Add-Display-S...
base: 62fb9874f5da54fdb243003b386128037319b219
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/032a82b57221a13f65c55870ae3f64d0e...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Vinod-Koul/drm-msm-Add-Display-Stream-Compression-Support/20210715-145540
git checkout 032a82b57221a13f65c55870ae3f64d0e5a07390
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c: In function 'dpu_hw_dsc_config_thresh':
>> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c:128:7: warning: variable 'lp' set but not used [-Wunused-but-set-variable]
128 | u16 *lp;
| ^~
vim +/lp +128 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
121
122 static void dpu_hw_dsc_config_thresh(struct dpu_hw_dsc *hw_dsc,
123 struct msm_display_dsc_config *dsc)
124 {
125 struct drm_dsc_rc_range_parameters *rc = dsc->drm->rc_range_params;
126 struct dpu_hw_blk_reg_map *c = &hw_dsc->hw;
127 u32 off;
> 128 u16 *lp;
129 int i;
130
131 lp = dsc->drm->rc_buf_thresh;
132 off = DSC_RC_BUF_THRESH;
133 for (i = 0; i < DSC_NUM_BUF_RANGES - 1 ; i++) {
134 DPU_REG_WRITE(c, off, dsc->drm->rc_buf_thresh[i]);
135 off += 4;
136 }
137
138 off = DSC_RANGE_MIN_QP;
139 for (i = 0; i < DSC_NUM_BUF_RANGES; i++) {
140 DPU_REG_WRITE(c, off, rc[i].range_min_qp);
141 off += 4;
142 }
143
144 off = DSC_RANGE_MAX_QP;
145 for (i = 0; i < 15; i++) {
146 DPU_REG_WRITE(c, off, rc[i].range_max_qp);
147 off += 4;
148 }
149
150 off = DSC_RANGE_BPG_OFFSET;
151 for (i = 0; i < 15; i++) {
152 DPU_REG_WRITE(c, off, rc[i].range_bpg_offset);
153 off += 4;
154 }
155 }
156
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[sashal-linux-stable:pending-5.13 40/569] drivers/net/ethernet/intel/igbvf/netdev.c:356:52: sparse: sparse: incorrect type in argument 5 (different base types)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git pending-5.13
head: af8541612e8f9f67ef47e6a773223f32a139ba69
commit: cdf06d30fa45e9ef387aae38ba80d13eea048508 [40/569] igb: handle vlan types with checker enabled
config: x86_64-randconfig-s021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable pending-5.13
git checkout cdf06d30fa45e9ef387aae38ba80d13eea048508
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/intel/igbvf/netdev.c:203:48: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] pkt_addr @@ got restricted __le64 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:203:48: sparse: expected unsigned long long [usertype] pkt_addr
drivers/net/ethernet/intel/igbvf/netdev.c:203:48: sparse: got restricted __le64 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:205:48: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] hdr_addr @@ got restricted __le64 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:205:48: sparse: expected unsigned long long [usertype] hdr_addr
drivers/net/ethernet/intel/igbvf/netdev.c:205:48: sparse: got restricted __le64 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:207:48: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] pkt_addr @@ got restricted __le64 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:207:48: sparse: expected unsigned long long [usertype] pkt_addr
drivers/net/ethernet/intel/igbvf/netdev.c:207:48: sparse: got restricted __le64 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:261:19: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/intel/igbvf/netdev.c:276:25: sparse: sparse: cast to restricted __le16
drivers/net/ethernet/intel/igbvf/netdev.c:282:26: sparse: sparse: cast to restricted __le16
>> drivers/net/ethernet/intel/igbvf/netdev.c:356:52: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected restricted __le16 [usertype] vlan @@ got unsigned short [usertype] vlan @@
drivers/net/ethernet/intel/igbvf/netdev.c:356:52: sparse: expected restricted __le16 [usertype] vlan
drivers/net/ethernet/intel/igbvf/netdev.c:356:52: sparse: got unsigned short [usertype] vlan
drivers/net/ethernet/intel/igbvf/netdev.c:371:27: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/intel/igbvf/netdev.c:797:45: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/intel/igbvf/netdev.c:1992:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] vlan_macip_lens @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:1992:41: sparse: expected unsigned int [usertype] vlan_macip_lens
drivers/net/ethernet/intel/igbvf/netdev.c:1992:41: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:1994:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] type_tucmd_mlhl @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:1994:41: sparse: expected unsigned int [usertype] type_tucmd_mlhl
drivers/net/ethernet/intel/igbvf/netdev.c:1994:41: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:1995:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] mss_l4len_idx @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:1995:41: sparse: expected unsigned int [usertype] mss_l4len_idx
drivers/net/ethernet/intel/igbvf/netdev.c:1995:41: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:2059:46: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __wsum [usertype] diff @@ got restricted __be32 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:2059:46: sparse: expected restricted __wsum [usertype] diff
drivers/net/ethernet/intel/igbvf/netdev.c:2059:46: sparse: got restricted __be32 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:2254:43: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] buffer_addr @@ got restricted __le64 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:2254:43: sparse: expected unsigned long long [usertype] buffer_addr
drivers/net/ethernet/intel/igbvf/netdev.c:2254:43: sparse: got restricted __le64 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:2255:44: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] cmd_type_len @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:2255:44: sparse: expected unsigned int [usertype] cmd_type_len
drivers/net/ethernet/intel/igbvf/netdev.c:2255:44: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:2257:45: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] olinfo_status @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/intel/igbvf/netdev.c:2257:45: sparse: expected unsigned int [usertype] olinfo_status
drivers/net/ethernet/intel/igbvf/netdev.c:2257:45: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/intel/igbvf/netdev.c:2263:36: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/intel/igbvf/netdev.c:2263:36: sparse: left side has type unsigned int
drivers/net/ethernet/intel/igbvf/netdev.c:2263:36: sparse: right side has type restricted __le32
vim +356 drivers/net/ethernet/intel/igbvf/netdev.c
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 234
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 235 /**
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 236 * igbvf_clean_rx_irq - Send received data up the network stack; legacy
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 237 * @adapter: board private structure
b50f7bca5e83d9e8 drivers/net/ethernet/intel/igbvf/netdev.c Jesse Brandeburg 2020-09-25 238 * @work_done: output parameter used to indicate completed work
b50f7bca5e83d9e8 drivers/net/ethernet/intel/igbvf/netdev.c Jesse Brandeburg 2020-09-25 239 * @work_to_do: input parameter setting limit of work
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 240 *
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 241 * the return value indicates whether actual cleaning was done, there
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 242 * is no guarantee that everything was cleaned
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 243 **/
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 244 static bool igbvf_clean_rx_irq(struct igbvf_adapter *adapter,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 245 int *work_done, int work_to_do)
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 246 {
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 247 struct igbvf_ring *rx_ring = adapter->rx_ring;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 248 struct net_device *netdev = adapter->netdev;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 249 struct pci_dev *pdev = adapter->pdev;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 250 union e1000_adv_rx_desc *rx_desc, *next_rxd;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 251 struct igbvf_buffer *buffer_info, *next_buffer;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 252 struct sk_buff *skb;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 253 bool cleaned = false;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 254 int cleaned_count = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 255 unsigned int total_bytes = 0, total_packets = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 256 unsigned int i;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 257 u32 length, hlen, staterr;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 258
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 259 i = rx_ring->next_to_clean;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 260 rx_desc = IGBVF_RX_DESC_ADV(*rx_ring, i);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 261 staterr = le32_to_cpu(rx_desc->wb.upper.status_error);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 262
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 263 while (staterr & E1000_RXD_STAT_DD) {
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 264 if (*work_done >= work_to_do)
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 265 break;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 266 (*work_done)++;
2d0bb1c1f4524bef drivers/net/igbvf/netdev.c Jeff Kirsher 2010-08-08 267 rmb(); /* read descriptor and rx_buffer_info after status DD */
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 268
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 269 buffer_info = &rx_ring->buffer_info[i];
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 270
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 271 /* HW will not DMA in data larger than the given buffer, even
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 272 * if it parses the (NFS, of course) header to be larger. In
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 273 * that case, it fills the header buffer and spills the rest
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 274 * into the page.
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 275 */
0340501b1cf7dc67 drivers/net/ethernet/intel/igbvf/netdev.c Jeff Kirsher 2015-01-21 276 hlen = (le16_to_cpu(rx_desc->wb.lower.lo_dword.hs_rss.hdr_info)
0340501b1cf7dc67 drivers/net/ethernet/intel/igbvf/netdev.c Jeff Kirsher 2015-01-21 277 & E1000_RXDADV_HDRBUFLEN_MASK) >>
0340501b1cf7dc67 drivers/net/ethernet/intel/igbvf/netdev.c Jeff Kirsher 2015-01-21 278 E1000_RXDADV_HDRBUFLEN_SHIFT;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 279 if (hlen > adapter->rx_ps_hdr_size)
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 280 hlen = adapter->rx_ps_hdr_size;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 281
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 282 length = le16_to_cpu(rx_desc->wb.upper.length);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 283 cleaned = true;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 284 cleaned_count++;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 285
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 286 skb = buffer_info->skb;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 287 prefetch(skb->data - NET_IP_ALIGN);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 288 buffer_info->skb = NULL;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 289 if (!adapter->rx_ps_hdr_size) {
123e9f1afe7b86f7 drivers/net/igbvf/netdev.c Nick Nunley 2010-04-27 290 dma_unmap_single(&pdev->dev, buffer_info->dma,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 291 adapter->rx_buffer_len,
123e9f1afe7b86f7 drivers/net/igbvf/netdev.c Nick Nunley 2010-04-27 292 DMA_FROM_DEVICE);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 293 buffer_info->dma = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 294 skb_put(skb, length);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 295 goto send_up;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 296 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 297
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 298 if (!skb_shinfo(skb)->nr_frags) {
123e9f1afe7b86f7 drivers/net/igbvf/netdev.c Nick Nunley 2010-04-27 299 dma_unmap_single(&pdev->dev, buffer_info->dma,
92d947b77436437f drivers/net/igbvf/netdev.c Alexander Duyck 2009-07-23 300 adapter->rx_ps_hdr_size,
123e9f1afe7b86f7 drivers/net/igbvf/netdev.c Nick Nunley 2010-04-27 301 DMA_FROM_DEVICE);
fae5ecaee3e6265c drivers/net/ethernet/intel/igbvf/netdev.c Stefan Assmann 2015-08-06 302 buffer_info->dma = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 303 skb_put(skb, hlen);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 304 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 305
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 306 if (length) {
123e9f1afe7b86f7 drivers/net/igbvf/netdev.c Nick Nunley 2010-04-27 307 dma_unmap_page(&pdev->dev, buffer_info->page_dma,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 308 PAGE_SIZE / 2,
123e9f1afe7b86f7 drivers/net/igbvf/netdev.c Nick Nunley 2010-04-27 309 DMA_FROM_DEVICE);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 310 buffer_info->page_dma = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 311
ec857fd40da41d7c drivers/net/igbvf/netdev.c Koki Sanagi 2010-04-27 312 skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 313 buffer_info->page,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 314 buffer_info->page_offset,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 315 length);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 316
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 317 if ((adapter->rx_buffer_len > (PAGE_SIZE / 2)) ||
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 318 (page_count(buffer_info->page) != 1))
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 319 buffer_info->page = NULL;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 320 else
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 321 get_page(buffer_info->page);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 322
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 323 skb->len += length;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 324 skb->data_len += length;
7b8b59617ead5acc drivers/net/ethernet/intel/igbvf/netdev.c Eric Dumazet 2011-10-20 325 skb->truesize += PAGE_SIZE / 2;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 326 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 327 send_up:
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 328 i++;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 329 if (i == rx_ring->count)
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 330 i = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 331 next_rxd = IGBVF_RX_DESC_ADV(*rx_ring, i);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 332 prefetch(next_rxd);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 333 next_buffer = &rx_ring->buffer_info[i];
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 334
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 335 if (!(staterr & E1000_RXD_STAT_EOP)) {
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 336 buffer_info->skb = next_buffer->skb;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 337 buffer_info->dma = next_buffer->dma;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 338 next_buffer->skb = skb;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 339 next_buffer->dma = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 340 goto next_desc;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 341 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 342
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 343 if (staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK) {
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 344 dev_kfree_skb_irq(skb);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 345 goto next_desc;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 346 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 347
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 348 total_bytes += skb->len;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 349 total_packets++;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 350
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 351 igbvf_rx_checksum_adv(adapter, staterr, skb);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 352
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 353 skb->protocol = eth_type_trans(skb, netdev);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 354
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 355 igbvf_receive_skb(adapter, netdev, skb, staterr,
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 @356 rx_desc->wb.upper.vlan);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 357
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 358 next_desc:
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 359 rx_desc->wb.upper.status_error = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 360
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 361 /* return some buffers to hardware, one at a time is too slow */
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 362 if (cleaned_count >= IGBVF_RX_BUFFER_WRITE) {
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 363 igbvf_alloc_rx_buffers(rx_ring, cleaned_count);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 364 cleaned_count = 0;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 365 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 366
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 367 /* use prefetched values */
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 368 rx_desc = next_rxd;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 369 buffer_info = next_buffer;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 370
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 371 staterr = le32_to_cpu(rx_desc->wb.upper.status_error);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 372 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 373
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 374 rx_ring->next_to_clean = i;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 375 cleaned_count = igbvf_desc_unused(rx_ring);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 376
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 377 if (cleaned_count)
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 378 igbvf_alloc_rx_buffers(rx_ring, cleaned_count);
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 379
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 380 adapter->total_rx_packets += total_packets;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 381 adapter->total_rx_bytes += total_bytes;
55c05dd0295d8334 drivers/net/ethernet/intel/igbvf/netdev.c Tobias Klauser 2017-04-06 382 netdev->stats.rx_bytes += total_bytes;
55c05dd0295d8334 drivers/net/ethernet/intel/igbvf/netdev.c Tobias Klauser 2017-04-06 383 netdev->stats.rx_packets += total_packets;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 384 return cleaned;
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 385 }
d4e0fe01a38a0735 drivers/net/igbvf/netdev.c Alexander Duyck 2009-04-07 386
:::::: The code at line 356 was first introduced by commit
:::::: d4e0fe01a38a073568aee541a0247fe734095979 igbvf: add new driver to support 82576 virtual functions
:::::: TO: Alexander Duyck <alexander.h.duyck(a)intel.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH 1/2] swap led_brightness from enum to typedef
by Dan Carpenter
Hi Amy,
url: https://github.com/0day-ci/linux/commits/Amy-Parker/leds-change-led_brigh...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git dd9c7df94c1b23feacd54112f33ad95d93f64533
config: x86_64-randconfig-m001-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/platform/chrome/cros_kbd_led_backlight.c:53 keyboard_led_get_brightness() warn: signedness bug returning '(-5)'
drivers/platform/x86/samsung-laptop.c:1124 kbd_led_set() warn: impossible condition '(value < 0) => (0-255 < 0)'
vim +53 drivers/platform/chrome/cros_kbd_led_backlight.c
b14a971f104520 Amy Parker 2021-07-15 42 static led_brightness
^^^^^^^^^^^^^^
492ef7829d2d09 Simon Que 2016-03-08 43 keyboard_led_get_brightness(struct led_classdev *cdev)
492ef7829d2d09 Simon Que 2016-03-08 44 {
492ef7829d2d09 Simon Que 2016-03-08 45 unsigned long long brightness;
492ef7829d2d09 Simon Que 2016-03-08 46 acpi_status status;
492ef7829d2d09 Simon Que 2016-03-08 47
492ef7829d2d09 Simon Que 2016-03-08 48 status = acpi_evaluate_integer(NULL, ACPI_KEYBOARD_BACKLIGHT_READ,
492ef7829d2d09 Simon Que 2016-03-08 49 NULL, &brightness);
492ef7829d2d09 Simon Que 2016-03-08 50 if (ACPI_FAILURE(status)) {
492ef7829d2d09 Simon Que 2016-03-08 51 dev_err(cdev->dev, "Error getting keyboard LED value: %d\n",
492ef7829d2d09 Simon Que 2016-03-08 52 status);
492ef7829d2d09 Simon Que 2016-03-08 @53 return -EIO;
^^^^^^^^^^^^
To be honest, I'm confused why we are changing this from an enum to a
typedef. In the kernel we generally avoid typedefs where possible.
What's the problem that using a typedef fixes?
Also probably the name should end in a _t.
492ef7829d2d09 Simon Que 2016-03-08 54 }
492ef7829d2d09 Simon Que 2016-03-08 55
492ef7829d2d09 Simon Que 2016-03-08 56 return brightness;
492ef7829d2d09 Simon Que 2016-03-08 57 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months