Intel driver fixes for 855GM - Crash switching VTs

Peter Clifton pcjc2 at cam.ac.uk
Mon Oct 22 13:35:18 PDT 2007


Attached is a patch which fixes crashes observed on all intel chipsets
when switching VT in some conditions.

The palette programming portion of this workaround (I say workaround, as
it does prevent 100% complete restoration of HW regs in some cases) has
already been pushed in a slightly different form by Jesse Barnes.

Crashes specific to the 855 hardware were still seen, and those were
avoided by avoiding writes to the PIPE[AB]CONF registers for pipelines
with either the DPLL_VCO disabled, or the pipeline in VGA mode.

e.g.:

-   OUTREG(PIPEACONF, pI830->savePIPEACONF);
+   if ((pI830->saveDPLL_A & DPLL_VCO_ENABLE) &&
+       (pI830->saveDPLL_A & DPLL_VGA_MODE_DIS))
+      OUTREG(PIPEACONF, pI830->savePIPEACONF);

Without the official docs, it isn't clear whether this is just a
contrived test which happens to avoid the PIPE[AB]CONF write on hardware
where it causes the crash.

Could someone comment on this, and whether a better solution might
exist? Can we write the rest of the register if we don't touch the
PIPE[AB]CONF_ENABLE bit for example?


We'd _really_ like to get either this wokaround/fix, or a more complete
solution SRU'd for the recent Ubuntu release, and it would be far easier
to get this approved if someone who knows the hardware could comment on
the implications of the change.

Should we special case the workaround to only prevent the PIPE[AB]CONF
register writes on the 855 HW?

-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 04_fix_hw_restore.diff
Type: text/x-patch
Size: 1829 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20071022/ed4d8aa9/attachment.bin>


More information about the xorg mailing list