Re: [PATCH net-next v4 08/15] net: ravb: Move the IRQs get and request in the probe function
From: Sergey Shtylyov
Date: Sun Jan 28 2024 - 13:02:05 EST
Hello!
I suggest the following subject "net: ravb: Move getting/requesting IRQs in
the probe() method".
On 1/23/24 3:58 PM, Claudiu wrote:
> From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
>
> The runtime PM implementation will disable clocks at the end of
> ravb_probe(). As some IP variants switch to reset mode as a result of
> setting module standby through clock disable APIs, to implement runtime PM
> the resource parsing and requesting are moved in the probe function and IP
> settings are moved in the open function. This is done because at the end of
> the probe some IP variants will switch anyway to reset mode and the
> registers content is lost. Also keeping only register specific operations
Register contents?
> in the ravb_open()/ravb_close() functions will make them faster.
>
> Commit moves IRQ requests to ravb_probe() to have all the IRQs ready when
> the interface is open. As now IRQs gets and requests are in a single place
Again, getting/requesting IRQs.
> there is no need to keep intermediary data (like ravb_rx_irqs[] and
> ravb_tx_irqs[] arrays or IRQs in struct ravb_private).
>
> In order to avoid accessing the IP registers while the IP is runtime
> suspended (e.g. in the timeframe b/w the probe requests shared IRQs and
> IP clocks are enabled) in the interrupt handlers were introduced
> pm_runtime_active() checks. The device runtime PM usage counter has been
> incremented to avoid disabling the device's clocks while the check is in
> progress (if any).
Oh, so this scheme does have some complications...
> This is a preparatory change to add runtime PM support for all IP variants.
>
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
With the above fixed:
Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
[...]
MBR, Sergey