@@ -1393,50 +1393,37 @@ static int atmel_qspi_probe(struct platform_device *pdev)
1393
1393
aq -> mmap_phys_base = (dma_addr_t )res -> start ;
1394
1394
1395
1395
/* Get the peripheral clock */
1396
- aq -> pclk = devm_clk_get (& pdev -> dev , "pclk" );
1396
+ aq -> pclk = devm_clk_get_enabled (& pdev -> dev , "pclk" );
1397
1397
if (IS_ERR (aq -> pclk ))
1398
- aq -> pclk = devm_clk_get (& pdev -> dev , NULL );
1398
+ aq -> pclk = devm_clk_get_enabled (& pdev -> dev , NULL );
1399
1399
1400
1400
if (IS_ERR (aq -> pclk ))
1401
1401
return dev_err_probe (& pdev -> dev , PTR_ERR (aq -> pclk ),
1402
1402
"missing peripheral clock\n" );
1403
1403
1404
- /* Enable the peripheral clock */
1405
- err = clk_prepare_enable (aq -> pclk );
1406
- if (err )
1407
- return dev_err_probe (& pdev -> dev , err ,
1408
- "failed to enable the peripheral clock\n" );
1409
-
1410
1404
if (aq -> caps -> has_qspick ) {
1411
1405
/* Get the QSPI system clock */
1412
- aq -> qspick = devm_clk_get (& pdev -> dev , "qspick" );
1406
+ aq -> qspick = devm_clk_get_enabled (& pdev -> dev , "qspick" );
1413
1407
if (IS_ERR (aq -> qspick )) {
1414
1408
dev_err (& pdev -> dev , "missing system clock\n" );
1415
1409
err = PTR_ERR (aq -> qspick );
1416
- goto disable_pclk ;
1410
+ return err ;
1417
1411
}
1418
1412
1419
- /* Enable the QSPI system clock */
1420
- err = clk_prepare_enable (aq -> qspick );
1421
- if (err ) {
1422
- dev_err (& pdev -> dev ,
1423
- "failed to enable the QSPI system clock\n" );
1424
- goto disable_pclk ;
1425
- }
1426
1413
} else if (aq -> caps -> has_gclk ) {
1427
1414
/* Get the QSPI generic clock */
1428
1415
aq -> gclk = devm_clk_get (& pdev -> dev , "gclk" );
1429
1416
if (IS_ERR (aq -> gclk )) {
1430
1417
dev_err (& pdev -> dev , "missing Generic clock\n" );
1431
1418
err = PTR_ERR (aq -> gclk );
1432
- goto disable_pclk ;
1419
+ return err ;
1433
1420
}
1434
1421
}
1435
1422
1436
1423
if (aq -> caps -> has_dma ) {
1437
1424
err = atmel_qspi_dma_init (ctrl );
1438
1425
if (err == - EPROBE_DEFER )
1439
- goto disable_qspick ;
1426
+ return err ;
1440
1427
}
1441
1428
1442
1429
/* Request the IRQ */
@@ -1476,10 +1463,6 @@ static int atmel_qspi_probe(struct platform_device *pdev)
1476
1463
dma_release :
1477
1464
if (aq -> caps -> has_dma )
1478
1465
atmel_qspi_dma_release (aq );
1479
- disable_qspick :
1480
- clk_disable_unprepare (aq -> qspick );
1481
- disable_pclk :
1482
- clk_disable_unprepare (aq -> pclk );
1483
1466
1484
1467
return err ;
1485
1468
}
@@ -1518,7 +1501,6 @@ static int atmel_qspi_sama7g5_suspend(struct atmel_qspi *aq)
1518
1501
if (ret )
1519
1502
return ret ;
1520
1503
1521
- clk_disable_unprepare (aq -> pclk );
1522
1504
return 0 ;
1523
1505
}
1524
1506
@@ -1543,8 +1525,6 @@ static void atmel_qspi_remove(struct platform_device *pdev)
1543
1525
}
1544
1526
1545
1527
atmel_qspi_write (QSPI_CR_QSPIDIS , aq , QSPI_CR );
1546
- clk_disable (aq -> qspick );
1547
- clk_disable (aq -> pclk );
1548
1528
} else {
1549
1529
/*
1550
1530
* atmel_qspi_runtime_{suspend,resume} just disable and enable
@@ -1554,9 +1534,6 @@ static void atmel_qspi_remove(struct platform_device *pdev)
1554
1534
dev_warn (& pdev -> dev , "Failed to resume device on remove\n" );
1555
1535
}
1556
1536
1557
- clk_unprepare (aq -> qspick );
1558
- clk_unprepare (aq -> pclk );
1559
-
1560
1537
pm_runtime_disable (& pdev -> dev );
1561
1538
pm_runtime_dont_use_autosuspend (& pdev -> dev );
1562
1539
pm_runtime_put_noidle (& pdev -> dev );
@@ -1572,8 +1549,11 @@ static int __maybe_unused atmel_qspi_suspend(struct device *dev)
1572
1549
if (ret < 0 )
1573
1550
return ret ;
1574
1551
1575
- if (aq -> caps -> has_gclk )
1576
- return atmel_qspi_sama7g5_suspend (aq );
1552
+ if (aq -> caps -> has_gclk ) {
1553
+ ret = atmel_qspi_sama7g5_suspend (aq );
1554
+ clk_disable_unprepare (aq -> pclk );
1555
+ return ret ;
1556
+ }
1577
1557
1578
1558
atmel_qspi_write (QSPI_CR_QSPIDIS , aq , QSPI_CR );
1579
1559
0 commit comments