)]}'
{
  "commit": "399b5da29b9f851eb7b96e2882097127f003e87c",
  "tree": "0264a7ae22988e8a298407c611b5b639c9315ff7",
  "parents": [
    "70aedd24d20e75198f5a0b11750faabbb56924e2"
  ],
  "author": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Thu Aug 13 13:21:38 2009 +0200"
  },
  "committer": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Mon Aug 17 10:54:05 2009 +0200"
  },
  "message": "genirq: Support nested threaded irq handling\n\nInterrupt chips which are behind a slow bus (i2c, spi ...) and\ndemultiplex other interrupt sources need to run their interrupt\nhandler in a thread. \n\nThe demultiplexed interrupt handlers need to run in thread context as\nwell and need to finish before the demux handler thread can reenable\nthe interrupt line. So the easiest way is to run the sub device\nhandlers in the context of the demultiplexing handler thread.\n\nTo avoid that a separate thread is created for the subdevices the\nfunction set_nested_irq_thread() is provided which sets the\nIRQ_NESTED_THREAD flag in the interrupt descriptor.\n\nA driver which calls request_threaded_irq() must not be aware of the\nfact that the threaded handler is called in the context of the\ndemultiplexing handler thread. The setup code checks the\nIRQ_NESTED_THREAD flag which was set from the irq chip setup code and\ndoes not setup a separate thread for the interrupt. The primary\nfunction which is provided by the device driver is replaced by an\ninternal dummy function which warns when it is called.\n\nFor the demultiplexing handler a helper function handle_nested_irq()\nis provided which calls the demux interrupt thread function in the\ncontext of the caller and does the proper interrupt accounting and\ntakes the interrupt disabled status of the demultiplexed subdevice\ninto account.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Trilok Soni \u003csoni.trilok@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nCc: m.szyprowski@samsung.com\nCc: t.fujak@samsung.com\nCc: kyungmin.park@samsung.com,\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Daniel Ribeiro \u003cdrwyrm@gmail.com\u003e\nCc: arve@android.com\nCc: Barry Song \u003c21cnbao@gmail.com\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ce8171bc6fac48907f701bb9776de88b1fd609ff",
      "old_mode": 33188,
      "old_path": "include/linux/irq.h",
      "new_id": "8778ee99393711cc8dbdb204ea6342b92bf8c89e",
      "new_mode": 33188,
      "new_path": "include/linux/irq.h"
    },
    {
      "type": "modify",
      "old_id": "f856330e684a0285010c3a94d74759c06e2a5670",
      "old_mode": 33188,
      "old_path": "kernel/irq/chip.c",
      "new_id": "5765aad949989567c80a287b695a82221d20ccd2",
      "new_mode": 33188,
      "new_path": "kernel/irq/chip.c"
    },
    {
      "type": "modify",
      "old_id": "0a3fd5b524c9a98e0e30491094f3f53b87ec25c5",
      "old_mode": 33188,
      "old_path": "kernel/irq/manage.c",
      "new_id": "e485cea04bf11963b2f77f8adae3e25f4e76b8e8",
      "new_mode": 33188,
      "new_path": "kernel/irq/manage.c"
    }
  ]
}
