summaryrefslogtreecommitdiffstats
path: root/drivers/nfc
diff options
context:
space:
mode:
authorChristophe Ricard <christophe.ricard@gmail.com>2015-10-25 22:54:30 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2015-10-26 06:53:15 +0100
commit22c84c5b23932161546b7b16c61a6eb85bf587b8 (patch)
tree6bcbb17bd8d48384ae3467d71d5a83c68ebee9ba /drivers/nfc
parent6443ce97d2266b24f8315cb7e3ff99adf822a597 (diff)
downloadlinux-22c84c5b23932161546b7b16c61a6eb85bf587b8.tar.bz2
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/nfc')
-rw-r--r--drivers/nfc/st-nci/se.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/nfc/st-nci/se.c b/drivers/nfc/st-nci/se.c
index 35221654951b..df2dc544b73a 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);