Hi Kavita

Thanks for clarifying 

On Wednesday, September 10, 2014 10:00:06 AM UTC+5:30, kavitha wrote:
>
> Yes it does show in cat /proc/interrupts
> It doesnot matter you use request_threaded_irq or request_irq
>
> request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
>             const char *name, void *dev)
> Here the handler will be run in interrupt context
>
> and
>
> request_threaded_irq(unsigned int irq, irq_handler_t handler,
>                      irq_handler_t thread_fn,
>                      unsigned long flags, const char *name, void *dev);
>
>
> In threaded IRQ
>  irq_handler_t handle - Interrupt context
>   irq_handler_t thread_fn- Process context
> This is the only difference.
>
>
> Thanks
> Kavitha
>
>
>
>
>
> On Wed, Sep 10, 2014 at 8:03 AM, neo <prag....@gmail.com <javascript:>> 
> wrote:
>
>> Hi Kavita
>>
>> A generic question regarding interrupts.
>> If i register an interrupt using request_threaded_irq() or request_irq() 
>> will that be listed in /proc/interrupts ?
>>
>> On Tuesday, September 9, 2014 11:17:19 AM UTC+5:30, kavitha wrote:
>>>
>>>
>>> Does cat /proc/interrupts give show anything for 214.
>>>
>>> Check whether It is going to architecture specific impelemtation of 
>>> gpio_to_irq
>>>
>>>
>>> On Tue, Sep 9, 2014 at 8:26 AM, neo star <prag....@gmail.com> wrote:
>>>
>>>> Hi 
>>>>
>>>> I see that some function definitions are missing in your code. Can you 
>>>> share those as well, so that i too can try and figure out the problem.
>>>> Especially the functions like gpio_to_irq() ...
>>>> Thanks.
>>>>
>>>>
>>>> On Tuesday, August 26, 2014 7:38:01 PM UTC+5:30, Siddarth Sharma wrote:
>>>>>
>>>>> I am toggling the input into a GPIO line on my BeagleBone from high to 
>>>>> low every 500 ms using an Atmel uC. I have registered a handler for this 
>>>>> in 
>>>>> my Linux Kernel Module, but the handler is not being called for some 
>>>>> reason.
>>>>>
>>>>> My module code is -
>>>>>
>>>>> #define GPIO 54
>>>>> #define GPIO_INT_NAME  "gpio_int"
>>>>>
>>>>> #define GPIO_HIGH gpio_get_value(GPIO)
>>>>> #define GPIO_LOW (gpio_get_value(GPIO) == 0)
>>>>> short int irq_any_gpio    = 0;
>>>>> int count =0;
>>>>>
>>>>> enum { falling, rising } type; 
>>>>> static irqreturn_t r_irq_handler(int irq, void *dev_id)
>>>>>  {
>>>>>       count++;
>>>>>     printk(KERN_DEBUG "interrupt received (irq: %d)\n", irq);
>>>>>         if (irq == gpio_to_irq(GPIO)) 
>>>>>     {
>>>>>
>>>>>         type = GPIO_LOW ? falling : rising;
>>>>>
>>>>>         if(type == falling)
>>>>>         {
>>>>>             printk("gpio pin is low\n");    
>>>>>         }
>>>>>         else
>>>>>             printk("gpio pin is high\n");
>>>>>
>>>>>     }
>>>>>
>>>>>     return IRQ_HANDLED;
>>>>> }
>>>>>
>>>>>
>>>>> void r_int_config(void) {
>>>>>
>>>>>    if (gpio_request(GPIO, GPIO_INT_NAME )) 
>>>>>    {
>>>>>       printk("GPIO request failure: %s\n", GPIO_INT_NAME );
>>>>>       return;
>>>>>    }
>>>>>
>>>>>    if ( (irq_any_gpio = gpio_to_irq(GPIO)) < 0 ) {
>>>>>       printk("GPIO to IRQ mapping failure %s\n",GPIO_INT_NAME );
>>>>>       return;
>>>>>    }
>>>>>
>>>>>    printk(KERN_NOTICE "Mapped int %d\n", irq_any_gpio);
>>>>>
>>>>>    if (request_irq(irq_any_gpio,(irq_handler_t ) r_irq_handler, 
>>>>> IRQF_TRIGGER_HIGH, GPIO_INT_NAME, NULL)) 
>>>>>    {
>>>>>       printk("Irq Request failure\n");
>>>>>       return;
>>>>>    }
>>>>>
>>>>>    return;
>>>>> }
>>>>>
>>>>> void r_int_release(void) {
>>>>>
>>>>>    free_irq(gpio_to_irq(GPIO), NULL);
>>>>>     gpio_free(GPIO);;
>>>>>    return;
>>>>> }
>>>>>
>>>>> int init_module(void)
>>>>> {
>>>>>         printk("<1>Hello World\n"); 
>>>>>     r_int_config();
>>>>>         return 0;
>>>>> }
>>>>>
>>>>> On calling insmod interrupt_test.ko, i get the following message
>>>>>
>>>>> [   76.594543] Hello World                                                
>>>>>       
>>>>> [   76.597137] Mapped int 214  
>>>>>
>>>>> But now when I start toggling the input into this gpio pin, the 
>>>>> interrupt handler doesn't get called and the message - "interrupt 
>>>>> received" 
>>>>> is not being displayed.
>>>>>
>>>>> How do I solve this ? What's causing the problem?
>>>>>
>>>>  -- 
>>>> For more options, visit http://beagleboard.org/discuss
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "BeagleBoard" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to beagleboard...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  -- 
>> For more options, visit http://beagleboard.org/discuss
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to beagleboard...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to