On 17/11/2021 02:45, chenxiang wrote:
From: Xiang Chen<chenxiang66@xxxxxxxxxxxxx>
It is possible that controller may be suspended between ISR of phyup
and the event being processed, then it can't ensure controller is
active when processing the phyup event which will cause issues.
To avoid the issue, add pm_runtime_get_noresume() in ISR of phyup
and pm_runtime_put_sync() in the work handler exit of a new event
HISI_PHYE_PHY_UP_PM which is called in v3 hw as runtime PM is
only supported for v3 hw.
Please consider this rewrite:
It is possible that the controller may become suspended between
processing a phyup interrupt and the event being processed by libsas. As
such, we can't ensure that the controller is active when processing the
phyup event - this may cause the phyup event to be lost or other issues.
To avoid any possible issues, add pm_runtime_get_noresume() in the phyup
interrupt handler and pm_runtime_put_sync() in the work handler exit to
ensure that we stay always active. Since we only want
pm_runtime_get_noresume() called for v3 hw, signal this will a new
event, HISI_PHYE_PHY_UP_PM.
Thanks,
John