diff options
| author | Rosen Penev | 2024-08-11 01:05:28 +0000 |
|---|---|---|
| committer | Robert Marko | 2024-08-12 17:40:48 +0000 |
| commit | 11403697c9d36cc014cc408b6d0f14e5a74a17f9 (patch) | |
| tree | 246ec4cea5c40c6173b6d3c3e827db68cbf23420 | |
| parent | 9f8599aebe588ba247844ac6b937c97b6fc00994 (diff) | |
| download | openwrt-11403697c9d36cc014cc408b6d0f14e5a74a17f9.tar.gz | |
ramips: mt7621_nand: use clk_get_optional_enabled
Simplifies the code by removing clk_disable_unprepare.
Also removed gotos and used dev_err_probe.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16133
Signed-off-by: Robert Marko <robimarko@gmail.com>
| -rw-r--r-- | target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c b/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c index 89cc7e2624..880c8578bd 100644 --- a/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c +++ b/target/linux/ramips/files/drivers/mtd/nand/raw/mt7621_nand.c @@ -1290,44 +1290,28 @@ static int mt7621_nfc_probe(struct platform_device *pdev) res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nfi"); nfc->nfi_base = res->start; nfc->nfi_regs = devm_ioremap_resource(dev, res); - if (IS_ERR(nfc->nfi_regs)) { - ret = PTR_ERR(nfc->nfi_regs); - return ret; - } + if (IS_ERR(nfc->nfi_regs)) + return PTR_ERR(nfc->nfi_regs); res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ecc"); nfc->ecc_regs = devm_ioremap_resource(dev, res); - if (IS_ERR(nfc->ecc_regs)) { - ret = PTR_ERR(nfc->ecc_regs); - return ret; - } + if (IS_ERR(nfc->ecc_regs)) + return PTR_ERR(nfc->ecc_regs); - nfc->nfi_clk = devm_clk_get(dev, "nfi_clk"); - if (IS_ERR(nfc->nfi_clk)) { + nfc->nfi_clk = devm_clk_get_optional_enabled(dev, "nfi_clk"); + if (IS_ERR(nfc->nfi_clk)) + return PTR_ERR(nfc->nfi_clk); + + if (!nfc->nfi_clk) dev_warn(dev, "nfi clk not provided\n"); - nfc->nfi_clk = NULL; - } else { - ret = clk_prepare_enable(nfc->nfi_clk); - if (ret) { - dev_err(dev, "Failed to enable nfi core clock\n"); - return ret; - } - } platform_set_drvdata(pdev, nfc); ret = mt7621_nfc_init_chip(nfc); - if (ret) { - dev_err(dev, "Failed to initialize nand chip\n"); - goto clk_disable; - } + if (ret) + return dev_err_probe(dev, ret, "Failed to initialize nand chip\n"); return 0; - -clk_disable: - clk_disable_unprepare(nfc->nfi_clk); - - return ret; } static int mt7621_nfc_remove(struct platform_device *pdev) @@ -1339,7 +1323,6 @@ static int mt7621_nfc_remove(struct platform_device *pdev) mtk_bmt_detach(mtd); mtd_device_unregister(mtd); nand_cleanup(nand); - clk_disable_unprepare(nfc->nfi_clk); return 0; } |