thunderbolt: Use bit 31 to check if Firmware CM is running in Tiger Lake

In Tiger Lake the Firmware CM is always enabled (so bit 0 is always set)
but it may be in "pass through" mode which means it requires Software CM
instead. This can be determined by checking bit 31 instead.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
Mika Westerberg 2020-06-17 19:04:09 +03:00
parent 59ed8dcad6
commit 49f2a7f4cd
1 changed files with 4 additions and 1 deletions

View File

@ -1635,11 +1635,14 @@ static void icm_icl_rtd3_veto(struct tb *tb, const struct icm_pkg_header *hdr)
static bool icm_tgl_is_supported(struct tb *tb) static bool icm_tgl_is_supported(struct tb *tb)
{ {
u32 val;
/* /*
* If the firmware is not running use software CM. This platform * If the firmware is not running use software CM. This platform
* should fully support both. * should fully support both.
*/ */
return icm_firmware_running(tb->nhi); val = ioread32(tb->nhi->iobase + REG_FW_STS);
return !!(val & REG_FW_STS_NVM_AUTH_DONE);
} }
static void icm_handle_notification(struct work_struct *work) static void icm_handle_notification(struct work_struct *work)