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