[PATCH v6 1/5] i2c: designware: Use polling by default when there is no irq resource
Heikki Krogerus
heikki.krogerus at linux.intel.com
Tue Jul 1 12:55:08 UTC 2025
On Tue, Jul 01, 2025 at 03:42:42PM +0300, Andy Shevchenko wrote:
> On Tue, Jul 01, 2025 at 03:22:48PM +0300, Heikki Krogerus wrote:
> > The irq resource itself can be used as a generic way to
> > determine when polling is needed.
> >
> > This not only removes the need for special additional device
> > properties that would soon be needed when the platform may
> > or may not have the irq, but it also removes the need to
> > check the platform in the first place in order to determine
> > is polling needed or not.
>
> > Signed-off-by: Heikki Krogerus <heikki.krogerus at linux.intel.com>
> > ---
> > Hi guys,
> >
> > I found the thread with Jarkko's comments from my archives. He wanted
> > the local flags variable to be added because he wants the order of the
> > calls to remain as it is now - the device is allocated only after the
> > irq is checked.
>
> Yes, thanks.
>
> ...
>
> > + u32 flags = (uintptr_t)device_get_match_data(&pdev->dev);
>
> > + irq = platform_get_irq_optional(pdev, 0);
> > + if (irq == -ENXIO)
> > + flags |= ACCESS_POLLING;
> > + else if (irq < 0)
> > return irq;
>
> > if (device_property_present(device, "wx,i2c-snps-model"))
> > + flags = MODEL_WANGXUN_SP | ACCESS_POLLING;
>
> Now I'm a bit puzzled why do we need to add this flag explicitly here?
> Does Wnagxun provides an IRQ and chooses at the same time to poll?
> Shouldn't this patch rather fix that?
No. I do not want to touch the behavior here. The flags were
overwritten and continue to be overwritten.
I will propose an improvement for that together with some other
modifications to this file later, but those are out side the scope of
this series.
thanks,
--
heikki
More information about the Intel-xe
mailing list