[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230317191834.186690-1-markhas@chromium.org>
Date: Fri, 17 Mar 2023 13:18:34 -0600
From: Mark Hasemeyer <markhas@...omium.org>
To: jsd@...ihalf.com
Cc: andriy.shevchenko@...ux.intel.com, jarkko.nikula@...ux.intel.com,
linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org,
mario.limonciello@....com, rrangel@...omium.org,
upstream@...ihalf.com, wsa@...nel.org, dabros@...gle.com
Subject: [PATCH -next 2/2] i2c: designware: Add support for new SoCs in AMDPSP driver
- /* Status field in command-response buffer is updated by PSP */
- status = READ_ONCE(req->hdr.status);
+ if (req) {
+ /* Status field in command-response buffer is updated by PSP */
+ status = READ_ONCE(req->hdr.status);
+ } else {
+ status = psp_smn_read(PSP_MBOX_CMD_OFFSET, &status);
+ status &= ~PSP_MBOX_FIELDS_READY;
+ }
The value of the mbox cmd register is getting clobbered by the return value
from psp_smn_read. This can cause bus arbitration to fail as the driver will
think it can grab the bus when it's actually in use by the PSP.
Powered by blists - more mailing lists