[lkml]   [2010]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC PATCH] Rework gpio cansleep (was Re: gpiolib and sleeping gpios)
    Ryan Mallon wrote:
    > On 06/23/2010 04:37 PM, David Brownell wrote:
    > I'm not. Some gpios, such as those on io expanders, may sleep in their
    > implementations of the gpio_(set/get) functions.

    I'm having a hard time figuring out where some GPIOs I'm using fit
    into this picture.

    I have some hardware that is currently using a 2.4.26 kernel, but I
    look from time to time at forward-porting all the drivers to 2.6.recent.

    It has an I2C driven GPIO expander, with a watchdog reset chip hanging
    off the expander.

    The watchdog is kept alive off the back end of a timer BH, which means
    the I2C GPIO routines are written to be safe in BH context (which
    isn't sleepable), but they can't be used in IRQ context because the
    necessary spin_lock_irqsave() would turn off interrupts for too long
    for other subsystems to function properly.

    How should I flag those GPIO routines in your scheme? They're safe to
    use in some non-sleeping contexts, but not safe in irq context.

    -- Jamie

     \ /
      Last update: 2010-06-24 00:57    [W:0.039 / U:7.476 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site