* [bug report] mtd: rawnand: Add NAND controller support on Intel LGM SoC
@ 2020-12-15 12:42 Dan Carpenter
0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2020-12-15 12:42 UTC (permalink / raw)
To: vadivel.muruganx.ramuthevar; +Cc: linux-mtd
Hello Ramuthevar Vadivel Murugan,
The patch 0b1039f016e8: "mtd: rawnand: Add NAND controller support on
Intel LGM SoC" from Nov 10, 2020, leads to the following static
checker warning:
drivers/mtd/nand/raw/intel-nand-controller.c:683 ebu_nand_probe()
warn: 'ebu_host->clk' not released on lines: 633,638,644,652.
drivers/mtd/nand/raw/intel-nand-controller.c
617 return PTR_ERR(ebu_host->cs[cs].chipaddr);
618
619 ebu_host->clk = devm_clk_get(dev, NULL);
620 if (IS_ERR(ebu_host->clk))
621 return dev_err_probe(dev, PTR_ERR(ebu_host->clk),
622 "failed to get clock\n");
623
624 ret = clk_prepare_enable(ebu_host->clk);
625 if (ret) {
626 dev_err(dev, "failed to enable clock: %d\n", ret);
627 return ret;
628 }
629 ebu_host->clk_rate = clk_get_rate(ebu_host->clk);
630
631 ebu_host->dma_tx = dma_request_chan(dev, "tx");
632 if (IS_ERR(ebu_host->dma_tx))
633 return dev_err_probe(dev, PTR_ERR(ebu_host->dma_tx),
634 "failed to request DMA tx chan!.\n");
clk_disable_unprepare(ebu_host->clk); before returning?
635
636 ebu_host->dma_rx = dma_request_chan(dev, "rx");
637 if (IS_ERR(ebu_host->dma_rx))
638 return dev_err_probe(dev, PTR_ERR(ebu_host->dma_rx),
639 "failed to request DMA rx chan!.\n");
Here
640
641 resname = devm_kasprintf(dev, GFP_KERNEL, "addr_sel%d", cs);
642 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, resname);
643 if (!res)
644 return -EINVAL;
here
645 ebu_host->cs[cs].addr_sel = res->start;
646 writel(ebu_host->cs[cs].addr_sel | EBU_ADDR_MASK(5) | EBU_ADDR_SEL_REGEN,
647 ebu_host->ebu + EBU_ADDR_SEL(cs));
648
649 nand_set_flash_node(&ebu_host->chip, dev->of_node);
650 if (!mtd->name) {
651 dev_err(ebu_host->dev, "NAND label property is mandatory\n");
652 return -EINVAL;
here
653 }
654
655 mtd = nand_to_mtd(&ebu_host->chip);
656 mtd->dev.parent = dev;
657 ebu_host->dev = dev;
658
659 platform_set_drvdata(pdev, ebu_host);
660 nand_set_controller_data(&ebu_host->chip, ebu_host);
661
662 nand = &ebu_host->chip;
663 nand->controller = &ebu_host->controller;
664 nand->controller->ops = &ebu_nand_controller_ops;
665
666 /* Scan to find existence of the device */
667 ret = nand_scan(&ebu_host->chip, 1);
668 if (ret)
669 goto err_cleanup_dma;
670
671 ret = mtd_device_register(mtd, NULL, 0);
672 if (ret)
673 goto err_clean_nand;
674
675 return 0;
676
677 err_clean_nand:
678 nand_cleanup(&ebu_host->chip);
679 err_cleanup_dma:
680 ebu_dma_cleanup(ebu_host);
681 clk_disable_unprepare(ebu_host->clk);
682
683 return ret;
684 }
regards,
dan carpenter
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-12-15 12:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-15 12:42 [bug report] mtd: rawnand: Add NAND controller support on Intel LGM SoC 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.