Make gpiobus_alloc_resource() accept a 'child' that is not a child of
'bus'. This will be needed for cousin interrupt consumers, which may not
be a decendant of the interrupt source.
Sponsored by: The FreeBSD Foundation
Differential D59682
gpiobus: Support non-child interrupt resource consumers Authored by obiwac on Tue, Sep 15, 12:36 AM. Tags None Referenced Files
Details
Make gpiobus_alloc_resource() accept a 'child' that is not a child of Sponsored by: The FreeBSD Foundation
Diff Detail
Event TimelineComment Actions When I thought about these things, what concerned me is dependencies between a device and its non-child consumers. I think that Linux has a concept of devlink or something like that. In the end, I support this change but I think that it can open dangerous holes without additional dependency mechanism. Comment Actions I tested this stack of diffs on my laptop, it also has I2C HID touchpad with IRQ connected to GPIO pin (pin #144, which resides in upper 32 bit word). Stack works, but with some issues:
panic: /usr/home/rz/FreeBSD-src/src-current/sys/kern/subr_rman.c:137: rman_init: Bad tailq NEXT(0xffffffff81ae49f0->tqh_last) != NULL Looks like it is trying to do second allocation of already allocated resource. |