On Thu, Oct 22, 2015 at 02:48:31PM +0100, Chris Wilson wrote: > On Thu, Oct 22, 2015 at 04:31:01PM +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 > > v5: Give enough information for user for finding correct fw (Chris) > > > > Cc: Animesh Manna <animesh.manna@xxxxxxxxx> > > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > > Cc: Dave Gordon <david.s.gordon@xxxxxxxxx> > > Cc: Arun Siluvery <arun.siluvery@xxxxxxxxxxxxxxx> > > Cc: Imre Deak <imre.deak@xxxxxxxxx> > > Cc: Patrik Jakobsson <patrik.jakobsson@xxxxxxxxxxxxxxx> > > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > 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@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_csr.c | 15 +++++++++++++++ > > 1 file changed, 15 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c > > index cabcc51..8004b6d 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,18 @@ 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("Refusing to load outdated DMC firmware v%u.%u\n", > > + CSR_VERSION_MAJOR(csr->version), > > + CSR_VERSION_MINOR(csr->version)); > > + DRM_INFO("Please upgrade to Skylake DMC - %u.%u or newer\n", > > + SKL_REQUIRED_FW_MAJOR, SKL_REQUIRED_FW_MINOR); > > + DRM_INFO("https://01.org/linuxgraphics/downloads\n"); > > Just what I mentioned on IRC, I think it is best if this is presented to > the user as a single info block *, and perhaps > https://01.org/linuxgraphics/intel-linux-graphics-firmwares > is a slightly more useful link? > > * "Refusing to load old Skylake DMC firmware v%u.%u," > " please upgrade to %u.%u or later" Note we should be consistent with v%u.%u usage as well. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx