Dear Marc, I am trying to register interrupt controller for the MFD deivce. I need to queue work to call handle_nested_irq() in the callback of the interrupt pipe, right? Best regards, Ming Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> 於 2024年10月25日 週五 下午4:33寫道: > > On 25.10.2024 16:22:01, Ming Yu wrote: > > Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> 於 2024年10月24日 週四 下午7:57寫道: > > > On 24.10.2024 16:59:13, Ming Yu wrote: > > > > This patch series introduces support for Nuvoton NCT6694, a peripheral > > > > expander based on USB interface. It models the chip as an MFD driver > > > > (1/9), GPIO driver(2/9), I2C Adapter driver(3/9), CANfd driver(4/9), > > > > WDT driver(5/9), HWMON driver(6/9), IIO driver(7/9), PWM driver(8/9), > > > > and RTC driver(9/9). > > > > > > > > The MFD driver implements USB device functionality to issue > > > > custom-define USB bulk pipe packets for NCT6694. Each child device can > > > > use the USB functions nct6694_read_msg() and nct6694_write_msg() to issue > > > > a command. They can also register a handler function that will be called > > > > when the USB device receives its interrupt pipe. > > > > > > What about implementing a proper IRQ demux handler instead? > > > I think the currently planned IRQ process meets expectations. > > Is there anything that needs improvement? > > You can register the IRQs of the MFD device with the Linux kernel. This > way the devices can request a threaded IRQ handler directly via the > kernel function, instead of registering the callback. > > With a threaded IRQ handler you can directly call the > nct6694_read_msg(), nct6694_write_msg() without the need to start a > workqueue from the callback. > > Marc > > -- > Pengutronix e.K. | Marc Kleine-Budde | > Embedded Linux | https://www.pengutronix.de | > Vertretung Nürnberg | Phone: +49-5121-206917-129 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |