hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/spi/spi-cadence-quadspi.c
....@@ -1355,17 +1355,30 @@
13551355 static int cqspi_suspend(struct device *dev)
13561356 {
13571357 struct cqspi_st *cqspi = dev_get_drvdata(dev);
1358
+ struct spi_master *master = dev_get_drvdata(dev);
1359
+ int ret;
13581360
1361
+ ret = spi_master_suspend(master);
13591362 cqspi_controller_enable(cqspi, 0);
1360
- return 0;
1363
+
1364
+ clk_disable_unprepare(cqspi->clk);
1365
+
1366
+ return ret;
13611367 }
13621368
13631369 static int cqspi_resume(struct device *dev)
13641370 {
13651371 struct cqspi_st *cqspi = dev_get_drvdata(dev);
1372
+ struct spi_master *master = dev_get_drvdata(dev);
13661373
1367
- cqspi_controller_enable(cqspi, 1);
1368
- return 0;
1374
+ clk_prepare_enable(cqspi->clk);
1375
+ cqspi_wait_idle(cqspi);
1376
+ cqspi_controller_init(cqspi);
1377
+
1378
+ cqspi->current_cs = -1;
1379
+ cqspi->sclk = 0;
1380
+
1381
+ return spi_master_resume(master);
13691382 }
13701383
13711384 static const struct dev_pm_ops cqspi__dev_pm_ops = {