Re: No interrupts coming to device driver.

From: M. Warner Losh (imp_at_bsdimp.com)
Date: 11/11/05

  • Next message: Julian Elischer: "Re: Need Help In sppp_attach"
    Date: Fri, 11 Nov 2005 09:31:41 -0700 (MST)
    To: bland@freebsd.org
    
    

    In message: <437309BD.7010704@FreeBSD.org>
                Alexander Nedotsukov <bland@freebsd.org> writes:
    : I trying to create small lirc (www.lirc.org) compatible CIR driver for
    : it8705 chip (sits on ISA bus). My problem is I can not get interrupts
    : coming to driver. I believe I configured chip (carrier freq. + baudrate
    : divisor) and enabled interrupt mode the same way it windows driver does.
    : It also seems to be correct according to chip specs. But nothing. vmstat
    : -i shows zeros for assigned irq. And my IRS stay cold. I wrote small
    : userland program which polls CIRs IIR (interrupt identefication
    : register) and it shows interrupt pending bit set on right after I press
    : key on remote control. Looks like I missed something fundamental. Does
    : anyone can give me a hint where to look?

    If it is on the ISA bus, then you can look at the IRQ line that you
    are using for this card on the scope. Set it to trigger on an edge
    (either falling if the signal is high or rising if the signal is low,
    usually it is high).

    Make sure that the IRQ that you are using is not shared with anything
    else, even hardware you aren't using. That's forbidden in the ISA
    world (although some hacks exist to do interrupt sharing with two
    devices on the ISA bus, (a) almost nobody does them and (b) they don't
    work when sharing with pci).

    Make sure that the IRQ is set in the BIOS as Legacy/ISA rather than
    ISAPNP/PCI (or some variants of those phrases).

    See if there's a way to force an interrupt on the chip by writing to a
    register of some sort. It doesn't matter if you are going to use
    this, but it will be good for testing.

    It almost certainly isn't an unacknowledged interrupt (unless it is
    left over from before your chip reset). In my experience, those cause
    vmstat of 1. It might be worth checking the chip initialization
    sequence to make sure that you clear any possible interrupts AFTER
    you've done the bus_setup_inter() call to register your interrupt
    handler.

    That's all I can think of at the moment, but it should keep you busy
    for a few hours :-)

    Warner
    _______________________________________________
    freebsd-hackers@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


  • Next message: Julian Elischer: "Re: Need Help In sppp_attach"

    Relevant Pages

    • No interrupts coming to device driver.
      ... I trying to create small lirc compatible CIR driver for ... coming to driver. ... I believe I configured chip (carrier freq. ... divisor) and enabled interrupt mode the same way it windows driver does. ...
      (freebsd-hackers)
    • Re: [GIT PATCH] more Driver core patches for 2.6.19
      ... The design requires to have an in kernel stub driver with interrupt ... The chip specific portion of the interrupt handler. ... wakeup user space task ...
      (Linux-Kernel)
    • Re: gkrellm
      ... a chip is available both through the ISA bus and an I2C ... ISA bus access is faster, but you need to load an additional ... > driver module for it. ... PC87372 Super IO Fan Sensors yet ...
      (Debian-User)
    • re:gkrellm
      ... Driver `eeprom': ... Chip `SPD EEPROM' ... a chip is available both through the ISA bus and an I2C bus. ... To make the sensors modules behave correctly, ...
      (Debian-User)
    • Re: How to Disable Ethernet
      ... How can I be sure that KITL is no longer accessing it? ... When I run my driver, I get interrupts from the 91C96 that ... a new interrupt is generated. ... >> 91C96 ethernet chip other than my driver. ...
      (microsoft.public.windowsce.platbuilder)