dmaengine: mv_xor_v2: add support for suspend/resume
This commit adds the support for suspend/resume in the mv_xor_v2 driver. The suspend suspend function disables the XOR engine after the DMA stack has handled all pending descriptors in the queue. The resume function re-configures the XOR engine and re-enables the engine. Signed-off-by: Hanna Hawa <hannah@marvell.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
35e34480c5
commit
ecfa77145b
|
@ -696,6 +696,27 @@ static int mv_xor_v2_descq_init(struct mv_xor_v2_device *xor_dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int mv_xor_v2_suspend(struct platform_device *dev, pm_message_t state)
|
||||||
|
{
|
||||||
|
struct mv_xor_v2_device *xor_dev = platform_get_drvdata(dev);
|
||||||
|
|
||||||
|
/* Set this bit to disable to stop the XOR unit. */
|
||||||
|
writel(0x1, xor_dev->dma_base + MV_XOR_V2_DMA_DESQ_STOP_OFF);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mv_xor_v2_resume(struct platform_device *dev)
|
||||||
|
{
|
||||||
|
struct mv_xor_v2_device *xor_dev = platform_get_drvdata(dev);
|
||||||
|
|
||||||
|
mv_xor_v2_set_desc_size(xor_dev);
|
||||||
|
mv_xor_v2_enable_imsg_thrd(xor_dev);
|
||||||
|
mv_xor_v2_descq_init(xor_dev);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int mv_xor_v2_probe(struct platform_device *pdev)
|
static int mv_xor_v2_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct mv_xor_v2_device *xor_dev;
|
struct mv_xor_v2_device *xor_dev;
|
||||||
|
@ -877,6 +898,8 @@ MODULE_DEVICE_TABLE(of, mv_xor_v2_dt_ids);
|
||||||
|
|
||||||
static struct platform_driver mv_xor_v2_driver = {
|
static struct platform_driver mv_xor_v2_driver = {
|
||||||
.probe = mv_xor_v2_probe,
|
.probe = mv_xor_v2_probe,
|
||||||
|
.suspend = mv_xor_v2_suspend,
|
||||||
|
.resume = mv_xor_v2_resume,
|
||||||
.remove = mv_xor_v2_remove,
|
.remove = mv_xor_v2_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "mv_xor_v2",
|
.name = "mv_xor_v2",
|
||||||
|
|
Loading…
Reference in New Issue