Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

gpio: Switch to irq_domain_create_*()

irq_domain_add_*() interfaces are going away as being obsolete now.
Switch to the preferred irq_domain_create_*() ones. Those differ in the
node parameter: They take more generic struct fwnode_handle instead of
struct device_node. Therefore, of_fwnode_handle() is added around the
original parameter.

Note some of the users can likely use dev->fwnode directly instead of
indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not
guaranteed to be set for all, so this has to be investigated on case to
case basis (by people who can actually test with the HW).

[ tglx: Fix up subject prefix ]

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250319092951.37667-18-jirislaby@kernel.org


authored by

Jiri Slaby (SUSE) and committed by
Thomas Gleixner
9cf19f06 6be00e43

+26 -28
+1 -1
drivers/gpio/gpio-brcmstb.c
··· 437 437 int err; 438 438 439 439 priv->irq_domain = 440 - irq_domain_add_linear(np, priv->num_gpios, 440 + irq_domain_create_linear(of_fwnode_handle(np), priv->num_gpios, 441 441 &brcmstb_gpio_irq_domain_ops, 442 442 priv); 443 443 if (!priv->irq_domain) {
+2 -3
drivers/gpio/gpio-davinci.c
··· 479 479 return irq; 480 480 } 481 481 482 - irq_domain = irq_domain_add_legacy(dev->of_node, ngpio, irq, 0, 483 - &davinci_gpio_irq_ops, 484 - chips); 482 + irq_domain = irq_domain_create_legacy(of_fwnode_handle(dev->of_node), ngpio, irq, 0, 483 + &davinci_gpio_irq_ops, chips); 485 484 if (!irq_domain) { 486 485 dev_err(dev, "Couldn't register an IRQ domain\n"); 487 486 return -ENODEV;
+3 -2
drivers/gpio/gpio-em.c
··· 323 323 irq_chip->irq_release_resources = em_gio_irq_relres; 324 324 irq_chip->flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND; 325 325 326 - p->irq_domain = irq_domain_add_simple(dev->of_node, ngpios, 0, 327 - &em_gio_irq_domain_ops, p); 326 + p->irq_domain = irq_domain_create_simple(of_fwnode_handle(dev->of_node), 327 + ngpios, 0, 328 + &em_gio_irq_domain_ops, p); 328 329 if (!p->irq_domain) { 329 330 dev_err(dev, "cannot initialize irq domain\n"); 330 331 return -ENXIO;
+1 -1
drivers/gpio/gpio-grgpio.c
··· 397 397 return -EINVAL; 398 398 } 399 399 400 - priv->domain = irq_domain_add_linear(np, gc->ngpio, 400 + priv->domain = irq_domain_create_linear(of_fwnode_handle(np), gc->ngpio, 401 401 &grgpio_irq_domain_ops, 402 402 priv); 403 403 if (!priv->domain) {
+3 -5
drivers/gpio/gpio-lpc18xx.c
··· 240 240 241 241 raw_spin_lock_init(&ic->lock); 242 242 243 - ic->domain = irq_domain_add_hierarchy(parent_domain, 0, 244 - NR_LPC18XX_GPIO_PIN_IC_IRQS, 245 - dev->of_node, 246 - &lpc18xx_gpio_pin_ic_domain_ops, 247 - ic); 243 + ic->domain = irq_domain_create_hierarchy(parent_domain, 0, NR_LPC18XX_GPIO_PIN_IC_IRQS, 244 + of_fwnode_handle(dev->of_node), 245 + &lpc18xx_gpio_pin_ic_domain_ops, ic); 248 246 if (!ic->domain) { 249 247 pr_err("unable to add irq domain\n"); 250 248 ret = -ENODEV;
+1 -1
drivers/gpio/gpio-mvebu.c
··· 1242 1242 return 0; 1243 1243 1244 1244 mvchip->domain = 1245 - irq_domain_add_linear(np, ngpios, &irq_generic_chip_ops, NULL); 1245 + irq_domain_create_linear(of_fwnode_handle(np), ngpios, &irq_generic_chip_ops, NULL); 1246 1246 if (!mvchip->domain) { 1247 1247 dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n", 1248 1248 mvchip->chip.label);
+1 -1
drivers/gpio/gpio-mxc.c
··· 502 502 goto out_bgio; 503 503 } 504 504 505 - port->domain = irq_domain_add_legacy(np, 32, irq_base, 0, 505 + port->domain = irq_domain_create_legacy(of_fwnode_handle(np), 32, irq_base, 0, 506 506 &irq_domain_simple_ops, NULL); 507 507 if (!port->domain) { 508 508 err = -ENODEV;
+2 -2
drivers/gpio/gpio-mxs.c
··· 303 303 goto out_iounmap; 304 304 } 305 305 306 - port->domain = irq_domain_add_legacy(np, 32, irq_base, 0, 307 - &irq_domain_simple_ops, NULL); 306 + port->domain = irq_domain_create_legacy(of_fwnode_handle(np), 32, irq_base, 0, 307 + &irq_domain_simple_ops, NULL); 308 308 if (!port->domain) { 309 309 err = -ENODEV; 310 310 goto out_iounmap;
+3 -3
drivers/gpio/gpio-pxa.c
··· 636 636 if (!pxa_last_gpio) 637 637 return -EINVAL; 638 638 639 - pchip->irqdomain = irq_domain_add_legacy(pdev->dev.of_node, 640 - pxa_last_gpio + 1, irq_base, 641 - 0, &pxa_irq_domain_ops, pchip); 639 + pchip->irqdomain = irq_domain_create_legacy(of_fwnode_handle(pdev->dev.of_node), 640 + pxa_last_gpio + 1, irq_base, 0, 641 + &pxa_irq_domain_ops, pchip); 642 642 if (!pchip->irqdomain) 643 643 return -ENOMEM; 644 644
+1 -1
drivers/gpio/gpio-rockchip.c
··· 521 521 struct irq_chip_generic *gc; 522 522 int ret; 523 523 524 - bank->domain = irq_domain_add_linear(bank->of_node, 32, 524 + bank->domain = irq_domain_create_linear(of_fwnode_handle(bank->of_node), 32, 525 525 &irq_generic_chip_ops, NULL); 526 526 if (!bank->domain) { 527 527 dev_warn(bank->dev, "could not init irq domain for bank %s\n",
+1 -1
drivers/gpio/gpio-sa1100.c
··· 319 319 320 320 gpiochip_add_data(&sa1100_gpio_chip.chip, NULL); 321 321 322 - sa1100_gpio_irqdomain = irq_domain_add_simple(NULL, 322 + sa1100_gpio_irqdomain = irq_domain_create_simple(NULL, 323 323 28, IRQ_GPIO0, 324 324 &sa1100_gpio_irqdomain_ops, sgc); 325 325
+1 -1
drivers/gpio/gpio-sodaville.c
··· 169 169 IRQ_GC_INIT_MASK_CACHE, IRQ_NOREQUEST, 170 170 IRQ_LEVEL | IRQ_NOPROBE); 171 171 172 - sd->id = irq_domain_add_legacy(pdev->dev.of_node, SDV_NUM_PUB_GPIOS, 172 + sd->id = irq_domain_create_legacy(of_fwnode_handle(pdev->dev.of_node), SDV_NUM_PUB_GPIOS, 173 173 sd->irq_base, 0, &irq_domain_sdv_ops, sd); 174 174 if (!sd->id) 175 175 return -ENODEV;
+1 -1
drivers/gpio/gpio-tb10x.c
··· 183 183 if (ret != 0) 184 184 return ret; 185 185 186 - tb10x_gpio->domain = irq_domain_add_linear(np, 186 + tb10x_gpio->domain = irq_domain_create_linear(of_fwnode_handle(np), 187 187 tb10x_gpio->gc.ngpio, 188 188 &irq_generic_chip_ops, NULL); 189 189 if (!tb10x_gpio->domain) {
+2 -3
drivers/gpio/gpio-twl4030.c
··· 502 502 static int gpio_twl4030_probe(struct platform_device *pdev) 503 503 { 504 504 struct twl4030_gpio_platform_data *pdata; 505 - struct device_node *node = pdev->dev.of_node; 506 505 struct gpio_twl4030_priv *priv; 507 506 int ret, irq_base; 508 507 ··· 523 524 return irq_base; 524 525 } 525 526 526 - irq_domain_add_legacy(node, TWL4030_GPIO_MAX, irq_base, 0, 527 - &irq_domain_simple_ops, NULL); 527 + irq_domain_create_legacy(of_fwnode_handle(pdev->dev.of_node), TWL4030_GPIO_MAX, irq_base, 0, 528 + &irq_domain_simple_ops, NULL); 528 529 529 530 ret = twl4030_sih_setup(&pdev->dev, TWL4030_MODULE_GPIO, irq_base); 530 531 if (ret < 0)
+3 -2
include/linux/gpio/driver.h
··· 287 287 /** 288 288 * @first: 289 289 * 290 - * Required for static IRQ allocation. If set, irq_domain_add_simple() 291 - * will allocate and map all IRQs during initialization. 290 + * Required for static IRQ allocation. If set, 291 + * irq_domain_create_simple() will allocate and map all IRQs 292 + * during initialization. 292 293 */ 293 294 unsigned int first; 294 295