23 Jun, 2016

1 commit


23 Feb, 2016

1 commit


05 Jan, 2016

1 commit


19 Nov, 2015

1 commit

  • The name .dev in a struct is normally reserved for a struct device
    that is let us say a superclass to the thing described by the struct.
    struct gpio_chip stands out by confusingly using a struct device *dev
    to point to the parent device (such as a platform_device) that
    represents the hardware. As we want to give gpio_chip:s real devices,
    this is not working. We need to rename this member to parent.

    This was done by two coccinelle scripts, I guess it is possible to
    combine them into one, but I don't know such stuff. They look like
    this:

    @@
    struct gpio_chip *var;
    @@
    -var->dev
    +var->parent

    and:

    @@
    struct gpio_chip var;
    @@
    -var.dev
    +var.parent

    and:

    @@
    struct bgpio_chip *var;
    @@
    -var->gc.dev
    +var->gc.parent

    Plus a few instances of bgpio that I couldn't figure out how
    to teach Coccinelle to rewrite.

    This patch hits all over the place, but I *strongly* prefer this
    solution to any piecemal approaches that just exercise patch
    mechanics all over the place. It mainly hits drivers/gpio and
    drivers/pinctrl which is my own backyard anyway.

    Cc: Haavard Skinnemoen
    Cc: Rafał Miłecki
    Cc: Richard Purdie
    Cc: Mauro Carvalho Chehab
    Cc: Alek Du
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Acked-by: Dmitry Torokhov
    Acked-by: Greg Kroah-Hartman
    Acked-by: Lee Jones
    Acked-by: Jiri Kosina
    Acked-by: Hans-Christian Egtvedt
    Acked-by: Jacek Anaszewski
    Signed-off-by: Linus Walleij

    Linus Walleij
     

16 Sep, 2015

1 commit

  • Most interrupt flow handlers do not use the irq argument. Those few
    which use it can retrieve the irq number from the irq descriptor.

    Remove the argument.

    Search and replace was done with coccinelle and some extra helper
    scripts around it. Thanks to Julia for her help!

    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Jiang Liu

    Thomas Gleixner
     

19 May, 2015

1 commit


20 Oct, 2014

1 commit


21 Aug, 2014

1 commit


28 Jul, 2014

1 commit

  • Instead of open-coding irqchip handling in the driver we can take advantage
    of the new irqchip helpers provided by the gpiolib core.

    While doing this we also make sure that we call gpiochip_irqchip_add()
    after the gpiochip itself is registered as required.

    Signed-off-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Mika Westerberg
     

22 Jul, 2014

1 commit


09 May, 2014

1 commit


29 Mar, 2014

1 commit


18 Mar, 2014

1 commit

  • This switches all GPIO and pin control drivers with irqchips
    that were using .startup() and .shutdown() callbacks to lock
    GPIO lines for IRQ usage over to using the .request_resources()
    and .release_resources() callbacks just introduced into the
    irqchip vtable.

    Cc: Thomas Gleixner
    Cc: Jean-Jacques Hiblot
    Signed-off-by: Linus Walleij

    Linus Walleij
     

04 Dec, 2013

3 commits


03 Dec, 2013

2 commits

  • Change CONFIG_GPIO_LYNXPOINT from bool to tristate so that the
    gpio-lynxpoint driver can be built as a module.

    Add the required glue: an exit function to unregister the driver, and
    module information.

    Signed-off-by: Jean Delvare
    Cc: Mathias Nyman
    Cc: Linus Walleij
    Acked-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Jean Delvare
     
  • Switch all users of irq_set_chip_and_handler_name() to simply
    use irq_set_chip_and_handler(), all just provide a boilerplate
    name like "demux" or "mux" - a fact which is anyway obvious
    from the hwirq number from the irqdomain now present in e.g.
    /proc/interrupts.

    Cc: Mathias Nyman
    Cc: Dan Carpenter
    Acked-by: David Cohen
    Acked-by: Mika Westerberg
    Tested-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Linus Walleij
     

25 Nov, 2013

1 commit


20 Oct, 2013

1 commit


16 Oct, 2013

1 commit

  • Rename the argument "virq" to just "irq", this IRQ isn't any
    more "virtual" than any other Linux IRQ number, we use "hwirq"
    for the actual hw-numbers, "virq" is just bogus. Take this
    opportunity to sink a variable into a loop.

    Acked-by: Mathias Nyman
    Acked-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Linus Walleij
     

11 Oct, 2013

1 commit

  • Checking LP_INT_STAT is not enough in the interrupt handler because its
    contents get updated regardless of whether the pin has interrupt enabled or
    not. This causes the driver to loop forever for GPIOs that are pulled up.

    Fix this by checking the interrupt enable bit for the pin as well.

    Cc: stable@vger.kernel.org
    Signed-off-by: Mika Westerberg
    Acked-by: Mathias Nyman
    Signed-off-by: Linus Walleij

    Mika Westerberg
     

16 Aug, 2013

1 commit


31 May, 2013

1 commit

  • The driver core clears the driver data to NULL after device_release
    or on probe failure, since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d
    (device-core: Ensure drvdata = NULL when no driver is bound).
    Thus, it is not needed to manually clear the device driver data to NULL.

    Signed-off-by: Jingoo Han
    Acked-by: Mathias Nyman
    Signed-off-by: Linus Walleij

    Jingoo Han
     

27 Mar, 2013

1 commit


05 Feb, 2013

1 commit

  • Add gpio support for Intel Lynxpoint chipset.

    Lynxpoint supports 94 gpio pins which can generate interrupts.
    Driver will fail requests for pins that are marked as owned by ACPI, or
    set in an alternate mode (non-gpio).

    Signed-off-by: Mathias Nyman
    Signed-off-by: Grant Likely

    Mathias Nyman