]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status()
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Tue, 24 Mar 2020 15:28:11 +0000 (23:28 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Apr 2020 09:00:18 +0000 (11:00 +0200)
commitc083255c83879b08ff8f31220a26d019880c5ab9
tree798b5ba47f99d21edf14b69f13bde359a5a7aef9
parent7957106ce3b50d2c2abc36d7225d42117eaf6d7b
i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status()

commit d944b27df121e2ee854a6c2fad13d6c6300792d4 upstream.

Nvidia card may come with a "phantom" UCSI device, and its driver gets
stuck in probe routine, prevents any system PM operations like suspend.

There's an unaccounted case that the target time can equal to jiffies in
gpu_i2c_check_status(), let's solve that by using readl_poll_timeout()
instead of jiffies comparison functions.

Fixes: c71bcdcb42a7 ("i2c: add i2c bus driver for NVIDIA GPU")
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Tested-by: Ajay Gupta <ajayg@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/i2c/busses/i2c-nvidia-gpu.c