mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 10:01:39 -05:00
mfd: 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-25-jirislaby@kernel.org
This commit is contained in:
committed by
Thomas Gleixner
parent
8529e33bfe
commit
a36aa0f722
@@ -624,8 +624,8 @@ static int device_irq_init(struct pm860x_chip *chip,
|
||||
ret = -EBUSY;
|
||||
goto out;
|
||||
}
|
||||
irq_domain_add_legacy(node, nr_irqs, chip->irq_base, 0,
|
||||
&pm860x_irq_domain_ops, chip);
|
||||
irq_domain_create_legacy(of_fwnode_handle(node), nr_irqs, chip->irq_base, 0,
|
||||
&pm860x_irq_domain_ops, chip);
|
||||
chip->core_irq = i2c->irq;
|
||||
if (!chip->core_irq)
|
||||
goto out;
|
||||
|
||||
@@ -580,9 +580,9 @@ static int ab8500_irq_init(struct ab8500 *ab8500, struct device_node *np)
|
||||
num_irqs = AB8500_NR_IRQS;
|
||||
|
||||
/* If ->irq_base is zero this will give a linear mapping */
|
||||
ab8500->domain = irq_domain_add_simple(ab8500->dev->of_node,
|
||||
num_irqs, 0,
|
||||
&ab8500_irq_ops, ab8500);
|
||||
ab8500->domain = irq_domain_create_simple(of_fwnode_handle(ab8500->dev->of_node),
|
||||
num_irqs, 0,
|
||||
&ab8500_irq_ops, ab8500);
|
||||
|
||||
if (!ab8500->domain) {
|
||||
dev_err(ab8500->dev, "Failed to create irqdomain\n");
|
||||
|
||||
@@ -312,8 +312,7 @@ int arizona_irq_init(struct arizona *arizona)
|
||||
flags |= arizona->pdata.irq_flags;
|
||||
|
||||
/* Allocate a virtual IRQ domain to distribute to the regmap domains */
|
||||
arizona->virq = irq_domain_add_linear(NULL, 2, &arizona_domain_ops,
|
||||
arizona);
|
||||
arizona->virq = irq_domain_create_linear(NULL, 2, &arizona_domain_ops, arizona);
|
||||
if (!arizona->virq) {
|
||||
dev_err(arizona->dev, "Failed to add core IRQ domain\n");
|
||||
ret = -EINVAL;
|
||||
|
||||
@@ -2607,9 +2607,9 @@ static int db8500_irq_init(struct device_node *np)
|
||||
{
|
||||
int i;
|
||||
|
||||
db8500_irq_domain = irq_domain_add_simple(
|
||||
np, NUM_PRCMU_WAKEUPS, 0,
|
||||
&db8500_irq_ops, NULL);
|
||||
db8500_irq_domain = irq_domain_create_simple(of_fwnode_handle(np),
|
||||
NUM_PRCMU_WAKEUPS, 0,
|
||||
&db8500_irq_ops, NULL);
|
||||
|
||||
if (!db8500_irq_domain) {
|
||||
pr_err("Failed to create irqdomain\n");
|
||||
|
||||
@@ -65,15 +65,14 @@ static int mx25_tsadc_setup_irq(struct platform_device *pdev,
|
||||
struct mx25_tsadc *tsadc)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct device_node *np = dev->of_node;
|
||||
int irq;
|
||||
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
|
||||
tsadc->domain = irq_domain_add_simple(np, 2, 0, &mx25_tsadc_domain_ops,
|
||||
tsadc);
|
||||
tsadc->domain = irq_domain_create_simple(of_fwnode_handle(dev->of_node), 2, 0,
|
||||
&mx25_tsadc_domain_ops, tsadc);
|
||||
if (!tsadc->domain) {
|
||||
dev_err(dev, "Failed to add irq domain\n");
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -161,7 +161,7 @@ int lp8788_irq_init(struct lp8788 *lp, int irq)
|
||||
return -ENOMEM;
|
||||
|
||||
irqd->lp = lp;
|
||||
irqd->domain = irq_domain_add_linear(lp->dev->of_node, LP8788_INT_MAX,
|
||||
irqd->domain = irq_domain_create_linear(of_fwnode_handle(lp->dev->of_node), LP8788_INT_MAX,
|
||||
&lp8788_domain_ops, irqd);
|
||||
if (!irqd->domain) {
|
||||
dev_err(lp->dev, "failed to add irq domain err\n");
|
||||
|
||||
@@ -682,8 +682,8 @@ static int max8925_irq_init(struct max8925_chip *chip, int irq,
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
irq_domain_add_legacy(node, MAX8925_NR_IRQS, chip->irq_base, 0,
|
||||
&max8925_irq_domain_ops, chip);
|
||||
irq_domain_create_legacy(of_fwnode_handle(node), MAX8925_NR_IRQS, chip->irq_base, 0,
|
||||
&max8925_irq_domain_ops, chip);
|
||||
|
||||
/* request irq handler for pmic main irq*/
|
||||
chip->core_irq = irq;
|
||||
|
||||
@@ -327,8 +327,8 @@ int max8997_irq_init(struct max8997_dev *max8997)
|
||||
true : false;
|
||||
}
|
||||
|
||||
domain = irq_domain_add_linear(NULL, MAX8997_IRQ_NR,
|
||||
&max8997_irq_domain_ops, max8997);
|
||||
domain = irq_domain_create_linear(NULL, MAX8997_IRQ_NR,
|
||||
&max8997_irq_domain_ops, max8997);
|
||||
if (!domain) {
|
||||
dev_err(max8997->dev, "could not create irq domain\n");
|
||||
return -ENODEV;
|
||||
|
||||
@@ -230,7 +230,7 @@ int max8998_irq_init(struct max8998_dev *max8998)
|
||||
max8998_write_reg(max8998->i2c, MAX8998_REG_STATUSM1, 0xff);
|
||||
max8998_write_reg(max8998->i2c, MAX8998_REG_STATUSM2, 0xff);
|
||||
|
||||
domain = irq_domain_add_simple(NULL, MAX8998_IRQ_NR,
|
||||
domain = irq_domain_create_simple(NULL, MAX8998_IRQ_NR,
|
||||
max8998->irq_base, &max8998_irq_domain_ops, max8998);
|
||||
if (!domain) {
|
||||
dev_err(max8998->dev, "could not create irq domain\n");
|
||||
|
||||
@@ -272,9 +272,9 @@ int mt6358_irq_init(struct mt6397_chip *chip)
|
||||
irqd->pmic_ints[i].en_reg_shift * j, 0);
|
||||
}
|
||||
|
||||
chip->irq_domain = irq_domain_add_linear(chip->dev->of_node,
|
||||
irqd->num_pmic_irqs,
|
||||
&mt6358_irq_domain_ops, chip);
|
||||
chip->irq_domain = irq_domain_create_linear(of_fwnode_handle(chip->dev->of_node),
|
||||
irqd->num_pmic_irqs,
|
||||
&mt6358_irq_domain_ops, chip);
|
||||
if (!chip->irq_domain) {
|
||||
dev_err(chip->dev, "Could not create IRQ domain\n");
|
||||
return -ENODEV;
|
||||
|
||||
@@ -216,10 +216,8 @@ int mt6397_irq_init(struct mt6397_chip *chip)
|
||||
regmap_write(chip->regmap, chip->int_con[2], 0x0);
|
||||
|
||||
chip->pm_nb.notifier_call = mt6397_irq_pm_notifier;
|
||||
chip->irq_domain = irq_domain_add_linear(chip->dev->of_node,
|
||||
MT6397_IRQ_NR,
|
||||
&mt6397_irq_domain_ops,
|
||||
chip);
|
||||
chip->irq_domain = irq_domain_create_linear(of_fwnode_handle(chip->dev->of_node),
|
||||
MT6397_IRQ_NR, &mt6397_irq_domain_ops, chip);
|
||||
if (!chip->irq_domain) {
|
||||
dev_err(chip->dev, "could not create irq domain\n");
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -559,10 +559,8 @@ static int pm8xxx_probe(struct platform_device *pdev)
|
||||
chip->pm_irq_data = data;
|
||||
spin_lock_init(&chip->pm_irq_lock);
|
||||
|
||||
chip->irqdomain = irq_domain_add_linear(pdev->dev.of_node,
|
||||
data->num_irqs,
|
||||
&pm8xxx_irq_domain_ops,
|
||||
chip);
|
||||
chip->irqdomain = irq_domain_create_linear(of_fwnode_handle(pdev->dev.of_node),
|
||||
data->num_irqs, &pm8xxx_irq_domain_ops, chip);
|
||||
if (!chip->irqdomain)
|
||||
return -ENODEV;
|
||||
|
||||
|
||||
@@ -269,7 +269,7 @@ static int stmfx_irq_init(struct i2c_client *client)
|
||||
u32 irqoutpin = 0, irqtrigger;
|
||||
int ret;
|
||||
|
||||
stmfx->irq_domain = irq_domain_add_simple(stmfx->dev->of_node,
|
||||
stmfx->irq_domain = irq_domain_create_simple(of_fwnode_handle(stmfx->dev->of_node),
|
||||
STMFX_REG_IRQ_SRC_MAX, 0,
|
||||
&stmfx_irq_ops, stmfx);
|
||||
if (!stmfx->irq_domain) {
|
||||
|
||||
@@ -1219,8 +1219,8 @@ static int stmpe_irq_init(struct stmpe *stmpe, struct device_node *np)
|
||||
int base = 0;
|
||||
int num_irqs = stmpe->variant->num_irqs;
|
||||
|
||||
stmpe->domain = irq_domain_add_simple(np, num_irqs, base,
|
||||
&stmpe_irq_ops, stmpe);
|
||||
stmpe->domain = irq_domain_create_simple(of_fwnode_handle(np), num_irqs,
|
||||
base, &stmpe_irq_ops, stmpe);
|
||||
if (!stmpe->domain) {
|
||||
dev_err(stmpe->dev, "Failed to create irqdomain\n");
|
||||
return -ENOSYS;
|
||||
|
||||
@@ -234,9 +234,9 @@ static const struct irq_domain_ops tc3589x_irq_ops = {
|
||||
|
||||
static int tc3589x_irq_init(struct tc3589x *tc3589x, struct device_node *np)
|
||||
{
|
||||
tc3589x->domain = irq_domain_add_simple(
|
||||
np, TC3589x_NR_INTERNAL_IRQS, 0,
|
||||
&tc3589x_irq_ops, tc3589x);
|
||||
tc3589x->domain = irq_domain_create_simple(of_fwnode_handle(np),
|
||||
TC3589x_NR_INTERNAL_IRQS, 0,
|
||||
&tc3589x_irq_ops, tc3589x);
|
||||
|
||||
if (!tc3589x->domain) {
|
||||
dev_err(tc3589x->dev, "Failed to create irqdomain\n");
|
||||
|
||||
@@ -158,7 +158,7 @@ static int tps65217_irq_init(struct tps65217 *tps, int irq)
|
||||
tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK,
|
||||
TPS65217_INT_MASK, TPS65217_PROTECT_NONE);
|
||||
|
||||
tps->irq_domain = irq_domain_add_linear(tps->dev->of_node,
|
||||
tps->irq_domain = irq_domain_create_linear(of_fwnode_handle(tps->dev->of_node),
|
||||
TPS65217_NUM_IRQ, &tps65217_irq_domain_ops, tps);
|
||||
if (!tps->irq_domain) {
|
||||
dev_err(tps->dev, "Could not create IRQ domain\n");
|
||||
|
||||
@@ -363,7 +363,7 @@ static int tps6586x_irq_init(struct tps6586x *tps6586x, int irq,
|
||||
new_irq_base = 0;
|
||||
}
|
||||
|
||||
tps6586x->irq_domain = irq_domain_add_simple(tps6586x->dev->of_node,
|
||||
tps6586x->irq_domain = irq_domain_create_simple(of_fwnode_handle(tps6586x->dev->of_node),
|
||||
irq_num, new_irq_base, &tps6586x_domain_ops,
|
||||
tps6586x);
|
||||
if (!tps6586x->irq_domain) {
|
||||
|
||||
@@ -691,8 +691,8 @@ int twl4030_init_irq(struct device *dev, int irq_num)
|
||||
return irq_base;
|
||||
}
|
||||
|
||||
irq_domain_add_legacy(node, nr_irqs, irq_base, 0,
|
||||
&irq_domain_simple_ops, NULL);
|
||||
irq_domain_create_legacy(of_fwnode_handle(node), nr_irqs, irq_base, 0,
|
||||
&irq_domain_simple_ops, NULL);
|
||||
|
||||
irq_end = irq_base + TWL4030_CORE_NR_IRQS;
|
||||
|
||||
|
||||
@@ -364,7 +364,6 @@ static const struct of_device_id twl6030_of_match[] __maybe_unused = {
|
||||
|
||||
int twl6030_init_irq(struct device *dev, int irq_num)
|
||||
{
|
||||
struct device_node *node = dev->of_node;
|
||||
int nr_irqs;
|
||||
int status;
|
||||
u8 mask[3];
|
||||
@@ -412,8 +411,8 @@ int twl6030_init_irq(struct device *dev, int irq_num)
|
||||
twl6030_irq->irq_mapping_tbl = of_id->data;
|
||||
|
||||
twl6030_irq->irq_domain =
|
||||
irq_domain_add_linear(node, nr_irqs,
|
||||
&twl6030_irq_domain_ops, twl6030_irq);
|
||||
irq_domain_create_linear(of_fwnode_handle(dev->of_node), nr_irqs,
|
||||
&twl6030_irq_domain_ops, twl6030_irq);
|
||||
if (!twl6030_irq->irq_domain) {
|
||||
dev_err(dev, "Can't add irq_domain\n");
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -587,16 +587,13 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
|
||||
}
|
||||
|
||||
if (irq_base)
|
||||
domain = irq_domain_add_legacy(wm831x->dev->of_node,
|
||||
ARRAY_SIZE(wm831x_irqs),
|
||||
irq_base, 0,
|
||||
&wm831x_irq_domain_ops,
|
||||
wm831x);
|
||||
domain = irq_domain_create_legacy(of_fwnode_handle(wm831x->dev->of_node),
|
||||
ARRAY_SIZE(wm831x_irqs), irq_base, 0,
|
||||
&wm831x_irq_domain_ops, wm831x);
|
||||
else
|
||||
domain = irq_domain_add_linear(wm831x->dev->of_node,
|
||||
ARRAY_SIZE(wm831x_irqs),
|
||||
&wm831x_irq_domain_ops,
|
||||
wm831x);
|
||||
domain = irq_domain_create_linear(of_fwnode_handle(wm831x->dev->of_node),
|
||||
ARRAY_SIZE(wm831x_irqs), &wm831x_irq_domain_ops,
|
||||
wm831x);
|
||||
|
||||
if (!domain) {
|
||||
dev_warn(wm831x->dev, "Failed to allocate IRQ domain\n");
|
||||
|
||||
@@ -213,9 +213,7 @@ int wm8994_irq_init(struct wm8994 *wm8994)
|
||||
return ret;
|
||||
}
|
||||
|
||||
wm8994->edge_irq = irq_domain_add_linear(NULL, 1,
|
||||
&wm8994_edge_irq_ops,
|
||||
wm8994);
|
||||
wm8994->edge_irq = irq_domain_create_linear(NULL, 1, &wm8994_edge_irq_ops, wm8994);
|
||||
|
||||
ret = regmap_add_irq_chip(wm8994->regmap,
|
||||
irq_create_mapping(wm8994->edge_irq,
|
||||
|
||||
Reference in New Issue
Block a user