Re: [PATCH 3/4] soundwire: bus_type: Create IRQ mapping before calling driver probe()

Richard Fitzgerald <[email protected]>
Newsgroups gmane.linux.sound,gmane.linux.kernel
Message-ID <[email protected]>
On 11/8/26 06:16, Vinod Koul wrote:
> On 10-08-26, 11:40, Richard Fitzgerald wrote:
>> Call sdw_irq_create_mapping() before calling the peripheral driver
>> probe() so that it is possible to request the IRQ during probe().
>>
>> Previously creation of the mapping was conditional on the use_domain_irq
>> flag in the driver properties. But these are filled in after probe(),
>> which meant it wasn't possible to request the IRQ during probe(). This
>> was ok for MFD drivers where only children requested the IRQ. But for
>> normal drivers it led to the non-standard behavior of having to defer
>> requesting the IRQ until after probe().
> 
> Shouldnt that still be the case (conditionally creating mapping). Does
> every need this mapping?

Other interrupt providers create all their IRQs even if nothing uses
them, so why worry about one IRQ mapping per SoundWire peripheral?

Currently it's just another way that the SoundWire subsystem doesn't
follow normal Linux conventions and requires the codec drivers to
work around the strangeness.

We could unmap it after ops->read_prop() if we see use_domain_irq is
false.

If we want to skip ever creating it, we'd need to move use_domain_irq
to somewhere that is valid _before_ calling the codec driver probe().

Or call ops->read_prop() before calling probe(). There's no explanation
why read_prop() was placed after probe() so I'm reluctant to move it.
But I assume it's expected that probe() will always be the first
function called in a driver.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.