@@ -1285,18 +1285,21 @@ static int atmel_qspi_dma_init(struct spi_controller *ctrl)
1285
1285
struct atmel_qspi * aq = spi_controller_get_devdata (ctrl );
1286
1286
int ret ;
1287
1287
1288
- aq -> rx_chan = dma_request_chan (& aq -> pdev -> dev , "rx" );
1288
+ aq -> rx_chan = devm_dma_request_chan (& aq -> pdev -> dev , "rx" );
1289
1289
if (IS_ERR (aq -> rx_chan )) {
1290
1290
ret = dev_err_probe (& aq -> pdev -> dev , PTR_ERR (aq -> rx_chan ),
1291
1291
"RX DMA channel is not available\n" );
1292
- goto null_rx_chan ;
1292
+ aq -> rx_chan = NULL ;
1293
+ return ret ;
1293
1294
}
1294
1295
1295
- aq -> tx_chan = dma_request_chan (& aq -> pdev -> dev , "tx" );
1296
+ aq -> tx_chan = devm_dma_request_chan (& aq -> pdev -> dev , "tx" );
1296
1297
if (IS_ERR (aq -> tx_chan )) {
1297
1298
ret = dev_err_probe (& aq -> pdev -> dev , PTR_ERR (aq -> tx_chan ),
1298
1299
"TX DMA channel is not available\n" );
1299
- goto release_rx_chan ;
1300
+ aq -> rx_chan = NULL ;
1301
+ aq -> tx_chan = NULL ;
1302
+ return ret ;
1300
1303
}
1301
1304
1302
1305
ctrl -> dma_rx = aq -> rx_chan ;
@@ -1307,21 +1310,6 @@ static int atmel_qspi_dma_init(struct spi_controller *ctrl)
1307
1310
dma_chan_name (aq -> tx_chan ), dma_chan_name (aq -> rx_chan ));
1308
1311
1309
1312
return 0 ;
1310
-
1311
- release_rx_chan :
1312
- dma_release_channel (aq -> rx_chan );
1313
- aq -> tx_chan = NULL ;
1314
- null_rx_chan :
1315
- aq -> rx_chan = NULL ;
1316
- return ret ;
1317
- }
1318
-
1319
- static void atmel_qspi_dma_release (struct atmel_qspi * aq )
1320
- {
1321
- if (aq -> rx_chan )
1322
- dma_release_channel (aq -> rx_chan );
1323
- if (aq -> tx_chan )
1324
- dma_release_channel (aq -> tx_chan );
1325
1313
}
1326
1314
1327
1315
static const struct atmel_qspi_ops atmel_qspi_ops = {
@@ -1426,14 +1414,13 @@ static int atmel_qspi_probe(struct platform_device *pdev)
1426
1414
1427
1415
/* Request the IRQ */
1428
1416
irq = platform_get_irq (pdev , 0 );
1429
- if (irq < 0 ) {
1430
- err = irq ;
1431
- goto dma_release ;
1432
- }
1417
+ if (irq < 0 )
1418
+ return irq ;
1419
+
1433
1420
err = devm_request_irq (& pdev -> dev , irq , atmel_qspi_interrupt ,
1434
1421
0 , dev_name (& pdev -> dev ), aq );
1435
1422
if (err )
1436
- goto dma_release ;
1423
+ return err ;
1437
1424
1438
1425
pm_runtime_set_autosuspend_delay (& pdev -> dev , 500 );
1439
1426
pm_runtime_use_autosuspend (& pdev -> dev );
@@ -1442,22 +1429,16 @@ static int atmel_qspi_probe(struct platform_device *pdev)
1442
1429
1443
1430
err = atmel_qspi_init (aq );
1444
1431
if (err )
1445
- goto dma_release ;
1432
+ return err ;
1446
1433
1447
1434
err = spi_register_controller (ctrl );
1448
1435
if (err )
1449
- goto dma_release ;
1436
+ return err ;
1450
1437
1451
1438
pm_runtime_mark_last_busy (& pdev -> dev );
1452
1439
pm_runtime_put_autosuspend (& pdev -> dev );
1453
1440
1454
1441
return 0 ;
1455
-
1456
- dma_release :
1457
- if (aq -> caps -> has_dma )
1458
- atmel_qspi_dma_release (aq );
1459
-
1460
- return err ;
1461
1442
}
1462
1443
1463
1444
static int atmel_qspi_sama7g5_suspend (struct atmel_qspi * aq )
@@ -1507,9 +1488,6 @@ static void atmel_qspi_remove(struct platform_device *pdev)
1507
1488
1508
1489
ret = pm_runtime_get_sync (& pdev -> dev );
1509
1490
if (ret >= 0 ) {
1510
- if (aq -> caps -> has_dma )
1511
- atmel_qspi_dma_release (aq );
1512
-
1513
1491
if (aq -> caps -> has_gclk ) {
1514
1492
ret = atmel_qspi_sama7g5_suspend (aq );
1515
1493
if (ret )
0 commit comments