)]}'
{
  "log": [
    {
      "commit": "d209a699a0b975ad47f399d70ddc3791f1b84496",
      "tree": "225ee2dd5e51acc769cd272ce86d36405e933ed2",
      "parents": [
        "d9936bb3952a08d701f7b03f8f62d158f94d8085"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 11 21:22:14 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 12 11:12:58 2011 +0100"
      },
      "message": "genirq: Add chip flag to force mask on suspend\n\nOn suspend we disable all interrupts in the core code, but this does\nnot mask the interrupt line in the default implementation as we use a\nlazy disable approach. That means we mark the interrupt disabled, but\nleave the hardware unmasked. That\u0027s an optimization because we avoid\nthe hardware access for the common case where no interrupt happens\nafter we marked it disabled. If an interrupt happens, then the\ninterrupt flow handler masks the line at the hardware level and marks\nit pending.\n\nSuspend makes use of this delayed disable as it \"disables\" all\ninterrupts when preparing the suspend transition. Right before the\nsystem goes into hardware suspend state it checks whether one of the\ninterrupts which is marked as a wakeup interrupt came in after\ndisabling it.\n\nMost interrupt chips have a separate register which selects the\ninterrupts which can wake up the system from suspend, so we don\u0027t have\nto mask any on the non wakeup interrupts.\n\nBut now we have to deal with brilliant designed hardware which lacks\nsuch a wakeup configuration facility. For such hardware it\u0027s necessary\nto mask all non wakeup interrupts before going into suspend in order\nto avoid the wakeup from random interrupts.\n\nRather than working around this in the affected interrupt chip\nimplementations we can solve this elegant in the core code itself.\n\nAdd a flag IRQCHIP_MASK_ON_SUSPEND which can be set by the irq chip\nimplementation to indicate, that the interrupts which are not selected\nas wakeup sources must be masked in the suspend path. Mask them in the\nloop which checks the wakeup interrupts pending flag.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Abhijeet Dharmapurikar \u003cadharmap@codeaurora.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1103112112310.2787@localhost6.localdomain6\u003e\n\n"
    },
    {
      "commit": "7f94226f03299f1ca32f118f02f2a0295e0e5e93",
      "tree": "049a83a3c264d4378f341991800c345bf4eeb5a5",
      "parents": [
        "d4d5e08960844a062da8387ee5f16ca7a33200d0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 10 19:46:26 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:22 2011 +0100"
      },
      "message": "genirq: Move wakeup state to irq_data\n\nSome irq_chips need to know the state of wakeup mode for\nsetting the trigger type etc. Reflect it in irq_data state.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6d2cd17fde1fc3e93302815f049f255bb2b3123e",
      "tree": "48995b27264ec657cae21e22a5be1f4c05973bc0",
      "parents": [
        "c531e8361f1968d664e6e97fbd3bfa4cf0e62e42"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 14:34:18 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:18 2011 +0100"
      },
      "message": "genirq: Move IRQ_WAKEUP to core\n\nNo users outside of core.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c531e8361f1968d664e6e97fbd3bfa4cf0e62e42",
      "tree": "45b5dbd85203033af684a9588224044289236b0c",
      "parents": [
        "6e40262ea43c4b0e3f435b3a083e4461ef921c17"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 12:44:58 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:18 2011 +0100"
      },
      "message": "genirq: Move IRQ_SUSPENDED to core\n\nNo users outside of core.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2a0d6fb335d4428285dab2d254911748e6040807",
      "tree": "16090086899df6886436b89cc76e6d0d5b36d083",
      "parents": [
        "c1594b77e46124bb462f961e536120e471c67446"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 12:17:57 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 19 12:58:17 2011 +0100"
      },
      "message": "genirq: Move IRQ_PENDING flag to core\n\nKeep status in sync until all users are fixed.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "dc5f219e88294b93009eef946251251ffffb6d60",
      "tree": "d4fd68261803ee6bd90ed4b422053d879352228e",
      "parents": [
        "100b33c8bd8a3235fd0b7948338d6cbb3db3c63d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 04 13:19:20 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 08 16:36:47 2011 +0100"
      },
      "message": "genirq: Add IRQF_FORCE_RESUME\n\nXen needs to reenable interrupts which are marked IRQF_NO_SUSPEND in the\nresume path. Add a flag to force the reenabling in the resume code.\n\nTested-and-acked-by: Ian Campbell \u003cIan.Campbell@eu.citrix.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "239007b8440abff689632f50cdf0f2b9e895b534",
      "tree": "569cab843af4a999d6d868ec9a824530d2bfa733",
      "parents": [
        "9f5a5621e78cf48d86682a71ceb3fcdbde38b222"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 16:46:45 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "genirq: Convert irq_desc.lock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c71320d0c445e01555a86fa6523609db47eeaef6",
      "tree": "2dbe028328dfeddb04fa191fc9ed9d35b4591c76",
      "parents": [
        "96ccd4a43a4d80c80be636cd025a69959cf47424"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 05 00:22:34 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 05 13:07:00 2009 +0200"
      },
      "message": "genirq: Fix comment describing suspend_device_irqs()\n\nThe kerneldoc comment describing suspend_device_irqs() is currently\nmisleading, because generally the function doesn\u0027t really disable\ninterrupt lines at the chip level.  Replace it with a more accurate\none.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nLKML-Reference: \u003c200907050022.35117.rjw@sisk.pl\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
