Hi Linus, Today's linux-next merge of the gpio-lw tree got a conflict in drivers/gpio/gpio-stmpe.c between commit 3836309d9346 ("gpio: remove use of __devinit") from the driver-core tree and commit fc13d5a5b17c ("gpio: Provide the STMPE GPIO driver with its own IRQ Domain") from the gpio-lw tree.
I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell s...@canb.auug.org.au diff --cc drivers/gpio/gpio-stmpe.c index 6411600,3e1d398..0000000 --- a/drivers/gpio/gpio-stmpe.c +++ b/drivers/gpio/gpio-stmpe.c @@@ -288,21 -292,37 +292,37 @@@ int stmpe_gpio_irq_map(struct irq_domai return 0; } - static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio) + void stmpe_gpio_irq_unmap(struct irq_domain *d, unsigned int virq) { - int base = stmpe_gpio->irq_base; - int irq; - - for (irq = base; irq < base + stmpe_gpio->chip.ngpio; irq++) { #ifdef CONFIG_ARM - set_irq_flags(irq, 0); + set_irq_flags(virq, 0); #endif - irq_set_chip_and_handler(irq, NULL, NULL); - irq_set_chip_data(irq, NULL); + irq_set_chip_and_handler(virq, NULL, NULL); + irq_set_chip_data(virq, NULL); + } + + static const struct irq_domain_ops stmpe_gpio_irq_simple_ops = { + .unmap = stmpe_gpio_irq_unmap, + .map = stmpe_gpio_irq_map, + .xlate = irq_domain_xlate_twocell, + }; + -static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio) ++static int stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio) + { + int base = stmpe_gpio->irq_base; + + stmpe_gpio->domain = irq_domain_add_simple(NULL, + stmpe_gpio->chip.ngpio, base, + &stmpe_gpio_irq_simple_ops, stmpe_gpio); + if (!stmpe_gpio->domain) { + dev_err(stmpe_gpio->dev, "failed to create irqdomain\n"); + return -ENOSYS; } + + return 0; } -static int __devinit stmpe_gpio_probe(struct platform_device *pdev) +static int stmpe_gpio_probe(struct platform_device *pdev) { struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent); struct device_node *np = pdev->dev.of_node;
pgpRPGZJAuY1v.pgp
Description: PGP signature