Message ID | 20240821214052.6800-5-wahrenst@gmx.net (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | ARM: bcm2835: Implement initial S2Idle for Raspberry Pi | expand |
Hi Stefan, kernel test robot noticed the following build warnings: [auto build test WARNING on linus/master] [also build test WARNING on arm/for-next arm/fixes v6.11-rc4 next-20240822] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stefan-Wahren/mailbox-bcm2835-Fix-timeout-during-suspend-mode/20240822-063725 base: linus/master patch link: https://lore.kernel.org/r/20240821214052.6800-5-wahrenst%40gmx.net patch subject: [PATCH V3 4/9] drm/vc4: hdmi: add PM suspend/resume support config: arc-allmodconfig (https://download.01.org/0day-ci/archive/20240822/202408221940.t4pWjzvz-lkp@intel.com/config) compiler: arceb-elf-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240822/202408221940.t4pWjzvz-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202408221940.t4pWjzvz-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/vc4/vc4_hdmi.c:3118:12: warning: 'vc4_hdmi_resume' defined but not used [-Wunused-function] 3118 | static int vc4_hdmi_resume(struct device *dev) | ^~~~~~~~~~~~~~~ >> drivers/gpu/drm/vc4/vc4_hdmi.c:3107:12: warning: 'vc4_hdmi_suspend' defined but not used [-Wunused-function] 3107 | static int vc4_hdmi_suspend(struct device *dev) | ^~~~~~~~~~~~~~~~ vim +/vc4_hdmi_resume +3118 drivers/gpu/drm/vc4/vc4_hdmi.c 3106 > 3107 static int vc4_hdmi_suspend(struct device *dev) 3108 { 3109 struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); 3110 struct drm_device *drm = vc4_hdmi->connector.dev; 3111 3112 if (drm && drm->mode_config.poll_enabled) 3113 drm_kms_helper_poll_disable(drm); 3114 3115 return pm_runtime_force_suspend(dev); 3116 } 3117 > 3118 static int vc4_hdmi_resume(struct device *dev) 3119 { 3120 struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); 3121 struct drm_device *drm = vc4_hdmi->connector.dev; 3122 int ret; 3123 3124 ret = pm_runtime_force_resume(dev); 3125 3126 if (drm && drm->mode_config.poll_enabled) 3127 drm_kms_helper_poll_enable(drm); 3128 3129 return ret; 3130 } 3131
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 6611ab7c26a6..f7a4ed16094e 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -3104,6 +3104,31 @@ static int vc5_hdmi_init_resources(struct drm_device *drm, return 0; } +static int vc4_hdmi_suspend(struct device *dev) +{ + struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + struct drm_device *drm = vc4_hdmi->connector.dev; + + if (drm && drm->mode_config.poll_enabled) + drm_kms_helper_poll_disable(drm); + + return pm_runtime_force_suspend(dev); +} + +static int vc4_hdmi_resume(struct device *dev) +{ + struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + struct drm_device *drm = vc4_hdmi->connector.dev; + int ret; + + ret = pm_runtime_force_resume(dev); + + if (drm && drm->mode_config.poll_enabled) + drm_kms_helper_poll_enable(drm); + + return ret; +} + static int vc4_hdmi_runtime_suspend(struct device *dev) { struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); @@ -3405,6 +3430,7 @@ static const struct dev_pm_ops vc4_hdmi_pm_ops = { SET_RUNTIME_PM_OPS(vc4_hdmi_runtime_suspend, vc4_hdmi_runtime_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(vc4_hdmi_suspend, vc4_hdmi_resume) }; struct platform_driver vc4_hdmi_driver = {