Messages in this thread | | | Subject | Re: [PATCH v5 4/5] Driver core: platform: Add devm_platform_get_irqs_affinity() | From | John Garry <> | Date | Wed, 9 Dec 2020 19:36:52 +0000 |
| |
On 09/12/2020 19:13, Greg KH wrote:
Hi Greg,
>> For this HW version, the device is on the system bus, directly addressable >> by the CPU. > What do you mean by "system bus"?
Maybe my terminology is wrong, the point is that we have a platform device driver.
> >> Motivation is that I wanted to switch the HW completion queues to use >> managed interrupts. > Fair enough, seems like overkill for a "platform" bus though:) > >>> What in-kernel driver needs this complexity? I can't take new apis >>> without a real user in the tree, sorry. >> It's in the final patch in the serieshttps://lore.kernel.org/linux-scsi/1606905417-183214-1-git-send-email-john.garry@huawei.com/T/#m0df7e7cd6f0819b99aaeb6b7f8939ef1e17b8a83. > Ah, I missed that, I thought that was some high-speed scsi thing, not a > tiny platform driver...
It is actually is a high-speed SCSI thing also, SAS 3.0 :)
> >> I don't anticipate a huge number of users of this API in future, as most >> multi-queue devices are PCI devices; so we could do the work of this API in >> the driver itself, but the preference was not to export genirq functions >> like irq_update_affinity_desc() or irq_create_affinity_masks(), and rather >> have a common helper in the core platform code. > Ok, I'd like to have the irq maintainers/developers ack this before > taking it in the driver core, as someone is going to have to maintain > this crazy thing for forever if it gets merged. >
irq experts are cc'ed and have been very helpful here
So the API mushroomed a bit over time, as I realized that we need to support tearing down the irq mapping, make as devm method, use irq_calc_affinity_vectors(). Not sure how we could factor any of it out to become less of your problem.
Thanks, John
| |