lkml.org 
[lkml]   [2014]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 3/4] gpiolib: add irq_not_threaded flag to gpio_chip
    Date
    Some GPIO chips (e.g. the DLN2 USB adapter) have blocking get/set
    operation but do not need a threaded irq handler.

    Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
    ---
    drivers/gpio/gpiolib.c | 2 +-
    include/linux/gpio/driver.h | 3 +++
    2 files changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
    index 15cc0bb..3fa7e73 100644
    --- a/drivers/gpio/gpiolib.c
    +++ b/drivers/gpio/gpiolib.c
    @@ -447,7 +447,7 @@ static int gpiochip_irq_map(struct irq_domain *d, unsigned int irq,
    irq_set_lockdep_class(irq, &gpiochip_irq_lock_class);
    irq_set_chip_and_handler(irq, chip->irqchip, chip->irq_handler);
    /* Chips that can sleep need nested thread handlers */
    - if (chip->can_sleep)
    + if (chip->can_sleep && !chip->irq_not_threaded)
    irq_set_nested_thread(irq, 1);
    #ifdef CONFIG_ARM
    set_irq_flags(irq, IRQF_VALID);
    diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h
    index e78a237..44161ac 100644
    --- a/include/linux/gpio/driver.h
    +++ b/include/linux/gpio/driver.h
    @@ -56,6 +56,8 @@ struct seq_file;
    * as the chip access may sleep when e.g. reading out the IRQ status
    * registers.
    * @exported: flags if the gpiochip is exported for use from sysfs. Private.
    + * @irq_not_threaded: flag must be set if @can_sleep is set but the
    + * IRQs don't need to be threaded
    *
    * A gpio_chip can help platforms abstract various sources of GPIOs so
    * they can all be accessed through a common programing interface.
    @@ -101,6 +103,7 @@ struct gpio_chip {
    struct gpio_desc *desc;
    const char *const *names;
    bool can_sleep;
    + bool irq_not_threaded;
    bool exported;

    #ifdef CONFIG_GPIOLIB_IRQCHIP
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-10-09 22:01    [W:2.600 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site