lkml.org 
[lkml]   [2012]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH V2 5/6] Thermal: Add ST-Ericsson DB8500 thermal dirver.
From
On 25 October 2012 15:26, Hongbo Zhang <hongbo.zhang@linaro.org> wrote:

> Verish, see the codes in include/linux/interrupt.h:

s/verish/viresh :)

> static inline int __must_check
> devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler,
> unsigned long irqflags, const char *devname, void *dev_id)
> {
> return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags,
> devname, dev_id);
> }
> devm_request_irq is devm_request_threaded_irq

See carefully what's happening here.

All interrupt types have a common irq_desc type in kernel. This has
few pointers for every
interrupt line:
- List of handlers to call from interrupt context
- handlers to call from process context via a thread.

So, the internal implementation is exactly same... The only difference
is which pointer
should be called in.

the devm_request_threaded_irq() called from devm_request_irq() has
following params
handler: For irq to be called from interrupt context (param 3)
NULL: For irq to be called from process context. (param 4)

So, that means normal request_irq type only.

In your case, you have passed interrupt context pointer as NULL and
process context
one as handler. So that's an issue.

--
viresh


\
 
 \ /
  Last update: 2012-10-25 13:21    [W:0.099 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site