All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] ARM/dmaengine: edma: Merge the two drivers under drivers/dma/
@ 2023-07-12 14:47 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2023-07-12 14:47 UTC (permalink / raw)
  To: peter.ujfalusi; +Cc: dmaengine

Hello Peter Ujfalusi,

The patch 2b6b3b742019: "ARM/dmaengine: edma: Merge the two drivers
under drivers/dma/" from Oct 14, 2015, leads to the following Smatch
static checker warning:

    drivers/dma/ti/edma.c:2405 edma_probe()
    warn: irq_of_parse_and_map() returns zero on failure

    drivers/dma/ti/edma.c:2421 edma_probe()
    warn: irq_of_parse_and_map() returns zero on failure

drivers/dma/ti/edma.c
    2397                 if (!test_bit(i, ecc->slot_inuse))
    2398                         edma_write_slot(ecc, i, &dummy_paramset);
    2399         }
    2400 
    2401         irq = platform_get_irq_byname(pdev, "edma3_ccint");
    2402         if (irq < 0 && node)
    2403                 irq = irq_of_parse_and_map(node, 0);
    2404 
--> 2405         if (irq >= 0) {

The platform_get_irq_byname() function returns negatives on error but
irq_of_parse_and_map() returns zero on error.  These IRQ functions are
a left over legacy mess.

    2406                 irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s_ccint",
    2407                                           dev_name(dev));
    2408                 ret = devm_request_irq(dev, irq, dma_irq_handler, 0, irq_name,
    2409                                        ecc);
    2410                 if (ret) {
    2411                         dev_err(dev, "CCINT (%d) failed --> %d\n", irq, ret);
    2412                         goto err_disable_pm;
    2413                 }
    2414                 ecc->ccint = irq;
    2415         }
    2416 
    2417         irq = platform_get_irq_byname(pdev, "edma3_ccerrint");
    2418         if (irq < 0 && node)
    2419                 irq = irq_of_parse_and_map(node, 2);
    2420 
    2421         if (irq >= 0) {

Same.

    2422                 irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s_ccerrint",
    2423                                           dev_name(dev));
    2424                 ret = devm_request_irq(dev, irq, dma_ccerr_handler, 0, irq_name,
    2425                                        ecc);
    2426                 if (ret) {
    2427                         dev_err(dev, "CCERRINT (%d) failed --> %d\n", irq, ret);
    2428                         goto err_disable_pm;
    2429                 }
    2430                 ecc->ccerrint = irq;
    2431         }
    2432 
    2433         ecc->dummy_slot = edma_alloc_slot(ecc, EDMA_SLOT_ANY);
    2434         if (ecc->dummy_slot < 0) {
    2435                 dev_err(dev, "Can't allocate PaRAM dummy slot\n");

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-07-12 14:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-12 14:47 [bug report] ARM/dmaengine: edma: Merge the two drivers under drivers/dma/ Dan Carpenter

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.