From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tony Lindgren Subject: [PATCH 0/4] Minimal generic wakeirq helpers Date: Thu, 5 Mar 2015 16:34:05 -0800 Message-ID: <1425602049-2674-1-git-send-email-tony@atomide.com> Return-path: Sender: linux-omap-owner@vger.kernel.org To: "Rafael J. Wysocki" Cc: Andreas Fenkart , Greg Kroah-Hartman , Felipe Balbi , Huiquan Zhong , Kevin Hilman , NeilBrown , Mika Westerberg , Nishanth Menon , Peter Hurley , Sebastian Andrzej Siewior , Ulf Hansson , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, linux-omap@vger.kernel.org List-Id: linux-serial@vger.kernel.org Hi all, Here's an attempt to have Linux generic wakeirq helpers. This allows removing most of the related code from drivers. Currently the drivers all do it in a slightly different way. And may have issues with interrupt re-entrancy and getting the suspend/resume vs runtime_pm wake handling right. This is for wakerirqs that are available for some devices in addition to the regular device interrupts. The seprate always-on wake-up interrupt controller is needed to allow devices and the SoC to enter deeper idle states and still be able to wake-up to events. Some of this was discussed in the kernel/irq context a while back [1]. But it seems that this can be done in drivers/base/power. If somebody has hardware that needs to replay lost device interrupts based on the wake-up interrupts, then additional kernel/irq changes will be needed. This set fixes up three drivers to use the generic wakeirq. Note that eventually the wakeirq handling for these drivers might end up in a bus specific code and could be hidden away from the drivers. Regards, Tony [1] https://lkml.org/lkml/2014/11/13/458 Tony Lindgren (4): PM / Wakeirq: Add minimal device wakeirq helper functions serial: 8250_omap: Move wake-up interrupt to generic wakeirq serial: omap: Switch wake-up interrupt to generic wakeirq mmc: omap_hsmmc: Change wake-up interrupt to use generic wakeirq arch/arm/mach-omap2/Kconfig | 1 + drivers/base/power/Makefile | 1 + drivers/base/power/wakeirq.c | 201 ++++++++++++++++++++++++++++++++++++ drivers/mmc/host/omap_hsmmc.c | 55 +++------- drivers/tty/serial/8250/8250_omap.c | 67 +++--------- drivers/tty/serial/omap-serial.c | 38 +++---- include/linux/pm_wakeirq.h | 69 +++++++++++++ kernel/power/Kconfig | 4 + 8 files changed, 318 insertions(+), 118 deletions(-) create mode 100644 drivers/base/power/wakeirq.c create mode 100644 include/linux/pm_wakeirq.h -- 2.1.4