[Openchrome-users] [openChrome] #288: openchrome interferes with PCI-Express
OpenChrome Trac
trac
Wed Jul 8 08:05:10 PDT 2009
#288: openchrome interferes with PCI-Express
--------------------+-------------------------------------------------------
Reporter: ljacob | Owner: jnettlet
Type: defect | Status: assigned
Priority: major | Component: initialization
Version: trunk | Resolution:
Keywords: | Blocking: 261
Blockedby: |
--------------------+-------------------------------------------------------
Comment(by stuge):
Replying to [comment:35 fhn]:
> I'm really happy to see some progess in this case :)
I don't know why the developers haven't been more responsive. I came from
coreboot onto the b43 list because I was looking into buying a 2133, and
stayed on the list although I never did buy the laptop. When the error
surfaced in November 2008 I figured maybe I could help because of some PCI
experience. I expected Yuval's workaround to be investigated further.
> lvds.debugging.Xorg.log:[[BR]]
> With lvds.debugging.patch applied the pci-e died right after "xset dpms
force off". The really interesting thing: pci-e came back to life after
Xorg terminated!
That's because the driver saves all registers when switching from the text
console to X, and restores them when switching back. It's likely that
switching from X to VT (and back) would bring PCIe back also with
unpatched versions of the driver.
> lvds.touch.only.channel1.Xorg.log:[[BR]]
> With lvds.touch.only.channel1.patch applied pci-e keeps working.
That makes sense. Note how the very first "before" value in
lvds.debugging.Xorg.log is "0x3", and then later it says "writing: 0xF" -
extra bits have now been enabled when they should not have been touched.
I attached http://www.openchrome.org/trac/attachment/ticket/288
/openchrome-switch-on-lvds-pads-only-for-active-channels.patch to this
ticket, I think it will solve this issue in a general way. It only enables
the LVDS channels which were already enabled on the latest switch from VT
to X. Thanks go to the unichrome developer Luc Verhaegen who told me about
ViaSeqMask() which I could use here to simplify the function quite a lot.
:)
--
Ticket URL: <http://www.openchrome.org/trac/ticket/288#comment:37>
openChrome <http://www.openchrome.org/>
The openChrome project
More information about the Openchrome-users
mailing list