diff options
author | Christophe Ricard <christophe.ricard@gmail.com> | 2015-10-25 21:54:30 (GMT) |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2015-10-26 05:53:15 (GMT) |
commit | 22c84c5b23932161546b7b16c61a6eb85bf587b8 (patch) | |
tree | 6bcbb17bd8d48384ae3467d71d5a83c68ebee9ba /drivers | |
parent | 6443ce97d2266b24f8315cb7e3ff99adf822a597 (diff) | |
download | linux-22c84c5b23932161546b7b16c61a6eb85bf587b8.tar.xz |
NFC: st-nci: Keep st_nci_gates unchanged in load_session
We need to keep initial st_nci_gates values in order for
nci_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 st_nci_gates was causing nci_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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/nfc/st-nci/se.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/nfc/st-nci/se.c b/drivers/nfc/st-nci/se.c index 3522165..df2dc54 100644 --- a/drivers/nfc/st-nci/se.c +++ b/drivers/nfc/st-nci/se.c @@ -232,13 +232,13 @@ int st_nci_hci_load_session(struct nci_dev *ndev) if (j < ARRAY_SIZE(st_nci_gates) && st_nci_gates[j].gate == dm_pipe_info->dst_gate_id && ST_NCI_DM_IS_PIPE_OPEN(dm_pipe_info->pipe_state)) { - st_nci_gates[j].pipe = pipe_info[2]; + ndev->hci_dev->init_data.gates[j].pipe = pipe_info[2]; ndev->hci_dev->gate2pipe[st_nci_gates[j].gate] = - st_nci_gates[j].pipe; - ndev->hci_dev->pipes[st_nci_gates[j].pipe].gate = + pipe_info[2]; + ndev->hci_dev->pipes[pipe_info[2]].gate = st_nci_gates[j].gate; - ndev->hci_dev->pipes[st_nci_gates[j].pipe].host = + ndev->hci_dev->pipes[pipe_info[2]].host = dm_pipe_info->src_host_id; } kfree_skb(skb_pipe_info); |