Skip to content

Commit f15e070

Browse files
outman119gregkh
authored andcommitted
spi: amlogic: spifc-a4: Remove redundant clock cleanup
[ Upstream commit a00da54d06f435dbbeacb84f9121dbbe6d6eda74 ] The driver uses devm_clk_get_enabled() which enables the clock and registers a callback to automatically disable it when the device is unbound. Remove the redundant aml_sfc_disable_clk() call in the error paths and remove callback. Fixes: 4670db6 ("spi: amlogic: add driver for Amlogic SPI Flash Controller") Signed-off-by: Felix Gu <ustc.gu@gmail.com> Link: https://patch.msgid.link/20260308-spifc-a4-1-v1-1-77e286c26832@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent a9e119d commit f15e070

1 file changed

Lines changed: 7 additions & 39 deletions

File tree

drivers/spi/spi-amlogic-spifc-a4.c

Lines changed: 7 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,14 +1083,6 @@ static int aml_sfc_clk_init(struct aml_sfc *sfc)
10831083
return clk_set_rate(sfc->core_clk, SFC_BUS_DEFAULT_CLK);
10841084
}
10851085

1086-
static int aml_sfc_disable_clk(struct aml_sfc *sfc)
1087-
{
1088-
clk_disable_unprepare(sfc->core_clk);
1089-
clk_disable_unprepare(sfc->gate_clk);
1090-
1091-
return 0;
1092-
}
1093-
10941086
static int aml_sfc_probe(struct platform_device *pdev)
10951087
{
10961088
struct device_node *np = pdev->dev.of_node;
@@ -1141,27 +1133,21 @@ static int aml_sfc_probe(struct platform_device *pdev)
11411133

11421134
/* Enable Amlogic flash controller spi mode */
11431135
ret = regmap_write(sfc->regmap_base, SFC_SPI_CFG, SPI_MODE_EN);
1144-
if (ret) {
1145-
dev_err(dev, "failed to enable SPI mode\n");
1146-
goto err_out;
1147-
}
1136+
if (ret)
1137+
return dev_err_probe(dev, ret, "failed to enable SPI mode\n");
11481138

11491139
ret = dma_set_mask(sfc->dev, DMA_BIT_MASK(32));
1150-
if (ret) {
1151-
dev_err(sfc->dev, "failed to set dma mask\n");
1152-
goto err_out;
1153-
}
1140+
if (ret)
1141+
return dev_err_probe(sfc->dev, ret, "failed to set dma mask\n");
11541142

11551143
sfc->ecc_eng.dev = &pdev->dev;
11561144
sfc->ecc_eng.integration = NAND_ECC_ENGINE_INTEGRATION_PIPELINED;
11571145
sfc->ecc_eng.ops = &aml_sfc_ecc_engine_ops;
11581146
sfc->ecc_eng.priv = sfc;
11591147

11601148
ret = nand_ecc_register_on_host_hw_engine(&sfc->ecc_eng);
1161-
if (ret) {
1162-
dev_err(&pdev->dev, "failed to register Aml host ecc engine.\n");
1163-
goto err_out;
1164-
}
1149+
if (ret)
1150+
return dev_err_probe(&pdev->dev, ret, "failed to register Aml host ecc engine.\n");
11651151

11661152
ret = of_property_read_u32(np, "amlogic,rx-adj", &val);
11671153
if (!ret)
@@ -1177,24 +1163,7 @@ static int aml_sfc_probe(struct platform_device *pdev)
11771163
ctrl->min_speed_hz = SFC_MIN_FREQUENCY;
11781164
ctrl->num_chipselect = SFC_MAX_CS_NUM;
11791165

1180-
ret = devm_spi_register_controller(dev, ctrl);
1181-
if (ret)
1182-
goto err_out;
1183-
1184-
return 0;
1185-
1186-
err_out:
1187-
aml_sfc_disable_clk(sfc);
1188-
1189-
return ret;
1190-
}
1191-
1192-
static void aml_sfc_remove(struct platform_device *pdev)
1193-
{
1194-
struct spi_controller *ctlr = platform_get_drvdata(pdev);
1195-
struct aml_sfc *sfc = spi_controller_get_devdata(ctlr);
1196-
1197-
aml_sfc_disable_clk(sfc);
1166+
return devm_spi_register_controller(dev, ctrl);
11981167
}
11991168

12001169
static const struct of_device_id aml_sfc_of_match[] = {
@@ -1212,7 +1181,6 @@ static struct platform_driver aml_sfc_driver = {
12121181
.of_match_table = aml_sfc_of_match,
12131182
},
12141183
.probe = aml_sfc_probe,
1215-
.remove = aml_sfc_remove,
12161184
};
12171185
module_platform_driver(aml_sfc_driver);
12181186

0 commit comments

Comments
 (0)