Skip to content

Commit 0ad902a

Browse files
committed
spi: s3c64xx: Cleanups
Merge series from Andi Shyti <[email protected]>: Two small cleanups in the probe function. The first puts in use the managed spi master allocation while the second implements the dev_err_probe() function.
2 parents 5b6d0b9 + b4f2737 commit 0ad902a

File tree

1 file changed

+30
-51
lines changed

1 file changed

+30
-51
lines changed

drivers/spi/spi-s3c64xx.c

Lines changed: 30 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,29 +1160,23 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
11601160
return PTR_ERR(sci);
11611161
}
11621162

1163-
if (!sci) {
1164-
dev_err(&pdev->dev, "platform_data missing!\n");
1165-
return -ENODEV;
1166-
}
1163+
if (!sci)
1164+
return dev_err_probe(&pdev->dev, -ENODEV,
1165+
"Platform_data missing!\n");
11671166

11681167
mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1169-
if (mem_res == NULL) {
1170-
dev_err(&pdev->dev, "Unable to get SPI MEM resource\n");
1171-
return -ENXIO;
1172-
}
1168+
if (!mem_res)
1169+
return dev_err_probe(&pdev->dev, -ENXIO,
1170+
"Unable to get SPI MEM resource\n");
11731171

11741172
irq = platform_get_irq(pdev, 0);
1175-
if (irq < 0) {
1176-
dev_warn(&pdev->dev, "Failed to get IRQ: %d\n", irq);
1177-
return irq;
1178-
}
1173+
if (irq < 0)
1174+
return dev_err_probe(&pdev->dev, irq, "Failed to get IRQ\n");
11791175

1180-
master = spi_alloc_master(&pdev->dev,
1181-
sizeof(struct s3c64xx_spi_driver_data));
1182-
if (master == NULL) {
1183-
dev_err(&pdev->dev, "Unable to allocate SPI Master\n");
1184-
return -ENOMEM;
1185-
}
1176+
master = devm_spi_alloc_master(&pdev->dev, sizeof(*sdd));
1177+
if (!master)
1178+
return dev_err_probe(&pdev->dev, -ENOMEM,
1179+
"Unable to allocate SPI Master\n");
11861180

11871181
platform_set_drvdata(pdev, master);
11881182

@@ -1194,11 +1188,9 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
11941188
sdd->sfr_start = mem_res->start;
11951189
if (pdev->dev.of_node) {
11961190
ret = of_alias_get_id(pdev->dev.of_node, "spi");
1197-
if (ret < 0) {
1198-
dev_err(&pdev->dev, "failed to get alias id, errno %d\n",
1199-
ret);
1200-
goto err_deref_master;
1201-
}
1191+
if (ret < 0)
1192+
return dev_err_probe(&pdev->dev, ret,
1193+
"Failed to get alias id\n");
12021194
sdd->port_id = ret;
12031195
} else {
12041196
sdd->port_id = pdev->id;
@@ -1232,41 +1224,31 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
12321224
master->can_dma = s3c64xx_spi_can_dma;
12331225

12341226
sdd->regs = devm_ioremap_resource(&pdev->dev, mem_res);
1235-
if (IS_ERR(sdd->regs)) {
1236-
ret = PTR_ERR(sdd->regs);
1237-
goto err_deref_master;
1238-
}
1227+
if (IS_ERR(sdd->regs))
1228+
return PTR_ERR(sdd->regs);
12391229

1240-
if (sci->cfg_gpio && sci->cfg_gpio()) {
1241-
dev_err(&pdev->dev, "Unable to config gpio\n");
1242-
ret = -EBUSY;
1243-
goto err_deref_master;
1244-
}
1230+
if (sci->cfg_gpio && sci->cfg_gpio())
1231+
return dev_err_probe(&pdev->dev, -EBUSY,
1232+
"Unable to config gpio\n");
12451233

12461234
/* Setup clocks */
12471235
sdd->clk = devm_clk_get_enabled(&pdev->dev, "spi");
1248-
if (IS_ERR(sdd->clk)) {
1249-
dev_err(&pdev->dev, "Unable to acquire clock 'spi'\n");
1250-
ret = PTR_ERR(sdd->clk);
1251-
goto err_deref_master;
1252-
}
1236+
if (IS_ERR(sdd->clk))
1237+
return dev_err_probe(&pdev->dev, PTR_ERR(sdd->clk),
1238+
"Unable to acquire clock 'spi'\n");
12531239

12541240
sprintf(clk_name, "spi_busclk%d", sci->src_clk_nr);
12551241
sdd->src_clk = devm_clk_get_enabled(&pdev->dev, clk_name);
1256-
if (IS_ERR(sdd->src_clk)) {
1257-
dev_err(&pdev->dev,
1258-
"Unable to acquire clock '%s'\n", clk_name);
1259-
ret = PTR_ERR(sdd->src_clk);
1260-
goto err_deref_master;
1261-
}
1242+
if (IS_ERR(sdd->src_clk))
1243+
return dev_err_probe(&pdev->dev, PTR_ERR(sdd->src_clk),
1244+
"Unable to acquire clock '%s'\n",
1245+
clk_name);
12621246

12631247
if (sdd->port_conf->clk_ioclk) {
12641248
sdd->ioclk = devm_clk_get_enabled(&pdev->dev, "spi_ioclk");
1265-
if (IS_ERR(sdd->ioclk)) {
1266-
dev_err(&pdev->dev, "Unable to acquire 'ioclk'\n");
1267-
ret = PTR_ERR(sdd->ioclk);
1268-
goto err_deref_master;
1269-
}
1249+
if (IS_ERR(sdd->ioclk))
1250+
return dev_err_probe(&pdev->dev, PTR_ERR(sdd->ioclk),
1251+
"Unable to acquire 'ioclk'\n");
12701252
}
12711253

12721254
pm_runtime_set_autosuspend_delay(&pdev->dev, AUTOSUSPEND_TIMEOUT);
@@ -1314,9 +1296,6 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
13141296
pm_runtime_disable(&pdev->dev);
13151297
pm_runtime_set_suspended(&pdev->dev);
13161298

1317-
err_deref_master:
1318-
spi_master_put(master);
1319-
13201299
return ret;
13211300
}
13221301

0 commit comments

Comments
 (0)