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 | 203 | local_irq_enable(); |
| 204 | 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 | 208 | static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc) |
| @@ -16,6 +16,7 @@ struct pcap_subdev { · 15 unmodified lines | ||
| 16 | 16 | struct pcap_platform_data { |
| 17 | 17 | unsigned int irq_base; |
| 18 | 18 | unsigned int config; |
| 19 | + int gpio; | |
| 19 | 20 | void (*init) (void *); /* board specific init */ |
| 20 | 21 | int num_subdevs; |
| 21 | 22 | struct pcap_subdev *subdevs; |