Thanks!
> And this is in drivers/pci/pci-driver.c. Note that I have swapped the fixup 
> and resume.
> [...]
I see your reservation concerning the changes here...  we are not going to get 
that upstream: there could be side-effects with other quirks.

I have a different suggestion which is hooked in a little bit earlier, but does 
not require changes in pci-driver.c: instead of starting to handle the "wrong" 
device and change it into the "correct" one, this patch will put the SATA 
controller into the desired mode *before* the PCI subsystem  sees it.
My patch uses a kernel command parameter too, but also registers the mode of 
the SATA device controller during startup (e.g. if someone has set it into AHCI 
via grub2). Resume should be handled correctly in any case (see the comments 
for details).

I put this yesterday in place and tested it a few times: seems to work fine for 
me. It should be easy to handle the other devices for iMac 8,1 and 11,1 too - 
for now I tested only my MBP 6,2.
Note that the patch is nearly upstream-ready, but I want to test it a few 
weeks/months before actual submission.

> IIRC, earlier MBP's required a 0x40 instead of a 0x60 written to config word 
> 0x90.
That's chipset specific. I guess 0x60 will not harm where previously 0x40 "was 
required" (of course it's best to look it up in the datasheets). Bit 6 is the 
important part (AHCI mode) - bit 5 (6 SATA ports instead of 2 on controller 1) 
is a suggestion from the Intel 5 series datasheet and may be reserved/unused in 
previous chipsets.

** Patch added: "i5s_3400s_ahci_handling_for_incapable_efi.patch"
   
https://bugs.launchpad.net/mactel-support/+bug/817017/+attachment/2238201/+files/i5s_3400s_ahci_handling_for_incapable_efi.patch

** Changed in: mactel-support
     Assignee: (unassigned) => Bernhard Froemel (froemel)

** Changed in: mactel-support
       Status: New => In Progress

-- 
You received this bug notification because you are a member of Mactel
Support, which is the registrant for Mactel Support.
https://bugs.launchpad.net/bugs/817017

Title:
  AHCI mode not restored during sleep-wakeup cycle

Status in Mactel Support:
  In Progress

Bug description:
  The SATA controller operates by default in IDE mode and there is no known EFI 
setting to override this behavior. Fortunately, it can be put into AHCI mode 
before the Linux kernel is booted (e.g. by Grub2 *) ).
  SSD disks perform much better in AHCI mode. On my laptop, both Intel SSD 320 
and a Cruzial RealSSD C300 performed great in the beginning, but system 
responsiveness degraded soon to a point where system load was around 6 to 7 
during updates (apt-get dist-upgrade) and second long freezes during normal 
work (e.g. browsing, responding to emails, heck - even when using vim in a 
terminal! ...).

  Unfortunately there is a drawback when putting the SATA controller into AHCI 
mode: AHCI is not restored during sleep-wakeup cycles and thus the system 
crashes badly after wakeup, because it suddently finds only an IDE controller.
  We need to patch (e.g. the SATA driver?) and check which mode the controller 
had been in, before the laptop was sent to sleep and restore the previous mode.

  *) How to put the SATA controller into AHCI mode [1]:
  MBP 6,2 (or any other 5 series/3400 series chipset based MBP)
  put this line before 'set root=...':
  setpci -d 8086:3b28 90.b=60
  (that command sets bit 5 and 6 on register 0x90 -- lookup Intel document 
number 322169 for details)

  [1] http://en.gentoo-wiki.com/wiki/Apple_Macbook_Pro

To manage notifications about this bug go to:
https://bugs.launchpad.net/mactel-support/+bug/817017/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mactel-support
Post to     : mactel-support@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mactel-support
More help   : https://help.launchpad.net/ListHelp

Reply via email to