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

i2c: Switch to irq_domain_create_linear()

irq_domain_add_linear() is going away as being obsolete now. Switch to
the preferred irq_domain_create_linear(). That differs in the first
parameter: It takes more generic struct fwnode_handle instead of struct
device_node. Therefore, of_fwnode_handle() is added around the
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-20-jirislaby@kernel.org


authored by

Jiri Slaby (SUSE) and committed by
Thomas Gleixner
3fd83ff1 493e1092

+4 -4
+1 -1
drivers/i2c/busses/i2c-cht-wc.c
··· 467 467 return ret; 468 468 469 469 /* Alloc and register client IRQ */ 470 - adap->irq_domain = irq_domain_add_linear(NULL, 1, &irq_domain_simple_ops, NULL); 470 + adap->irq_domain = irq_domain_create_linear(NULL, 1, &irq_domain_simple_ops, NULL); 471 471 if (!adap->irq_domain) 472 472 return -ENOMEM; 473 473
+3 -3
drivers/i2c/muxes/i2c-mux-pca954x.c
··· 442 442 443 443 raw_spin_lock_init(&data->lock); 444 444 445 - data->irq = irq_domain_add_linear(client->dev.of_node, 446 - data->chip->nchans, 447 - &irq_domain_simple_ops, data); 445 + data->irq = irq_domain_create_linear(of_fwnode_handle(client->dev.of_node), 446 + data->chip->nchans, 447 + &irq_domain_simple_ops, data); 448 448 if (!data->irq) 449 449 return -ENODEV; 450 450