)]}'
{
  "commit": "ea6dedd7fbd0f760ebf37eb0bcc8c64856475a13",
  "tree": "01d4dc723a6fa3fb567dc2d0ce497e69af4d7721",
  "parents": [
    "7876284178b386ab6e97f96733ccbc19eda743a3"
  ],
  "author": {
    "name": "Imre Deak",
    "email": "imre.deak@nokia.com",
    "time": "Mon Jun 26 16:16:00 2006 -0700"
  },
  "committer": {
    "name": "Tony Lindgren",
    "email": "tony@atomide.com",
    "time": "Mon Jun 26 16:16:00 2006 -0700"
  },
  "message": "ARM: OMAP: GPIO IRQ lazy IRQ disable fix\n\n- The current OMAP GPIO IRQ framework doesn\u0027t use the do_edge_IRQ,\n  do_level_IRQ handlers, but instead calls do_simple_IRQ. This\n  doesn\u0027t handle disabled interrupts properly, so drivers will\n  still get interrupts after calling disable_irq. The patch solves\n  this by respecting the irq_desc.disable_depth and irq_desc.running\n  counters.  When one of these is non-zero the handler is not called,\n  the interrupt is masked and marked as pending. The pending interrupt\n  will be serviced when the running handler returns. This is according\n  to the same semantics as the standard do_edge_IRQ and do_level_IRQ\n  handlers have, so one day we should use them instead of do_simple_IRQ.\n\n- Process only interrupts that are not masked. The ISR may contain\n  pending interrupts that are masked these shouldn\u0027t be processed.\n\n- Move the bank IRQ unmasking out of the IRQ dispatch loop. If there\n  are further iterations we shouldn\u0027t unmask it if there are level\n  triggered interrupts pending.\n\nSigned-off-by: Imre Deak \u003cimre.deak@nokia.com\u003e\nSigned-off-by: Juha Yrjola \u003cjuha.yrjola@nokia.com\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d3c8ea7eecfd216846d5b2f94161d721e17b2d20",
      "old_mode": 33188,
      "old_path": "arch/arm/plat-omap/gpio.c",
      "new_id": "cd1e508f90c18d99ec0eb1c2d49f86b638179478",
      "new_mode": 33188,
      "new_path": "arch/arm/plat-omap/gpio.c"
    }
  ]
}
