-
由 Rafael J. Wysocki 提交于
stable inclusion from stable-5.10.65 commit 3890c6e1da3146545f9c34611fc94672667a0ce5 bugzilla: 182361 https://gitee.com/openeuler/kernel/issues/I4EH3U Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3890c6e1da3146545f9c34611fc94672667a0ce5 -------------------------------- [ Upstream commit da9f2150 ] It is inconsistent to return PCI_D0 from pci_target_state() instead of the original target state if 'wakeup' is true and the device cannot signal PME from D0. This only happens when the device cannot signal PME from the original target state and any shallower power states (including D0) and that case is effectively equivalent to the one in which PME singaling is not supported at all. Since the original target state is returned in the latter case, make the function do that in the former one too. Link: https://lore.kernel.org/linux-pm/3149540.aeNJFYEL58@kreacher/ Fixes: 666ff6f8 ("PCI/PM: Avoid using device_may_wakeup() for runtime PM") Reported-by: NMika Westerberg <mika.westerberg@linux.intel.com> Reported-by: NUtkarsh H Patel <utkarsh.h.patel@intel.com> Reported-by: NKoba Ko <koba.ko@canonical.com> Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: NMika Westerberg <mika.westerberg@linux.intel.com> Tested-by: NMika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: NChen Jun <chenjun102@huawei.com> Acked-by: NWeilong Chen <chenweilong@huawei.com> Signed-off-by: NChen Jun <chenjun102@huawei.com> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
a4c06dce