Re: Continuous Interrupt Problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2012-06-15 at 03:22 -0700, Shaji Yusuf wrote:
> Is the issue resolved?
> 
> 
> This seems to be more of either a device that's buggy or some
> misunderstanding in understanding the device specs.
I checked with siddharth and understanding in device specs
was the problem.
> 
> 
> I had a similar issue with one of our devices. When I get an interrupt
> I would do some thing in the device (reading buffers writing some
> registers and stuff) that should reset the Interrupt pin to high state
> again. But the hardware had a bug that would not let the Interrupt pin
> reset, and once I return from the Interrupt it would strike again
> causing the system to freeze. 
> 
> 
> Thanks 
> 
> Shaji Yusuf
> 
> 
> 
> 
> 
> ______________________________________________________________________
> From: siddharth saxena <siddharthsaxena1989@xxxxxxxxx>
> To: anish singh <anish198519851985@xxxxxxxxx> 
> Cc: Arun KS <getarunks@xxxxxxxxx>; Sarbojit Ganguly
> <unixman.linuxboy@xxxxxxxxx>; kernelnewbies@xxxxxxxxxxxxxxxxx 
> Sent: Thursday, June 14, 2012 2:35 PM
> Subject: Re: Continuous Interrupt Problem
> 
> 
> Initialized in Probe :
> 
> if (device->irq) {
>         ret = request_irq(device->irq, ts_int_handler,
>         IRQF_TRIGGER_LOW, DRIVER_NAME, device);
>         if (ret) {
>             pr_err("unable to register touch irq.(%s)\r\n",
>             device->input_dev->name);
>             goto err_request_irq;
>         }
>     }
> 
> 
> 
> The pin by default has to be initialized to Active Low.
> 
> 
> 
> 
> On Thu, Jun 14, 2012 at 2:24 PM, anish singh
> <anish198519851985@xxxxxxxxx> wrote:
>         On Thu, Jun 14, 2012 at 2:11 PM, siddharth saxena
>         <siddharthsaxena1989@xxxxxxxxx> wrote:
>         > Hi Arun
>         >
>         > I tried changing the flag to IRQF_TRIGGER_HIGH but then
>         device is behaving
>         > abnormally(Hangs and is dead after some time).
>         > Flooding interrupts still observed. Problem not solved.
>         >
>         > I want to know, are we supposed to change interrupt pin
>         status or it is done
>         > automatically when we return IRQ_HANDLED.
>         
>         why don't you paste the code for your probe routine where you
>         are
>         calling request_irq.
>         Are you using threaded irq?It would be difficult to diagnose
>         the
>         problem without looking
>         at your TSP manual and your code to find out the problem.
>         >
>         >
>         >
>         >
>         > On Thu, Jun 14, 2012 at 12:21 PM, Sarbojit Ganguly
>         > <unixman.linuxboy@xxxxxxxxx> wrote:
>         >>
>         >> Hi Arun,
>         >>
>         >> While I agree to your pointers but he is facing the problem
>         of
>         >> "interrupt floods" even before he touches.
>         >> IMHO the culprit could be the flag.
>         >>
>         >> On 14 June 2012 12:01, Arun KS <getarunks@xxxxxxxxx> wrote:
>         >> > Hello Siddharth,
>         >> >
>         >> > On Thu, Jun 14, 2012 at 10:34 AM, siddharth saxena
>         >> > <siddharthsaxena1989@xxxxxxxxx> wrote:
>         >> >> Hi all
>         >> >>
>         >> >> I need help with an issue.
>         >> >> I have written a touch driver for a device and used the
>         flag
>         >> >> IRQF_TRIGGER_LOW to request irq.
>         >> >> Now, when I boot the device, the touch interrupts are
>         coming already
>         >> >> without
>         >> >> touching the screen.
>         >> >> Continuous interrupts are occurring without any touch.
>         >> >
>         >> > Probably the default state of the gpio pin(which you
>         configured as
>         >> > irq) is low. Check your HW schematic.
>         >> >
>         >> > TSC should have interrupt polarity(Active High/Low),
>         which you have to
>         >> > choose depending on your schematic while initiallizing
>         the TSC.
>         >> > Also different modes like assert interrupt when finger
>         moving, when
>         >> > finger touch, or assert periodically.
>         >> >
>         >> > Hope these pointer will help you.
>         >> >
>         >> > Thanks,
>         >> > Arun
>         >> >
>         >> >>
>         >> >>
>         >> >>
>         >> >> --
>         >> >> Regards
>         >> >> Siddharth Saxena
>         >> >>
>         >> >>
>         >> >> _______________________________________________
>         >> >> Kernelnewbies mailing list
>         >> >> Kernelnewbies@xxxxxxxxxxxxxxxxx
>         >> >>
>         http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>         >> >>
>         >> >
>         >> > _______________________________________________
>         >> > Kernelnewbies mailing list
>         >> > Kernelnewbies@xxxxxxxxxxxxxxxxx
>         >> >
>         http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>         >>
>         >>
>         >>
>         >> --
>         >> Regards,
>         >> Sarbojit
>         >
>         >
>         >
>         >
>         > --
>         > Regards
>         > Siddharth Saxena
>         >
>         >
>         > _______________________________________________
>         > Kernelnewbies mailing list
>         > Kernelnewbies@xxxxxxxxxxxxxxxxx
>         >
>         http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>         >
>         
> 
> 
> 
> -- 
> Regards
> Siddharth Saxena
> 
> 
> 
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> 
> 
> 



_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux