The irq_to_gpio function was removed from the pxa platform in linux-3.2, and this driver has been broken since. There is actually no in-tree user of this driver that adds this platform device, but the driver can and does get enabled on some platforms. Without this patch, building ezx_defconfig results in: drivers/mfd/ezx-pcap.c: In function 'pcap_isr_work': drivers/mfd/ezx-pcap.c:205:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
Unified · Split
| @@ -202,7 +202,7 @@ static void pcap_isr_work(struct work_struct *work) · 201 unmodified lines | |||
| 202 | } | 202 | } |
| 203 | local_irq_enable(); | 203 | local_irq_enable(); |
| 204 | ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr); | 204 | ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr); |
| 205 | } while (gpio_get_value(irq_to_gpio(pcap->spi->irq))); | 205 | } while (gpio_get_value(pdata->gpio)); |
| 206 | } | 206 | } |
| 207 | 207 | ||
| 208 | static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc) | 208 | static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc) |
| @@ -16,6 +16,7 @@ struct pcap_subdev { · 15 unmodified lines | |||
| 16 | struct pcap_platform_data { | 16 | struct pcap_platform_data { |
| 17 | unsigned int irq_base; | 17 | unsigned int irq_base; |
| 18 | unsigned int config; | 18 | unsigned int config; |
| 19 | int gpio; | ||
| 19 | void (*init) (void *); /* board specific init */ | 20 | void (*init) (void *); /* board specific init */ |
| 20 | int num_subdevs; | 21 | int num_subdevs; |
| 21 | struct pcap_subdev *subdevs; | 22 | struct pcap_subdev *subdevs; |