drivers/mfd/twl6030-irq.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
Use of_device_get_match_data() to fetch the IRQ mapping table directly instead of open-coding an of_match_device() lookup.
This also lets the driver drop the of_device.h include.
Assisted-by: Codex:GPT-5.5
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/mfd/twl6030-irq.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
index 0ca00f618d4d..8831c81a1f90 100644
--- a/drivers/mfd/twl6030-irq.c
+++ b/drivers/mfd/twl6030-irq.c
@@ -27,7 +27,6 @@
#include <linux/suspend.h>
#include <linux/of.h>
#include <linux/irqdomain.h>
-#include <linux/of_device.h>
#include "twl-core.h"
@@ -293,10 +292,10 @@ int twl6030_init_irq(struct device *dev, int irq_num)
int nr_irqs;
int status;
u8 mask[3];
- const struct of_device_id *of_id;
+ const int *irq_mapping_tbl;
- of_id = of_match_device(twl6030_of_match, dev);
- if (!of_id || !of_id->data) {
+ irq_mapping_tbl = of_device_get_match_data(dev);
+ if (!irq_mapping_tbl) {
dev_err(dev, "Unknown TWL device model\n");
return -EINVAL;
}
@@ -334,7 +333,7 @@ int twl6030_init_irq(struct device *dev, int irq_num)
twl6030_irq->pm_nb.notifier_call = twl6030_irq_pm_notifier;
atomic_set(&twl6030_irq->wakeirqs, 0);
- twl6030_irq->irq_mapping_tbl = of_id->data;
+ twl6030_irq->irq_mapping_tbl = irq_mapping_tbl;
twl6030_irq->irq_domain = irq_domain_create_linear(dev_fwnode(dev), nr_irqs,
&twl6030_irq_domain_ops, twl6030_irq);
@@ -378,4 +377,3 @@ void twl6030_exit_irq(void)
*/
}
}
-
--
2.54.0
On Sun, 17 May 2026 21:15:58 -0700
Rosen Penev <rosenp@gmail.com> wrote:
> Use of_device_get_match_data() to fetch the IRQ mapping table directly instead of open-coding an of_match_device() lookup.
>
> This also lets the driver drop the of_device.h include.
>
> Assisted-by: Codex:GPT-5.5
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
> drivers/mfd/twl6030-irq.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
> index 0ca00f618d4d..8831c81a1f90 100644
> --- a/drivers/mfd/twl6030-irq.c
> +++ b/drivers/mfd/twl6030-irq.c
> @@ -27,7 +27,6 @@
> #include <linux/suspend.h>
> #include <linux/of.h>
> #include <linux/irqdomain.h>
> -#include <linux/of_device.h>
>
> #include "twl-core.h"
>
> @@ -293,10 +292,10 @@ int twl6030_init_irq(struct device *dev, int irq_num)
> int nr_irqs;
> int status;
> u8 mask[3];
> - const struct of_device_id *of_id;
> + const int *irq_mapping_tbl;
>
> - of_id = of_match_device(twl6030_of_match, dev);
twl6030_of_match is used only here.
> - if (!of_id || !of_id->data) {
> + irq_mapping_tbl = of_device_get_match_data(dev);
so how should of_device_get_match_data() know about it?
Regards,
Andreas
On Sun May 17, 2026 at 10:46 PM PDT, Andreas Kemnade wrote:
> On Sun, 17 May 2026 21:15:58 -0700
> Rosen Penev <rosenp@gmail.com> wrote:
>
>> Use of_device_get_match_data() to fetch the IRQ mapping table directly instead of open-coding an of_match_device() lookup.
>>
>> This also lets the driver drop the of_device.h include.
>>
>> Assisted-by: Codex:GPT-5.5
>> Signed-off-by: Rosen Penev <rosenp@gmail.com>
>> ---
>> drivers/mfd/twl6030-irq.c | 10 ++++------
>> 1 file changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
>> index 0ca00f618d4d..8831c81a1f90 100644
>> --- a/drivers/mfd/twl6030-irq.c
>> +++ b/drivers/mfd/twl6030-irq.c
>> @@ -27,7 +27,6 @@
>> #include <linux/suspend.h>
>> #include <linux/of.h>
>> #include <linux/irqdomain.h>
>> -#include <linux/of_device.h>
>>
>> #include "twl-core.h"
>>
>> @@ -293,10 +292,10 @@ int twl6030_init_irq(struct device *dev, int irq_num)
>> int nr_irqs;
>> int status;
>> u8 mask[3];
>> - const struct of_device_id *of_id;
>> + const int *irq_mapping_tbl;
>>
>> - of_id = of_match_device(twl6030_of_match, dev);
>
> twl6030_of_match is used only here.
>
>> - if (!of_id || !of_id->data) {
>> + irq_mapping_tbl = of_device_get_match_data(dev);
>
> so how should of_device_get_match_data() know about it?
Ah looks like this is wrong.
>
> Regards,
> Andreas
© 2016 - 2026 Red Hat, Inc.