Messages in this thread | | | Date | Fri, 5 Jun 2020 13:35:59 +0200 | From | Lukas Wunner <> | Subject | Re: [PATCH 3/3] spi: bcm2835: Enable shared interrupt support |
| |
On Thu, Jun 04, 2020 at 01:24:54PM -0700, Florian Fainelli wrote: > So we do need to know for the first time we install the interrupt > handler whether we will be in a shared situation or not, I cannot think > of any solution other than counting the number of available DT nodes > with the "brcm,bcm2835-spi" compatible string.
In principle it would be possible to iterate over the entire DT using for_each_of_allnodes() and call of_irq_parse_one() on each device_node if it's enabled and not the one we're probing. Then check if any of that device_node's IRQs is identical to that of the device_node we're probing. That would give you a generic method to test for sharedness of an interrupt.
However the solution you've found is simpler and cheaper than such a brute-force search, hence seems perfectly valid to me.
> I appreciate that > Lukas has spent some tremendous amount of time working on this > controller driver and he has a sensitivity for performance.
Thanks! Indeed I think spi-bcm2835.c is by now among the best performing and most featureful SPI drivers in the kernel. I've recently had a discussion on netdev with someone testing an SPI-attached Ethernet chip on iMX6Q and on STM32MP1 and couldn't get it to work. With a BCM2837 no problem at all:
https://lore.kernel.org/netdev/ac0f7227-a4ae-b6cd-36ec-3bcb02b1adbe@denx.de/
Lukas
| |