* drivers/media/platform/chips-media/wave5/wave5-vpu.c:212:2-9: line 212 is redundant because platform_get_irq() already prints an error
@ 2024-02-12 7:22 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-02-12 7:22 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Nas Chung <nas.chung@chipsnmedia.com>
CC: Hans Verkuil <hverkuil@xs4all.nl>
CC: Sebastian Fricke <sebastian.fricke@collabora.com>
CC: Nicolas Dufresne <nicolas.dufresne@collabora.com>
CC: Robert Beckett <bob.beckett@collabora.com>
CC: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 841c35169323cd833294798e58b9bf63fa4fa1de
commit: 9707a6254a8a6b978bde811a44fe07d86c229d1c media: chips-media: wave5: Add the v4l2 layer
date: 3 months ago
:::::: branch date: 11 hours ago
:::::: commit date: 3 months ago
config: powerpc-randconfig-r062-20240211 (https://download.01.org/0day-ci/archive/20240212/202402121530.NU2bb9D3-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 13.2.0
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>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202402121530.NU2bb9D3-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/media/platform/chips-media/wave5/wave5-vpu.c:212:2-9: line 212 is redundant because platform_get_irq() already prints an error
vim +212 drivers/media/platform/chips-media/wave5/wave5-vpu.c
9707a6254a8a6b Nas Chung 2023-11-08 119
9707a6254a8a6b Nas Chung 2023-11-08 120 static int wave5_vpu_probe(struct platform_device *pdev)
9707a6254a8a6b Nas Chung 2023-11-08 121 {
9707a6254a8a6b Nas Chung 2023-11-08 122 int ret;
9707a6254a8a6b Nas Chung 2023-11-08 123 struct vpu_device *dev;
9707a6254a8a6b Nas Chung 2023-11-08 124 const struct wave5_match_data *match_data;
9707a6254a8a6b Nas Chung 2023-11-08 125 u32 fw_revision;
9707a6254a8a6b Nas Chung 2023-11-08 126
9707a6254a8a6b Nas Chung 2023-11-08 127 match_data = device_get_match_data(&pdev->dev);
9707a6254a8a6b Nas Chung 2023-11-08 128 if (!match_data) {
9707a6254a8a6b Nas Chung 2023-11-08 129 dev_err(&pdev->dev, "missing device match data\n");
9707a6254a8a6b Nas Chung 2023-11-08 130 return -EINVAL;
9707a6254a8a6b Nas Chung 2023-11-08 131 }
9707a6254a8a6b Nas Chung 2023-11-08 132
9707a6254a8a6b Nas Chung 2023-11-08 133 /* physical addresses limited to 32 bits */
9707a6254a8a6b Nas Chung 2023-11-08 134 ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
9707a6254a8a6b Nas Chung 2023-11-08 135 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 136 dev_err(&pdev->dev, "Failed to set DMA mask: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 137 return ret;
9707a6254a8a6b Nas Chung 2023-11-08 138 }
9707a6254a8a6b Nas Chung 2023-11-08 139
9707a6254a8a6b Nas Chung 2023-11-08 140 dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
9707a6254a8a6b Nas Chung 2023-11-08 141 if (!dev)
9707a6254a8a6b Nas Chung 2023-11-08 142 return -ENOMEM;
9707a6254a8a6b Nas Chung 2023-11-08 143
9707a6254a8a6b Nas Chung 2023-11-08 144 dev->vdb_register = devm_platform_ioremap_resource(pdev, 0);
9707a6254a8a6b Nas Chung 2023-11-08 145 if (IS_ERR(dev->vdb_register))
9707a6254a8a6b Nas Chung 2023-11-08 146 return PTR_ERR(dev->vdb_register);
9707a6254a8a6b Nas Chung 2023-11-08 147 ida_init(&dev->inst_ida);
9707a6254a8a6b Nas Chung 2023-11-08 148
9707a6254a8a6b Nas Chung 2023-11-08 149 mutex_init(&dev->dev_lock);
9707a6254a8a6b Nas Chung 2023-11-08 150 mutex_init(&dev->hw_lock);
9707a6254a8a6b Nas Chung 2023-11-08 151 dev_set_drvdata(&pdev->dev, dev);
9707a6254a8a6b Nas Chung 2023-11-08 152 dev->dev = &pdev->dev;
9707a6254a8a6b Nas Chung 2023-11-08 153
9707a6254a8a6b Nas Chung 2023-11-08 154 ret = devm_clk_bulk_get_all(&pdev->dev, &dev->clks);
9707a6254a8a6b Nas Chung 2023-11-08 155
9707a6254a8a6b Nas Chung 2023-11-08 156 /* continue without clock, assume externally managed */
9707a6254a8a6b Nas Chung 2023-11-08 157 if (ret < 0) {
9707a6254a8a6b Nas Chung 2023-11-08 158 dev_warn(&pdev->dev, "Getting clocks, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 159 ret = 0;
9707a6254a8a6b Nas Chung 2023-11-08 160 }
9707a6254a8a6b Nas Chung 2023-11-08 161 dev->num_clks = ret;
9707a6254a8a6b Nas Chung 2023-11-08 162
9707a6254a8a6b Nas Chung 2023-11-08 163 ret = clk_bulk_prepare_enable(dev->num_clks, dev->clks);
9707a6254a8a6b Nas Chung 2023-11-08 164 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 165 dev_err(&pdev->dev, "Enabling clocks, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 166 return ret;
9707a6254a8a6b Nas Chung 2023-11-08 167 }
9707a6254a8a6b Nas Chung 2023-11-08 168
9707a6254a8a6b Nas Chung 2023-11-08 169 ret = of_property_read_u32(pdev->dev.of_node, "sram-size",
9707a6254a8a6b Nas Chung 2023-11-08 170 &dev->sram_size);
9707a6254a8a6b Nas Chung 2023-11-08 171 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 172 dev_warn(&pdev->dev, "sram-size not found\n");
9707a6254a8a6b Nas Chung 2023-11-08 173 dev->sram_size = 0;
9707a6254a8a6b Nas Chung 2023-11-08 174 }
9707a6254a8a6b Nas Chung 2023-11-08 175
9707a6254a8a6b Nas Chung 2023-11-08 176 dev->sram_pool = of_gen_pool_get(pdev->dev.of_node, "sram", 0);
9707a6254a8a6b Nas Chung 2023-11-08 177 if (!dev->sram_pool)
9707a6254a8a6b Nas Chung 2023-11-08 178 dev_warn(&pdev->dev, "sram node not found\n");
9707a6254a8a6b Nas Chung 2023-11-08 179
9707a6254a8a6b Nas Chung 2023-11-08 180 dev->product_code = wave5_vdi_read_register(dev, VPU_PRODUCT_CODE_REGISTER);
9707a6254a8a6b Nas Chung 2023-11-08 181 ret = wave5_vdi_init(&pdev->dev);
9707a6254a8a6b Nas Chung 2023-11-08 182 if (ret < 0) {
9707a6254a8a6b Nas Chung 2023-11-08 183 dev_err(&pdev->dev, "wave5_vdi_init, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 184 goto err_clk_dis;
9707a6254a8a6b Nas Chung 2023-11-08 185 }
9707a6254a8a6b Nas Chung 2023-11-08 186 dev->product = wave5_vpu_get_product_id(dev);
9707a6254a8a6b Nas Chung 2023-11-08 187
9707a6254a8a6b Nas Chung 2023-11-08 188 INIT_LIST_HEAD(&dev->instances);
9707a6254a8a6b Nas Chung 2023-11-08 189 ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev);
9707a6254a8a6b Nas Chung 2023-11-08 190 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 191 dev_err(&pdev->dev, "v4l2_device_register, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 192 goto err_vdi_release;
9707a6254a8a6b Nas Chung 2023-11-08 193 }
9707a6254a8a6b Nas Chung 2023-11-08 194
9707a6254a8a6b Nas Chung 2023-11-08 195 if (match_data->flags & WAVE5_IS_DEC) {
9707a6254a8a6b Nas Chung 2023-11-08 196 ret = wave5_vpu_dec_register_device(dev);
9707a6254a8a6b Nas Chung 2023-11-08 197 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 198 dev_err(&pdev->dev, "wave5_vpu_dec_register_device, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 199 goto err_v4l2_unregister;
9707a6254a8a6b Nas Chung 2023-11-08 200 }
9707a6254a8a6b Nas Chung 2023-11-08 201 }
9707a6254a8a6b Nas Chung 2023-11-08 202 if (match_data->flags & WAVE5_IS_ENC) {
9707a6254a8a6b Nas Chung 2023-11-08 203 ret = wave5_vpu_enc_register_device(dev);
9707a6254a8a6b Nas Chung 2023-11-08 204 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 205 dev_err(&pdev->dev, "wave5_vpu_enc_register_device, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 206 goto err_dec_unreg;
9707a6254a8a6b Nas Chung 2023-11-08 207 }
9707a6254a8a6b Nas Chung 2023-11-08 208 }
9707a6254a8a6b Nas Chung 2023-11-08 209
9707a6254a8a6b Nas Chung 2023-11-08 210 dev->irq = platform_get_irq(pdev, 0);
9707a6254a8a6b Nas Chung 2023-11-08 211 if (dev->irq < 0) {
9707a6254a8a6b Nas Chung 2023-11-08 @212 dev_err(&pdev->dev, "failed to get irq resource\n");
9707a6254a8a6b Nas Chung 2023-11-08 213 ret = -ENXIO;
9707a6254a8a6b Nas Chung 2023-11-08 214 goto err_enc_unreg;
9707a6254a8a6b Nas Chung 2023-11-08 215 }
9707a6254a8a6b Nas Chung 2023-11-08 216
9707a6254a8a6b Nas Chung 2023-11-08 217 ret = devm_request_threaded_irq(&pdev->dev, dev->irq, NULL,
9707a6254a8a6b Nas Chung 2023-11-08 218 wave5_vpu_irq_thread, IRQF_ONESHOT, "vpu_irq", dev);
9707a6254a8a6b Nas Chung 2023-11-08 219 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 220 dev_err(&pdev->dev, "Register interrupt handler, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 221 goto err_enc_unreg;
9707a6254a8a6b Nas Chung 2023-11-08 222 }
9707a6254a8a6b Nas Chung 2023-11-08 223
9707a6254a8a6b Nas Chung 2023-11-08 224 ret = wave5_vpu_load_firmware(&pdev->dev, match_data->fw_name, &fw_revision);
9707a6254a8a6b Nas Chung 2023-11-08 225 if (ret) {
9707a6254a8a6b Nas Chung 2023-11-08 226 dev_err(&pdev->dev, "wave5_vpu_load_firmware, fail: %d\n", ret);
9707a6254a8a6b Nas Chung 2023-11-08 227 goto err_enc_unreg;
9707a6254a8a6b Nas Chung 2023-11-08 228 }
9707a6254a8a6b Nas Chung 2023-11-08 229
9707a6254a8a6b Nas Chung 2023-11-08 230 dev_info(&pdev->dev, "Added wave5 driver with caps: %s %s\n",
9707a6254a8a6b Nas Chung 2023-11-08 231 (match_data->flags & WAVE5_IS_ENC) ? "'ENCODE'" : "",
9707a6254a8a6b Nas Chung 2023-11-08 232 (match_data->flags & WAVE5_IS_DEC) ? "'DECODE'" : "");
9707a6254a8a6b Nas Chung 2023-11-08 233 dev_info(&pdev->dev, "Product Code: 0x%x\n", dev->product_code);
9707a6254a8a6b Nas Chung 2023-11-08 234 dev_info(&pdev->dev, "Firmware Revision: %u\n", fw_revision);
9707a6254a8a6b Nas Chung 2023-11-08 235 return 0;
9707a6254a8a6b Nas Chung 2023-11-08 236
9707a6254a8a6b Nas Chung 2023-11-08 237 err_enc_unreg:
9707a6254a8a6b Nas Chung 2023-11-08 238 if (match_data->flags & WAVE5_IS_ENC)
9707a6254a8a6b Nas Chung 2023-11-08 239 wave5_vpu_enc_unregister_device(dev);
9707a6254a8a6b Nas Chung 2023-11-08 240 err_dec_unreg:
9707a6254a8a6b Nas Chung 2023-11-08 241 if (match_data->flags & WAVE5_IS_DEC)
9707a6254a8a6b Nas Chung 2023-11-08 242 wave5_vpu_dec_unregister_device(dev);
9707a6254a8a6b Nas Chung 2023-11-08 243 err_v4l2_unregister:
9707a6254a8a6b Nas Chung 2023-11-08 244 v4l2_device_unregister(&dev->v4l2_dev);
9707a6254a8a6b Nas Chung 2023-11-08 245 err_vdi_release:
9707a6254a8a6b Nas Chung 2023-11-08 246 wave5_vdi_release(&pdev->dev);
9707a6254a8a6b Nas Chung 2023-11-08 247 err_clk_dis:
9707a6254a8a6b Nas Chung 2023-11-08 248 clk_bulk_disable_unprepare(dev->num_clks, dev->clks);
9707a6254a8a6b Nas Chung 2023-11-08 249
9707a6254a8a6b Nas Chung 2023-11-08 250 return ret;
9707a6254a8a6b Nas Chung 2023-11-08 251 }
9707a6254a8a6b Nas Chung 2023-11-08 252
--
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:[~2024-02-12 7:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-12 7:22 drivers/media/platform/chips-media/wave5/wave5-vpu.c:212:2-9: line 212 is redundant because platform_get_irq() already prints an error 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.