[PATCH] mfd: twl6030-irq: Use of_device_get_match_data()

Rosen Penev posted 1 patch 1 week ago
drivers/mfd/twl6030-irq.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
[PATCH] mfd: twl6030-irq: Use of_device_get_match_data()
Posted by Rosen Penev 1 week ago
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
Re: [PATCH] mfd: twl6030-irq: Use of_device_get_match_data()
Posted by Andreas Kemnade 6 days, 23 hours ago
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
Re: [PATCH] mfd: twl6030-irq: Use of_device_get_match_data()
Posted by Rosen Penev 6 days, 22 hours ago
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