22 Jun, 2020

1 commit

  • commit e5c399b0bd6490c12c0af2a9eaa9d7cd805d52c9 upstream.

    Commit ea6f3af4c5e63f69 ("ACPI: GED: add support for _Exx / _Lxx handler
    methods") added a reference to the 'triggering' field of either the
    normal or the extended ACPI IRQ resource struct, but inadvertently used
    the wrong pointer in the latter case. Note that both pointers refer to the
    same union, and the 'triggering' field appears at the same offset in both
    struct types, so it currently happens to work by accident. But let's fix
    it nonetheless

    Fixes: ea6f3af4c5e63f69 ("ACPI: GED: add support for _Exx / _Lxx handler methods")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     

17 Jun, 2020

1 commit

  • commit ea6f3af4c5e63f6981c0b0ab8ebec438e2d5ef40 upstream.

    Per the ACPI spec, interrupts in the range [0, 255] may be handled
    in AML using individual methods whose naming is based on the format
    _Exx or _Lxx, where xx is the hex representation of the interrupt
    index.

    Add support for this missing feature to our ACPI GED driver.

    Cc: v4.9+ # v4.9+
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 and
    only version 2 as published by the free software foundation this
    program is distributed in the hope that it will be useful but
    without any warranty without even the implied warranty of
    merchantability or fitness for a particular purpose see the gnu
    general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 294 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

16 Dec, 2017

1 commit

  • Some GED interrupts could be pending by the time we are doing a reboot.

    Even though GED driver uses devm_request_irq() to register the interrupt
    handler, the handler is not being freed on time during a shutdown since
    the driver is missing a shutdown callback.

    If the ACPI handler is no longer available, this causes an interrupt
    storm and delays shutdown.

    1. Don't use devm family of functions for IRQ registration/free
    2. Keep track of the events since free_irq() requires the dev_id
    parameter passed into the request_irq() function.
    3. Call free_irq() on both remove and shutdown explicitly.

    Signed-off-by: Sinan Kaya
    Signed-off-by: Rafael J. Wysocki

    Sinan Kaya
     

10 May, 2016

1 commit

  • The Makefile/Kconfig currently controlling compilation of this code is:

    Makefile:acpi-$(CONFIG_ACPI_REDUCED_HARDWARE_ONLY) += evged.o

    drivers/acpi/Kconfig:config ACPI_REDUCED_HARDWARE_ONLY
    drivers/acpi/Kconfig: bool "Hardware-reduced ACPI support only" if EXPERT

    ...meaning that it currently is not being built as a module by anyone.

    Lets remove the couple traces of modularity so that when reading the
    code there is no doubt it is builtin-only.

    Since module_platform_driver() uses the same init level priority as
    builtin_platform_driver() the init ordering remains unchanged with
    this commit.

    The file wasn't explicitly including the module.h file but it did
    already have init.h so, unlike similar changes, this one has no
    header changes at all.

    We also delete the MODULE_LICENSE tag since all that information
    is already contained at the top of the file in the comments.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Rafael J. Wysocki

    Paul Gortmaker
     

09 Apr, 2016

1 commit

  • Generic Event Device described in ACPI 6.1 allows platforms to handle
    platform interrupts in ACPI ASL statements. It borrows constructs like
    _EVT from GPIO events. All interrupts are listed in _CRS and the handler
    is written in _EVT method. Here is an example.

    Device (GED0)
    {

    Name (_HID, "ACPI0013")
    Name (_UID, 0)
    Name(_CRS, ResourceTemplate ()
    {
    Interrupt(ResourceConsumer, Edge, ActiveHigh, Shared, , , )
    {123}
    })

    Method (_EVT, 1) {
    if (Lequal(123, Arg0))
    {
    }
    }
    }

    Wake capability has not been implemented yet.

    Signed-off-by: Sinan Kaya
    Signed-off-by: Rafael J. Wysocki

    Sinan Kaya