NFC: st21nfca: Keep st21nfca_gates unchanged in load_session
We need to keep initial st_nci_gates values in order for nfc_hci_dev_connect_gates to create and open pipe when necessary. For example after a firmware update CLF pipes are cleared. Changing pipe values in st21nfca_gates was causing nfc_hci_dev_connect_gates not using accurate pipes value. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
22c84c5b23
commit
92d108b6f4
|
@ -190,14 +190,14 @@ static int st21nfca_hci_load_session(struct nfc_hci_dev *hdev)
|
||||||
if (j < ARRAY_SIZE(st21nfca_gates) &&
|
if (j < ARRAY_SIZE(st21nfca_gates) &&
|
||||||
st21nfca_gates[j].gate == info->dst_gate_id &&
|
st21nfca_gates[j].gate == info->dst_gate_id &&
|
||||||
ST21NFCA_DM_IS_PIPE_OPEN(info->pipe_state)) {
|
ST21NFCA_DM_IS_PIPE_OPEN(info->pipe_state)) {
|
||||||
st21nfca_gates[j].pipe = pipe_info[2];
|
hdev->init_data.gates[j].pipe = pipe_info[2];
|
||||||
|
|
||||||
hdev->gate2pipe[st21nfca_gates[j].gate] =
|
hdev->gate2pipe[st21nfca_gates[j].gate] =
|
||||||
st21nfca_gates[j].pipe;
|
pipe_info[2];
|
||||||
hdev->pipes[st21nfca_gates[j].pipe].gate =
|
hdev->pipes[pipe_info[2]].gate =
|
||||||
st21nfca_gates[j].gate;
|
st21nfca_gates[j].gate;
|
||||||
hdev->pipes[st21nfca_gates[j].pipe].dest_host =
|
hdev->pipes[pipe_info[2]].dest_host =
|
||||||
info->src_host_id;
|
info->src_host_id;
|
||||||
}
|
}
|
||||||
kfree_skb(skb_pipe_info);
|
kfree_skb(skb_pipe_info);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue