return ret;
}
-static void gb_gpio_ack_irq(struct irq_data *d)
-{
- struct gpio_chip *chip = irq_data_to_gpio_chip(d);
- struct gb_gpio_controller *ggc = gpio_chip_to_gb_gpio_controller(chip);
- struct gb_gpio_irq_ack_request request;
- int ret;
-
- request.which = d->hwirq;
- ret = gb_operation_sync(ggc->connection,
- GB_GPIO_TYPE_IRQ_ACK,
- &request, sizeof(request), NULL, 0);
- if (ret)
- dev_err(chip->dev, "failed to ack irq: %d\n", ret);
-}
-
static void gb_gpio_mask_irq(struct irq_data *d)
{
struct gpio_chip *chip = irq_data_to_gpio_chip(d);
goto err_free_controller;
irqc = &ggc->irqc;
- irqc->irq_ack = gb_gpio_ack_irq;
irqc->irq_mask = gb_gpio_mask_irq;
irqc->irq_unmask = gb_gpio_unmask_irq;
irqc->irq_set_type = gb_gpio_irq_set_type;
#define GB_GPIO_TYPE_SET_VALUE 0x09
#define GB_GPIO_TYPE_SET_DEBOUNCE 0x0a
#define GB_GPIO_TYPE_IRQ_TYPE 0x0b
-#define GB_GPIO_TYPE_IRQ_ACK 0x0c
#define GB_GPIO_TYPE_IRQ_MASK 0x0d
#define GB_GPIO_TYPE_IRQ_UNMASK 0x0e
#define GB_GPIO_TYPE_IRQ_EVENT 0x0f
};
/* irq unmask response has no payload */
-struct gb_gpio_irq_ack_request {
- __u8 which;
-};
-/* irq ack response has no payload */
-
/* irq event requests originate on another module and are handled on the AP */
struct gb_gpio_irq_event_request {
__u8 which;