Commit 1c9c5bc5 authored by Mika Westerberg's avatar Mika Westerberg

Merge branch 'thunderbolt/fixes' into thunderbolt/next

parents b406357c 747125db
...@@ -80,7 +80,6 @@ static void icl_nhi_lc_mailbox_cmd(struct tb_nhi *nhi, enum icl_lc_mailbox_cmd c ...@@ -80,7 +80,6 @@ static void icl_nhi_lc_mailbox_cmd(struct tb_nhi *nhi, enum icl_lc_mailbox_cmd c
{ {
u32 data; u32 data;
pci_read_config_dword(nhi->pdev, VS_CAP_19, &data);
data = (cmd << VS_CAP_19_CMD_SHIFT) & VS_CAP_19_CMD_MASK; data = (cmd << VS_CAP_19_CMD_SHIFT) & VS_CAP_19_CMD_MASK;
pci_write_config_dword(nhi->pdev, VS_CAP_19, data | VS_CAP_19_VALID); pci_write_config_dword(nhi->pdev, VS_CAP_19, data | VS_CAP_19_VALID);
} }
......
...@@ -896,12 +896,13 @@ int tb_dp_port_set_hops(struct tb_port *port, unsigned int video, ...@@ -896,12 +896,13 @@ int tb_dp_port_set_hops(struct tb_port *port, unsigned int video,
*/ */
bool tb_dp_port_is_enabled(struct tb_port *port) bool tb_dp_port_is_enabled(struct tb_port *port)
{ {
u32 data; u32 data[2];
if (tb_port_read(port, &data, TB_CFG_PORT, port->cap_adap, 1)) if (tb_port_read(port, data, TB_CFG_PORT, port->cap_adap,
ARRAY_SIZE(data)))
return false; return false;
return !!(data & (TB_DP_VIDEO_EN | TB_DP_AUX_EN)); return !!(data[0] & (TB_DP_VIDEO_EN | TB_DP_AUX_EN));
} }
/** /**
...@@ -914,19 +915,21 @@ bool tb_dp_port_is_enabled(struct tb_port *port) ...@@ -914,19 +915,21 @@ bool tb_dp_port_is_enabled(struct tb_port *port)
*/ */
int tb_dp_port_enable(struct tb_port *port, bool enable) int tb_dp_port_enable(struct tb_port *port, bool enable)
{ {
u32 data; u32 data[2];
int ret; int ret;
ret = tb_port_read(port, &data, TB_CFG_PORT, port->cap_adap, 1); ret = tb_port_read(port, data, TB_CFG_PORT, port->cap_adap,
ARRAY_SIZE(data));
if (ret) if (ret)
return ret; return ret;
if (enable) if (enable)
data |= TB_DP_VIDEO_EN | TB_DP_AUX_EN; data[0] |= TB_DP_VIDEO_EN | TB_DP_AUX_EN;
else else
data &= ~(TB_DP_VIDEO_EN | TB_DP_AUX_EN); data[0] &= ~(TB_DP_VIDEO_EN | TB_DP_AUX_EN);
return tb_port_write(port, &data, TB_CFG_PORT, port->cap_adap, 1); return tb_port_write(port, data, TB_CFG_PORT, port->cap_adap,
ARRAY_SIZE(data));
} }
/* switch utility functions */ /* switch utility functions */
...@@ -1031,13 +1034,6 @@ static int tb_switch_set_authorized(struct tb_switch *sw, unsigned int val) ...@@ -1031,13 +1034,6 @@ static int tb_switch_set_authorized(struct tb_switch *sw, unsigned int val)
if (sw->authorized) if (sw->authorized)
goto unlock; goto unlock;
/*
* Make sure there is no PCIe rescan ongoing when a new PCIe
* tunnel is created. Otherwise the PCIe rescan code might find
* the new tunnel too early.
*/
pci_lock_rescan_remove();
switch (val) { switch (val) {
/* Approve switch */ /* Approve switch */
case 1: case 1:
...@@ -1057,8 +1053,6 @@ static int tb_switch_set_authorized(struct tb_switch *sw, unsigned int val) ...@@ -1057,8 +1053,6 @@ static int tb_switch_set_authorized(struct tb_switch *sw, unsigned int val)
break; break;
} }
pci_unlock_rescan_remove();
if (!ret) { if (!ret) {
sw->authorized = val; sw->authorized = val;
/* Notify status change to the userspace */ /* Notify status change to the userspace */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment