RE: [Devel] acpi_os_read_memory() from interrupt context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If you need to pre-map the ACPI registers, I would expect the host to build a list of these during initialization as you mention, then lookup and use the appropriate mapping in acpi_os_read_memory.  The acpi_os memory interfaces are not generic memory interfaces; they are only used for memory-mapped ACPI registers, so it is entirely appropriate to do whatever you need to do to obtain a mapping for the registers when at interrupt level.



>-----Original Message-----
>From: devel-bounces@xxxxxxxxxx [mailto:devel-bounces@xxxxxxxxxx] On Behalf
>Of Bjorn Helgaas
>Sent: Wednesday, August 04, 2010 10:19 AM
>To: linux-acpi@xxxxxxxxxxxxxxx; devel@xxxxxxxxxx
>Subject: [Devel] acpi_os_read_memory() from interrupt context
>
>Linux reads some ACPI registers from interrupt context.  For example,
>we read the PM1 Status register in the SCI interrupt handler via
>this path:
>
>    acpi_irq
>      acpi_ev_sci_xrupt_handler
>        acpi_ev_fixed_event_detect
>          acpi_hw_register_read
>            acpi_hw_read_multiple
>              acpi_read
>
>But acpi_read() takes a generic address structure, and if that
>address happens to be in memory space (not I/O port space), we use
>acpi_os_read_memory().  In Linux, that uses ioremap() to map the
>address, and that doesn't work from interrupt context.
>
>I can imagine fixing this by doing the ioremap() at boot-time
>rather than at interrupt-time, but most of this interrupt path
>is in the ACPI CA, not in Linux itself, so it would probably
>require some redesign in the CA.
>
>Any suggestions?
>
>Bjorn
>_______________________________________________
>Devel mailing list
>Devel@xxxxxxxxxx
>http://lists.acpica.org/listinfo/devel
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux