Hi,
We have added the affinity related code in gpio-mxc driver for iMX8DXL with 5.15.52 BSP as below:
...
if (of_device_is_compatible(np, "fsl,imx21-gpio")) {
/*
* Setup one handler for all GPIO interrupts. Actually setting
* the handler is needed only once, but doing it for every port
* is more robust and easier.
*/
irq_set_chained_handler(port->irq, mx2_gpio_irq_handler);
+ irq_set_affinity_hint(port->irq, cpumask_of(2));
} else {
/* setup one handler for each entry */
irq_set_chained_handler_and_data(port->irq,
mx3_gpio_irq_handler, port);
+ if (port->irq_high > 0)
+ irq_set_affinity_hint(port->irq, cpumask_of(2));
if (port->irq_high > 0)
/* setup handler for GPIO 16 to 31 */
irq_set_chained_handler_and_data(port->irq_high,
mx3_gpio_irq_handler,
port);
+ irq_set_affinity_hint(port->irq_high, cpumask_of(2));
}
...
But when we do cat /proc/interrupts, we get the result as below, where the affinity is still in CPU 0
root@imx8dxl-iwg46s:~# cat /proc/interrupts
CPU0 CPU1
9: 0 0 GICv3 25 Level vgic
11: 3291 3729 GICv3 30 Level arch_timer
12: 0 0 GICv3 27 Level kvm guest vtimer
14: 0 0 GICv3 23 Level arm-pmu
15: 0 0 GICv3 372 Level imx_mu_chan[3-0]
16: 0 0 GICv3 374 Level imx_mu_chan[3-0]
17: 0 0 GICv3 376 Level imx_mu_chan[3-0]
18: 0 0 GICv3 380 Level imx_mu_chan[3-0]
19: 0 0 GICv3 382 Level imx_mu_chan[3-0]
21: 0 0 GICv3 350 Level imx_mu_chan[3-0]
22: 0 0 GICv3 351 Level imx_mu_chan[3-0]
23: 0 0 GICv3 352 Level imx_mu_chan[3-0]
50: 537 0 GICv3 260 Level fsl-lpuart
51: 0 0 GICv3 261 Level fsl-lpuart
52: 0 0 GICv3 262 Level fsl-lpuart
53: 0 0 GICv3 263 Level fsl-lpuart
54: 0 0 GICv3 178 Level 5a880000.adc
55: 49 0 GICv3 257 Level
75: 0 0 GICv3 252 Level 5a020000.spi
76: 0 0 GICv3 253 Level 5a030000.spi
77: 0 0 GICv3 201 Level 5b0d0000.usb
78: 2716 0 GICv3 170 Level mmc0
79: 183 0 GICv3 172 Level mmc1
80: 0 0 GICv3 195 Level eth0
81: 0 0 GICv3 194 Level eth0
83: 0 0 GICv3 198 Level 5b0e0000.usb
84: 0 0 GICv3 103 Level imx8_ddr_perf_pmu
85: 0 0 GICv3 370 Level imx8_ddr_perf_pmu
94: 3065 0 GICv3 119 Level imx_mu_chan[0-0], imx_mu_chan[1-0], imx_mu_chan[3-3]
204: 1 0 gpio-mxc 12 Edge can3 --------------------------------------------------------> this is the one we want to change
212: 0 0 gpio-mxc 20 Edge wakeup-gpio
213: 0 0 gpio-mxc 21 Level pcf85363
214: 0 0 gpio-mxc 22 Level lsm6dsm
IPI0: 3224 4256 Rescheduling interrupts
IPI1: 224 339 Function call interrupts
IPI2: 0 0 CPU stop interrupts
IPI3: 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 Timer broadcast interrupts
IPI5: 828 807 IRQ work interrupts
IPI6: 0 0 CPU wake-up interrupts
So is there any change that needs to done with respect to 5.15 linux version?
Regards,
Ankita