lkml.org 
[lkml]   [2006]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [GIT PATCH] more Driver core patches for 2.6.19
    From
    Date

    > No. The point really is that it fundamentally _cannot_ work. Not in the
    > real world.
    >
    > It can only work in some alternate reality where you can always disable
    > interrupts per-device, and even in that alternate reality it would be
    > wrong to use that quoted interrupt handler: not only do you need to
    > disable the irq, you need to have an "acknowledge" phase too
    >
    > So you'd actually have to fix things _architecturally_, not just add some
    > code to the irq handler.

    Oh, it works well enough for non shared iqs if you are really anal about
    it, but I agree that it sucks and I don't see the point of having it in
    linux. The flow has to be different for level vs. edge and it's really
    ugly but it works. I've seen people doing it in embedded space. But
    again, I do agree it sucks big time :-)

    the edge flow is easy. the level one is:

    - IRQ happens
    - kernel handler masks it and queue a msg for userland
    - later on, userland gets the message, talks to the device,
    (MMAP'ed mmio, acks the interrupt on the device itself) and
    does an ioctl/syscall/write/whatever to tell kernel it's done
    - kernel unmasks it.

    But yeah, I hate it too, so let's not waste time talking about how to
    make it work :-)

    Ben.


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-12-13 23:17    [W:4.148 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site