AnsweredAssumed Answered

[i.MX6] Suspend/resume implementation for dw_hdmi-imx.c

Question asked by PINTU KUMAR on May 30, 2019
Latest reply on Jun 17, 2019 by PINTU KUMAR


I am having imx6 Dual board with Linux Kernel 4.9 running on it. It is also connected to HDMI display.

But, I see that suspend/resume implementation is missing from imx hdmi driver: drivers/gpu/drm/imx/dw_hdmi-imx.c

Now, for some purpose our customer needs suspend/resume functionality for hdmi.


I would like to implement it myself. Can you help me in implementing this functionality with reference from technical manual and peripheral details.

If I am successful, I will help you in contributing this code changes to Linux Kernel mainline (on behalf of NXP).


Please help!


This is some code snippet with dummy implementation.

Can you help me in filling this dummy function...


static int dw_hdmi_suspend(struct device *dev)

return 0;

static int dw_hdmi_resume(struct device *dev)

return 0;


+static const struct dev_pm_ops hdmi_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(dw_hdmi_suspend, dw_hdmi_resume)
+ SET_RUNTIME_PM_OPS(dw_hdmi_runtime_suspend, dw_hdmi_runtime_resume, NULL)
static struct platform_driver dw_hdmi_imx_platform_driver = {
.probe = dw_hdmi_imx_probe,
.remove = dw_hdmi_imx_remove,
.driver = {
.name = "dwhdmi-imx",
+ .pm = &hdmi_pm_ops,
.of_match_table = dw_hdmi_imx_dt_ids,