All of lore.kernel.org
 help / color / mirror / Atom feed
* For newer Mac, need SystemCMOS handler registered before _INI
@ 2015-04-26  4:56 Adam Goode
  0 siblings, 0 replies; only message in thread
From: Adam Goode @ 2015-04-26  4:56 UTC (permalink / raw)
  To: linux-acpi

(please CC me on replies)

Hi,

Newer Macs have BIOS support for Thunderbolt hotplug, so no
specialized kernel driver is needed. Unfortunately, there is a problem
with Linux ACPI support that aborts initialization of this support.

>From the debug output, I know it starts executing these lines in \_SB.PCI0._INI:

            Debug = "OSYS="
            Debug = OSYS /* \OSYS */
            Debug = \_SB.PCI0.LPCB.RTC.ISWI
            If (!OSDW ())
            {
                If ((OSYS >= 0x07DC))
                {
                    Debug = "Save Ridge Config on Boot"
                    R118 = UP18 /* External reference */
                    R119 = UP19 /* External reference */
...


The problem is that \_SB.PCI0._INI is executed before the RTC handler
is installed in scan.c. The read of \_SB.PCI0.LPCB.RTC.ISWI fails and
_INI aborts. (It is also read below, so just hacking out the Debug
line won't solve it.)

I think the solution is to remove the acpi_cmos_rtc driver and instead
use that code to implement generic support for SystemCMOS in
acpi_ex_cmos_space_handler in exregion.c.

Does this sound like the correct approach? I don't see a compelling
need to bind to the PNP0B* devices. It should be fine to implement
generic support.

Second, I believe the way to do this is move most of the code from
acpi_cmos_rtc.c to osl.c, and introduce something like
acpi_os_read_cmos and acpi_os_write_cmos. Does this sound correct?


Thanks,

Adam

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-04-26  4:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-26  4:56 For newer Mac, need SystemCMOS handler registered before _INI Adam Goode

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.