Message ID | 1445442112-22027-3-git-send-email-mika.kuoppala@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Oct 21, 2015 at 06:41:48PM +0300, Mika Kuoppala wrote: > There is known issue on GT interrupt delivery with DC6 and > firmwares <1.21. There is a suspicion that this causes > spurious gpu hangs on driver init and with some workloads, > as upgrading the firmware to 1.21 makes these problems > disappear. > > As of now the current version included in distribution > firmware packages is very like to be 1.19. Play it safe and > refuse to load a firmware version that may affect gpu > side stability. > > With < 1.23 there is a palette and dmc ram corruption issue > so blacklist anything below that. > > v2: Refuse to load fw instead of notifying the user > v3: Rebase on header version changes > v4: Refuse to load anything less than 1.23 > > Cc: Animesh Manna <animesh.manna@intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Dave Gordon <david.s.gordon@intel.com> > Cc: Arun Siluvery <arun.siluvery@linux.intel.com> > Cc: Imre Deak <imre.deak@intel.com> > Cc: Patrik Jakobsson <patrik.jakobsson@linux.intel.com> > Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com> > References: https://01.org/linuxgraphics/downloads/skldmcver121 > References: https://01.org/linuxgraphics/downloads/skylake-dmc-1.23 > Testcase: igt/gem_exec_nop > Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> > --- > drivers/gpu/drm/i915/intel_csr.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c > index cabcc51..85261d4 100644 > --- a/drivers/gpu/drm/i915/intel_csr.c > +++ b/drivers/gpu/drm/i915/intel_csr.c > @@ -47,6 +47,9 @@ > MODULE_FIRMWARE(I915_CSR_SKL); > MODULE_FIRMWARE(I915_CSR_BXT); > > +#define SKL_REQUIRED_FW_MAJOR 1 > +#define SKL_REQUIRED_FW_MINOR 23 > + > /* > * SKL CSR registers for DC5 and DC6 > */ > @@ -401,6 +404,14 @@ static void finish_csr_load(const struct firmware *fw, void *context) > dmc_payload = csr->dmc_payload; > memcpy(dmc_payload, &fw->data[readcount], nbytes); > > + if (IS_SKYLAKE(dev) && > + (CSR_VERSION_MAJOR(csr->version) < SKL_REQUIRED_FW_MAJOR || > + CSR_VERSION_MINOR(csr->version) < SKL_REQUIRED_FW_MINOR)) { > + DRM_INFO("Outdated dmc firmware found, please upgrade to %u.%u or newer\n", > + SKL_REQUIRED_FW_MAJOR, SKL_REQUIRED_FW_MINOR); Please include the filename that should be updated. The first think the user will do is copy-and-paste it into google, so we need to provide enough information for the search results to return the right package. -Chris
diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c index cabcc51..85261d4 100644 --- a/drivers/gpu/drm/i915/intel_csr.c +++ b/drivers/gpu/drm/i915/intel_csr.c @@ -47,6 +47,9 @@ MODULE_FIRMWARE(I915_CSR_SKL); MODULE_FIRMWARE(I915_CSR_BXT); +#define SKL_REQUIRED_FW_MAJOR 1 +#define SKL_REQUIRED_FW_MINOR 23 + /* * SKL CSR registers for DC5 and DC6 */ @@ -401,6 +404,14 @@ static void finish_csr_load(const struct firmware *fw, void *context) dmc_payload = csr->dmc_payload; memcpy(dmc_payload, &fw->data[readcount], nbytes); + if (IS_SKYLAKE(dev) && + (CSR_VERSION_MAJOR(csr->version) < SKL_REQUIRED_FW_MAJOR || + CSR_VERSION_MINOR(csr->version) < SKL_REQUIRED_FW_MINOR)) { + DRM_INFO("Outdated dmc firmware found, please upgrade to %u.%u or newer\n", + SKL_REQUIRED_FW_MAJOR, SKL_REQUIRED_FW_MINOR); + goto out; + } + /* load csr program during system boot, as needed for DC states */ intel_csr_load_program(dev); fw_loaded = true;
There is known issue on GT interrupt delivery with DC6 and firmwares <1.21. There is a suspicion that this causes spurious gpu hangs on driver init and with some workloads, as upgrading the firmware to 1.21 makes these problems disappear. As of now the current version included in distribution firmware packages is very like to be 1.19. Play it safe and refuse to load a firmware version that may affect gpu side stability. With < 1.23 there is a palette and dmc ram corruption issue so blacklist anything below that. v2: Refuse to load fw instead of notifying the user v3: Rebase on header version changes v4: Refuse to load anything less than 1.23 Cc: Animesh Manna <animesh.manna@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Dave Gordon <david.s.gordon@intel.com> Cc: Arun Siluvery <arun.siluvery@linux.intel.com> Cc: Imre Deak <imre.deak@intel.com> Cc: Patrik Jakobsson <patrik.jakobsson@linux.intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com> References: https://01.org/linuxgraphics/downloads/skldmcver121 References: https://01.org/linuxgraphics/downloads/skylake-dmc-1.23 Testcase: igt/gem_exec_nop Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> --- drivers/gpu/drm/i915/intel_csr.c | 11 +++++++++++ 1 file changed, 11 insertions(+)