From: kernel test robot <lkp@intel.com>
To: Markus Stockhausen <markus.stockhausen@gmx.de>,
vkoul@kernel.org, kishon@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
chris.packham@alliedtelesis.co.nz
Cc: oe-kbuild-all@lists.linux.dev,
Markus Stockhausen <markus.stockhausen@gmx.de>
Subject: Re: [PATCH v3 2/2] phy: Realtek Otto SerDes driver
Date: Wed, 16 Oct 2024 01:22:15 +0800 [thread overview]
Message-ID: <202410160026.e4fdH3Ov-lkp@intel.com> (raw)
In-Reply-To: <20241012134834.1306992-3-markus.stockhausen@gmx.de>
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@intel.com/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@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410160026.e4fdH3Ov-lkp@intel.com/
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
next prev parent reply other threads:[~2024-10-15 17:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-12 13:48 [PATCH v3 0/2] phy: Realtek Otto SerDes: add new driver Markus Stockhausen
2024-10-12 13:48 ` [PATCH v3 1/2] dt-bindings: phy: add realtek,rtl8380m-serdes Markus Stockhausen
2024-10-14 7:18 ` Krzysztof Kozlowski
2024-10-14 10:59 ` AW: " markus.stockhausen
2024-10-12 13:48 ` [PATCH v3 2/2] phy: Realtek Otto SerDes driver Markus Stockhausen
2024-10-15 17:22 ` kernel test robot [this message]
2024-10-15 17:22 ` 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=202410160026.e4fdH3Ov-lkp@intel.com \
--to=lkp@intel.com \
--cc=chris.packham@alliedtelesis.co.nz \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=markus.stockhausen@gmx.de \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=robh@kernel.org \
--cc=vkoul@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).