forked from Minki/linux
thunderbolt: No need to read UID of the root switch on resume
The root switch is part of the host controller and cannot be physically removed, so there is no point of reading UID again on resume in order to check if the root switch is still the same. Suggested-by: Andreas Noever <andreas.noever@gmail.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Andreas Noever <andreas.noever@gmail.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
16a1258af5
commit
08a5e4cebe
@ -452,19 +452,26 @@ void tb_sw_set_unplugged(struct tb_switch *sw)
|
||||
int tb_switch_resume(struct tb_switch *sw)
|
||||
{
|
||||
int i, err;
|
||||
u64 uid;
|
||||
tb_sw_info(sw, "resuming switch\n");
|
||||
|
||||
err = tb_drom_read_uid_only(sw, &uid);
|
||||
if (err) {
|
||||
tb_sw_warn(sw, "uid read failed\n");
|
||||
return err;
|
||||
}
|
||||
if (sw != sw->tb->root_switch && sw->uid != uid) {
|
||||
tb_sw_info(sw,
|
||||
"changed while suspended (uid %#llx -> %#llx)\n",
|
||||
sw->uid, uid);
|
||||
return -ENODEV;
|
||||
/*
|
||||
* Check for UID of the connected switches except for root
|
||||
* switch which we assume cannot be removed.
|
||||
*/
|
||||
if (tb_route(sw)) {
|
||||
u64 uid;
|
||||
|
||||
err = tb_drom_read_uid_only(sw, &uid);
|
||||
if (err) {
|
||||
tb_sw_warn(sw, "uid read failed\n");
|
||||
return err;
|
||||
}
|
||||
if (sw->uid != uid) {
|
||||
tb_sw_info(sw,
|
||||
"changed while suspended (uid %#llx -> %#llx)\n",
|
||||
sw->uid, uid);
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
|
||||
/* upload configuration */
|
||||
|
Loading…
Reference in New Issue
Block a user