* [jcmvbkbc-xtensa:xtensa-6.13-esp32 35/53] drivers/misc/esp32-ipc.c:152:20: warning: cast to pointer from integer of different size
@ 2025-02-03 16:45 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-03 16:45 UTC (permalink / raw)
To: Max Filippov; +Cc: oe-kbuild-all
Hi Max,
First bad commit (maybe != root cause):
tree: https://github.com/jcmvbkbc/linux-xtensa xtensa-6.13-esp32
head: f4a6cef2509c4e81637b6d5d6f0c27966895985a
commit: 08b8a525de25b35564cb9ae5f7b5ad1122a84fed [35/53] esp_wifi: add IPC transport
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20250204/202502040037.NguiCtFF-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250204/202502040037.NguiCtFF-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/202502040037.NguiCtFF-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/misc/esp32-ipc.c: In function 'init_hw':
>> drivers/misc/esp32-ipc.c:152:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
152 | hw->hw_q = (void *)readl(p);
| ^
At top level:
>> drivers/misc/esp32-ipc.c:228:34: warning: 'esp32_ipc_match' defined but not used [-Wunused-const-variable=]
228 | static const struct of_device_id esp32_ipc_match[] = {
| ^~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for ESP32_IPC
Depends on [n]: OF [=n] && HAS_IOMEM [=y]
Selected by [y]:
- ESP32_WIFI_SHMEM [=y] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ESPRESSIF [=y]
vim +152 drivers/misc/esp32-ipc.c
ff5d67ac76ee59 Max Filippov 2023-08-11 144
ff5d67ac76ee59 Max Filippov 2023-08-11 145 static int init_hw(struct platform_device *pdev, struct esp32_ipc *hw)
ff5d67ac76ee59 Max Filippov 2023-08-11 146 {
ff5d67ac76ee59 Max Filippov 2023-08-11 147 void __iomem *p;
ff5d67ac76ee59 Max Filippov 2023-08-11 148
ff5d67ac76ee59 Max Filippov 2023-08-11 149 p = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0, NULL);
ff5d67ac76ee59 Max Filippov 2023-08-11 150 if (IS_ERR(p))
ff5d67ac76ee59 Max Filippov 2023-08-11 151 return PTR_ERR(p);
ff5d67ac76ee59 Max Filippov 2023-08-11 @152 hw->hw_q = (void *)readl(p);
ff5d67ac76ee59 Max Filippov 2023-08-11 153 devm_iounmap(&pdev->dev, p);
ff5d67ac76ee59 Max Filippov 2023-08-11 154
ff5d67ac76ee59 Max Filippov 2023-08-11 155 hw->regs = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 1, NULL);
ff5d67ac76ee59 Max Filippov 2023-08-11 156 if (IS_ERR(hw->regs))
ff5d67ac76ee59 Max Filippov 2023-08-11 157 return PTR_ERR(hw->regs);
ff5d67ac76ee59 Max Filippov 2023-08-11 158
ff5d67ac76ee59 Max Filippov 2023-08-11 159 dev_dbg(&pdev->dev, "%s: regs = %p, queues = %p\n",
ff5d67ac76ee59 Max Filippov 2023-08-11 160 __func__, hw->regs, hw->hw_q);
ff5d67ac76ee59 Max Filippov 2023-08-11 161 if (hw->hw_q) {
ff5d67ac76ee59 Max Filippov 2023-08-11 162 u32 i;
ff5d67ac76ee59 Max Filippov 2023-08-11 163
ff5d67ac76ee59 Max Filippov 2023-08-11 164 for (i = 0; i < 2; ++i) {
ff5d67ac76ee59 Max Filippov 2023-08-11 165 dev_dbg(&pdev->dev, "%s: queue %d: offset = %d, mask = %x\n",
ff5d67ac76ee59 Max Filippov 2023-08-11 166 __func__, i,
ff5d67ac76ee59 Max Filippov 2023-08-11 167 hw->hw_q[i].offset,
ff5d67ac76ee59 Max Filippov 2023-08-11 168 hw->hw_q[i].mask);
ff5d67ac76ee59 Max Filippov 2023-08-11 169 }
ff5d67ac76ee59 Max Filippov 2023-08-11 170 } else {
ff5d67ac76ee59 Max Filippov 2023-08-11 171 return -ENODEV;
ff5d67ac76ee59 Max Filippov 2023-08-11 172 }
ff5d67ac76ee59 Max Filippov 2023-08-11 173
ff5d67ac76ee59 Max Filippov 2023-08-11 174 hw->irq = platform_get_irq(pdev, 0);
ff5d67ac76ee59 Max Filippov 2023-08-11 175 if (hw->irq >= 0) {
ff5d67ac76ee59 Max Filippov 2023-08-11 176 int ret;
ff5d67ac76ee59 Max Filippov 2023-08-11 177
ff5d67ac76ee59 Max Filippov 2023-08-11 178 ret = devm_request_threaded_irq(&pdev->dev, hw->irq,
ff5d67ac76ee59 Max Filippov 2023-08-11 179 esp32_ipc_irq_handler,
ff5d67ac76ee59 Max Filippov 2023-08-11 180 esp32_ipc_thread_handler,
ff5d67ac76ee59 Max Filippov 2023-08-11 181 IRQF_SHARED, pdev->name, hw);
ff5d67ac76ee59 Max Filippov 2023-08-11 182 if (ret < 0) {
ff5d67ac76ee59 Max Filippov 2023-08-11 183 dev_err(&pdev->dev, "request_irq %d failed\n", hw->irq);
ff5d67ac76ee59 Max Filippov 2023-08-11 184 return ret;
ff5d67ac76ee59 Max Filippov 2023-08-11 185 }
ff5d67ac76ee59 Max Filippov 2023-08-11 186 } else {
ff5d67ac76ee59 Max Filippov 2023-08-11 187 dev_err(&pdev->dev, "missing IRQ property\n");
ff5d67ac76ee59 Max Filippov 2023-08-11 188 return -ENODEV;
ff5d67ac76ee59 Max Filippov 2023-08-11 189 }
ff5d67ac76ee59 Max Filippov 2023-08-11 190
ff5d67ac76ee59 Max Filippov 2023-08-11 191 return 0;
ff5d67ac76ee59 Max Filippov 2023-08-11 192 }
ff5d67ac76ee59 Max Filippov 2023-08-11 193
ff5d67ac76ee59 Max Filippov 2023-08-11 194 static int esp32_ipc_probe(struct platform_device *pdev)
ff5d67ac76ee59 Max Filippov 2023-08-11 195 {
ff5d67ac76ee59 Max Filippov 2023-08-11 196 struct esp32_ipc *hw =
ff5d67ac76ee59 Max Filippov 2023-08-11 197 devm_kzalloc(&pdev->dev, sizeof(*hw), GFP_KERNEL);
ff5d67ac76ee59 Max Filippov 2023-08-11 198 int ret;
ff5d67ac76ee59 Max Filippov 2023-08-11 199
ff5d67ac76ee59 Max Filippov 2023-08-11 200 if (!hw)
ff5d67ac76ee59 Max Filippov 2023-08-11 201 return -ENOMEM;
ff5d67ac76ee59 Max Filippov 2023-08-11 202 platform_set_drvdata(pdev, hw);
ff5d67ac76ee59 Max Filippov 2023-08-11 203
ff5d67ac76ee59 Max Filippov 2023-08-11 204 spin_lock_init(&hw->lock);
ff5d67ac76ee59 Max Filippov 2023-08-11 205 ret = init_hw(pdev, hw);
ff5d67ac76ee59 Max Filippov 2023-08-11 206 if (ret < 0)
ff5d67ac76ee59 Max Filippov 2023-08-11 207 return ret;
ff5d67ac76ee59 Max Filippov 2023-08-11 208
ff5d67ac76ee59 Max Filippov 2023-08-11 209 hw->hw_q[ESP32_IPC_WRITE_HW_Q].read = 0;
ff5d67ac76ee59 Max Filippov 2023-08-11 210 hw->hw_q[ESP32_IPC_WRITE_HW_Q].write = 0;
ff5d67ac76ee59 Max Filippov 2023-08-11 211 wmb();
ff5d67ac76ee59 Max Filippov 2023-08-11 212 writel(1, hw->regs + ESP32_IPC_IRQ_TO_FW_REG);
ff5d67ac76ee59 Max Filippov 2023-08-11 213
ff5d67ac76ee59 Max Filippov 2023-08-11 214 ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
ff5d67ac76ee59 Max Filippov 2023-08-11 215 return ret;
ff5d67ac76ee59 Max Filippov 2023-08-11 216 }
ff5d67ac76ee59 Max Filippov 2023-08-11 217
ff5d67ac76ee59 Max Filippov 2023-08-11 218 static void esp32_ipc_remove(struct platform_device *pdev)
ff5d67ac76ee59 Max Filippov 2023-08-11 219 {
ff5d67ac76ee59 Max Filippov 2023-08-11 220 struct esp32_ipc *hw = platform_get_drvdata(pdev);
ff5d67ac76ee59 Max Filippov 2023-08-11 221
ff5d67ac76ee59 Max Filippov 2023-08-11 222 if (!hw)
ff5d67ac76ee59 Max Filippov 2023-08-11 223 return;
ff5d67ac76ee59 Max Filippov 2023-08-11 224
ff5d67ac76ee59 Max Filippov 2023-08-11 225 disable_irq(hw->irq);
ff5d67ac76ee59 Max Filippov 2023-08-11 226 }
ff5d67ac76ee59 Max Filippov 2023-08-11 227
ff5d67ac76ee59 Max Filippov 2023-08-11 @228 static const struct of_device_id esp32_ipc_match[] = {
ff5d67ac76ee59 Max Filippov 2023-08-11 229 {
ff5d67ac76ee59 Max Filippov 2023-08-11 230 .compatible = "esp,esp32-ipc",
ff5d67ac76ee59 Max Filippov 2023-08-11 231 }, {},
ff5d67ac76ee59 Max Filippov 2023-08-11 232 };
ff5d67ac76ee59 Max Filippov 2023-08-11 233 MODULE_DEVICE_TABLE(of, esp32_ipc_match);
ff5d67ac76ee59 Max Filippov 2023-08-11 234
:::::: The code at line 152 was first introduced by commit
:::::: ff5d67ac76ee59b6351fd6f70df8d0178ef4f72a misc/esp32-ipc: introduce generic IPC for ESP32
:::::: TO: Max Filippov <jcmvbkbc@gmail.com>
:::::: CC: Max Filippov <jcmvbkbc@gmail.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-02-03 16:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-03 16:45 [jcmvbkbc-xtensa:xtensa-6.13-esp32 35/53] drivers/misc/esp32-ipc.c:152:20: warning: cast to pointer from integer of different size kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.