summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_sideband.h
diff options
context:
space:
mode:
authorBadal Nilawar <badal.nilawar@intel.com>2021-07-27 23:03:38 +0530
committerRodrigo Vivi <rodrigo.vivi@intel.com>2021-07-28 12:35:29 -0400
commit41c791fcd61a45cf06accf68384699deb7cad6ad (patch)
tree148c1855272f17718a0ded548f814116f7579875 /drivers/gpu/drm/i915/intel_sideband.h
parent573d7ce4f69a85010fe2a40f4976326ee347f584 (diff)
downloadlinux-stable-41c791fcd61a45cf06accf68384699deb7cad6ad.tar.gz
linux-stable-41c791fcd61a45cf06accf68384699deb7cad6ad.tar.bz2
linux-stable-41c791fcd61a45cf06accf68384699deb7cad6ad.zip
drm/i915: dgfx cards need to wait on pcode's uncore init done
In discrete cards, the graphics driver shouldn't proceed with the probe or resume unless PCODE indicated everything is done, including memory training and gt bring up. For this reason, the driver probe and resume paths needs to be blocked until PCODE indicates it is done. Also, it needs to aborted if the notification never arrives. In general, the few miliseconds would be enough and the regular PCODE recommendation for the timeout was 10 seconds. However there are some rare cases where this initialization can take up to 1 minute. So, PCODE has increased the recommendation to 3 minutes so we don't fully block the device utilization when something just got delayed for whatever reason. To be on the safest side, let's accept this recommendation, since on the regular case it won't delay or block the driver initialization and resume flows Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210727173338.901264-1-badal.nilawar@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sideband.h')
-rw-r--r--drivers/gpu/drm/i915/intel_sideband.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_sideband.h b/drivers/gpu/drm/i915/intel_sideband.h
index 094c7b19c5d4..d1d14bcb8f56 100644
--- a/drivers/gpu/drm/i915/intel_sideband.h
+++ b/drivers/gpu/drm/i915/intel_sideband.h
@@ -138,6 +138,6 @@ int sandybridge_pcode_write_timeout(struct drm_i915_private *i915, u32 mbox,
int skl_pcode_request(struct drm_i915_private *i915, u32 mbox, u32 request,
u32 reply_mask, u32 reply, int timeout_base_ms);
-void intel_pcode_init(struct drm_i915_private *i915);
+int intel_pcode_init(struct drm_i915_private *i915);
#endif /* _INTEL_SIDEBAND_H */