Hi Markus, kernel test robot noticed the following build warnings: [auto build test WARNING on robh/for-next] [also build test WARNING on linus/master v6.12-rc3 next-20241015] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Markus-Stockhausen/dt-bindings-phy-add-realtek-rtl8380m-serdes/20241012-214949 base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next patch link: https://lore.kernel.org/r/20241012134834.1306992-3-markus.stockhausen%40gmx.de patch subject: [PATCH v3 2/2] phy: Realtek Otto SerDes driver config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20241016/202410160026.e4fdH3Ov-lkp@xxxxxxxxx/config) compiler: s390-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241016/202410160026.e4fdH3Ov-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202410160026.e4fdH3Ov-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from include/linux/device.h:15, from include/linux/dma-mapping.h:8, from include/linux/skbuff.h:28, from include/linux/if_ether.h:19, from include/linux/ethtool.h:18, from include/linux/phy.h:16, from drivers/phy/realtek/phy-rtk-otto-serdes.c:13: drivers/phy/realtek/phy-rtk-otto-serdes.c: In function 'rtsds_fw_load': >> drivers/phy/realtek/phy-rtk-otto-serdes.c:119:29: warning: format '%d' expects argument of type 'int', but argument 4 has type 'size_t' {aka 'long unsigned int'} [-Wformat=] 119 | dev_info(ctrl->dev, "firmware %s: loaded with %d bytes, %d sequences\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:160:58: note: in expansion of macro 'dev_fmt' 160 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/phy/realtek/phy-rtk-otto-serdes.c:119:9: note: in expansion of macro 'dev_info' 119 | dev_info(ctrl->dev, "firmware %s: loaded with %d bytes, %d sequences\n", | ^~~~~~~~ drivers/phy/realtek/phy-rtk-otto-serdes.c:119:56: note: format string is defined here 119 | dev_info(ctrl->dev, "firmware %s: loaded with %d bytes, %d sequences\n", | ~^ | | | int | %ld vim +119 drivers/phy/realtek/phy-rtk-otto-serdes.c > 13 #include <linux/phy.h> 14 #include <linux/phy/phy.h> 15 #include <linux/platform_device.h> 16 17 #include "phy-rtk-otto-serdes.h" 18 19 /* 20 * A Realtek Otto SerDes is configured/patched by writing specific values into its registers. 21 * These values are bound to the individual hardware and the transceivers that are connected to 22 * it. Depending on the model some of this might be integrated into the bootloader. To fully 23 * support different configurations allow the driver to load firmware files and run patch 24 * sequences. 25 * 26 * A firmware file contains a head, a directory and at the end the raw patch data. See 27 * structure rtsds_fw_head, rtsds_fw_dir an rtsds_fw_seq for more details. 28 * 29 * header 30 * (u32) magic = 0x83009300, see RTSDS_FW_MAGIC 31 * (u32) CRC checksum of the following data 32 * (u32) filesize 33 * (u32) directory size = number of sequences 34 * 35 * directory with n elements consisting of 36 * (u32) id of the sequence. See RTSDS_FW_EVT_xxx 37 * (u32) offset of patch data for this directory entry 38 * 39 * patch data with x elements consisting of 40 * (u16) action to process. See RTSDS_FW_OP_xxx 41 * (u16) mode for which the command is to be executed. See RTSDS_FW_MODE_xxx 42 * (u16) SerDes ports bitmask for which the command is to be executed 43 * (u16) page for action 44 * (u16) register for action 45 * (u16) value for action 46 * (u16) mask for write operations 47 * (u16) future use to avoid structure breakage 48 */ 49 50 static const char *rtsds_fw_events[RTSDS_FW_EVT_CNT] = { 51 [RTSDS_FW_EVT_SETUP] = "setup", 52 [RTSDS_FW_EVT_INIT] = "init", 53 [RTSDS_FW_EVT_POWER_ON] = "power-on", 54 [RTSDS_FW_EVT_PRE_SET_MODE] = "pre-set-mode", 55 [RTSDS_FW_EVT_POST_SET_MODE] = "post-set-mode", 56 [RTSDS_FW_EVT_PRE_RESET] = "pre-reset", 57 [RTSDS_FW_EVT_POST_RESET] = "post-reset", 58 [RTSDS_FW_EVT_PRE_POWER_OFF] = "pre-power-off", 59 [RTSDS_FW_EVT_POST_POWER_OFF] = "post-power-off", 60 }; 61 62 static const u8 rtsds_fw_modes[PHY_INTERFACE_MODE_MAX] = { 63 [PHY_INTERFACE_MODE_NA] = RTSDS_FW_MODE_ALL, 64 [PHY_INTERFACE_MODE_QSGMII] = RTSDS_FW_MODE_QSGMII, 65 [PHY_INTERFACE_MODE_XGMII] = RTSDS_FW_MODE_XGMII, 66 [PHY_INTERFACE_MODE_USXGMII] = RTSDS_FW_MODE_USXGMII, 67 [PHY_INTERFACE_MODE_1000BASEX] = RTSDS_FW_MODE_1000BASEX, 68 [PHY_INTERFACE_MODE_2500BASEX] = RTSDS_FW_MODE_2500BASEX, 69 [PHY_INTERFACE_MODE_10GBASER] = RTSDS_FW_MODE_10GBASER, 70 }; 71 72 static int rtsds_fw_load(struct rtsds_ctrl *ctrl) 73 { 74 int ret; 75 struct rtsds_fw_head *h; 76 u32 checksum; 77 const char *msg; 78 const char *fwprop; 79 char fwname[128]; 80 81 ret = device_property_read_string(ctrl->dev, "firmware-name", &fwprop); 82 if (ret) 83 snprintf(fwname, sizeof(fwname), "realtek/%s", ctrl->conf->fwname); 84 else if (strcmp(fwprop, "")) 85 snprintf(fwname, sizeof(fwname), "realtek/%s", fwprop); 86 else { 87 dev_info(ctrl->dev, "firmware deactivated, patching disabled\n"); 88 return 0; 89 } 90 91 ret = firmware_request_nowarn(&ctrl->firmware, fwname, ctrl->dev); 92 if (ret < 0) { 93 msg = "not found"; 94 goto error; 95 } 96 97 if (ctrl->firmware->size < 16) { 98 msg = "size to small"; 99 goto error; 100 } 101 102 h = (struct rtsds_fw_head *)ctrl->firmware->data; 103 if (h->magic != RTSDS_FW_MAGIC) { 104 msg = "magic mismatch"; 105 goto error; 106 } 107 108 if (h->filesize != ctrl->firmware->size) { 109 msg = "size mismatch"; 110 goto error; 111 } 112 113 checksum = ~crc32(0xFFFFFFFFU, ctrl->firmware->data + 8, ctrl->firmware->size - 8); 114 if (h->checksum != checksum) { 115 msg = "checksum mismatch"; 116 goto error; 117 } 118 > 119 dev_info(ctrl->dev, "firmware %s: loaded with %d bytes, %d sequences\n", 120 fwname, ctrl->firmware->size, h->dirsize); 121 122 return 0; 123 error: 124 dev_err(ctrl->dev, "firmware %s: %s, patching disabled\n", fwname, msg); 125 ctrl->firmware = NULL; 126 return -EINVAL; 127 } 128 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki