title: request_threaded_irq() is used in the driver why not request_irq()? What are the differences between two?
body: <p>I posted this is the thread which discussed about request_threaded_irq but I did not get any reply. So I am posting it freshly.</p>
  
  <p>I am working on a touchscreen driver for capacitive touchscree. It used request_threaded_irq() call instead of request_irq(). I could not understand the basic difference betweeen two. It says :-</p>
  
  <p><strong>Name</strong></p>
  
  <p>request_threaded_irq — allocate an interrupt line </p>
  
  <p><strong>Synopsis</strong></p>
  
  <p>int request_threaded_irq (unsigned int irq, irq_handler_t handler,irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id);</p>
  
  <p><strong>Arguments</strong></p>
  
  <ol>
  <li>irq - Interrupt line to allocate </li>
  <li>handler - Function to be called when the IRQ occurs. Primary handler for threaded interrupts If NULL and thread_fn != NULL the default primary handler is installed </li>
  <li>thread_fn - Function called from the irq handler thread If NULL, no irq thread is created </li>
  <li>irqflags -  Interrupt type flags </li>
  <li>devname -  An ascii name for the claiming device </li>
  <li>dev_id -  A cookie passed back to the handler function </li>
  </ol>
  
  <p>the Handler and Thread_fn arguments are the ones which are confusing. Also there is no work function defined in the driver. </p>
  
  <p><a href="http://lxr.free-electrons.com/source/drivers/input/touchscreen/cy8ctmg110_ts.c" rel="noreferrer">Here is the driver which I am refering to.</a></p>
  
  <p>Can somebody help me in understanding this?</p>