Loading drivers/gpio/gpiolib.c +7 −2 Original line number Diff line number Diff line Loading @@ -1534,9 +1534,14 @@ static int gpiochip_add_irqchip(struct gpio_chip *gc, } if (gc->irq.parent_handler) { void *data = gc->irq.parent_handler_data ?: gc; for (i = 0; i < gc->irq.num_parents; i++) { void *data; if (gc->irq.per_parent_data) data = gc->irq.parent_handler_data_array[i]; else data = gc->irq.parent_handler_data ?: gc; /* * The parent IRQ chip is already using the chip_data * for this IRQ chip, so our callbacks simply use the Loading include/linux/gpio/driver.h +17 −2 Original line number Diff line number Diff line Loading @@ -168,11 +168,18 @@ struct gpio_irq_chip { /** * @parent_handler_data: * @parent_handler_data_array: * * Data associated, and passed to, the handler for the parent * interrupt. * interrupt. Can either be a single pointer if @per_parent_data * is false, or an array of @num_parents pointers otherwise. If * @per_parent_data is true, @parent_handler_data_array cannot be * NULL. */ union { void *parent_handler_data; void **parent_handler_data_array; }; /** * @num_parents: Loading Loading @@ -203,6 +210,14 @@ struct gpio_irq_chip { */ bool threaded; /** * @per_parent_data: * * True if parent_handler_data_array describes a @num_parents * sized array to be used as parent data. */ bool per_parent_data; /** * @init_hw: optional routine to initialize hardware before * an IRQ chip will be added. This is quite useful when Loading Loading
drivers/gpio/gpiolib.c +7 −2 Original line number Diff line number Diff line Loading @@ -1534,9 +1534,14 @@ static int gpiochip_add_irqchip(struct gpio_chip *gc, } if (gc->irq.parent_handler) { void *data = gc->irq.parent_handler_data ?: gc; for (i = 0; i < gc->irq.num_parents; i++) { void *data; if (gc->irq.per_parent_data) data = gc->irq.parent_handler_data_array[i]; else data = gc->irq.parent_handler_data ?: gc; /* * The parent IRQ chip is already using the chip_data * for this IRQ chip, so our callbacks simply use the Loading
include/linux/gpio/driver.h +17 −2 Original line number Diff line number Diff line Loading @@ -168,11 +168,18 @@ struct gpio_irq_chip { /** * @parent_handler_data: * @parent_handler_data_array: * * Data associated, and passed to, the handler for the parent * interrupt. * interrupt. Can either be a single pointer if @per_parent_data * is false, or an array of @num_parents pointers otherwise. If * @per_parent_data is true, @parent_handler_data_array cannot be * NULL. */ union { void *parent_handler_data; void **parent_handler_data_array; }; /** * @num_parents: Loading Loading @@ -203,6 +210,14 @@ struct gpio_irq_chip { */ bool threaded; /** * @per_parent_data: * * True if parent_handler_data_array describes a @num_parents * sized array to be used as parent data. */ bool per_parent_data; /** * @init_hw: optional routine to initialize hardware before * an IRQ chip will be added. This is quite useful when Loading