aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2012-03-04 19:03:50 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-03-06 15:16:23 -0500
commit47807d3dbb62e93850cbcb797db1a9ee1806f986 (patch)
treef8e1970083547290e35830e5bedb4a4ce7237f97 /net
parent9dda50f4c98f84e32a5f6dc4d9dd7af6085add43 (diff)
NFC: Remove the rf mode parameter from the DEP link up routine
When calling nfc_dep_link_up, we implicitely are in initiator mode. Which means we also can provide the general bytes as a function argument, as all drivers will eventually request them. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/nfc/core.c22
-rw-r--r--net/nfc/llcp/llcp.c2
-rw-r--r--net/nfc/netlink.c11
-rw-r--r--net/nfc/nfc.h5
4 files changed, 17 insertions, 23 deletions
diff --git a/net/nfc/core.c b/net/nfc/core.c
index 6089aca67b14..f4f526f73217 100644
--- a/net/nfc/core.c
+++ b/net/nfc/core.c
@@ -181,13 +181,13 @@ error:
181 return rc; 181 return rc;
182} 182}
183 183
184int nfc_dep_link_up(struct nfc_dev *dev, int target_index, 184int nfc_dep_link_up(struct nfc_dev *dev, int target_index, u8 comm_mode)
185 u8 comm_mode, u8 rf_mode)
186{ 185{
187 int rc = 0; 186 int rc = 0;
187 u8 *gb;
188 size_t gb_len;
188 189
189 pr_debug("dev_name=%s comm:%d rf:%d\n", 190 pr_debug("dev_name=%s comm %d\n", dev_name(&dev->dev), comm_mode);
190 dev_name(&dev->dev), comm_mode, rf_mode);
191 191
192 if (!dev->ops->dep_link_up) 192 if (!dev->ops->dep_link_up)
193 return -EOPNOTSUPP; 193 return -EOPNOTSUPP;
@@ -204,7 +204,13 @@ int nfc_dep_link_up(struct nfc_dev *dev, int target_index,
204 goto error; 204 goto error;
205 } 205 }
206 206
207 rc = dev->ops->dep_link_up(dev, target_index, comm_mode, rf_mode); 207 gb = nfc_llcp_general_bytes(dev, &gb_len);
208 if (gb_len > NFC_MAX_GT_LEN) {
209 rc = -EINVAL;
210 goto error;
211 }
212
213 rc = dev->ops->dep_link_up(dev, target_index, comm_mode, gb, gb_len);
208 214
209error: 215error:
210 device_unlock(&dev->dev); 216 device_unlock(&dev->dev);
@@ -367,12 +373,6 @@ int nfc_set_remote_general_bytes(struct nfc_dev *dev, u8 *gb, u8 gb_len)
367} 373}
368EXPORT_SYMBOL(nfc_set_remote_general_bytes); 374EXPORT_SYMBOL(nfc_set_remote_general_bytes);
369 375
370u8 *nfc_get_local_general_bytes(struct nfc_dev *dev, u8 *gt_len)
371{
372 return nfc_llcp_general_bytes(dev, gt_len);
373}
374EXPORT_SYMBOL(nfc_get_local_general_bytes);
375
376/** 376/**
377 * nfc_alloc_send_skb - allocate a skb for data exchange responses 377 * nfc_alloc_send_skb - allocate a skb for data exchange responses
378 * 378 *
diff --git a/net/nfc/llcp/llcp.c b/net/nfc/llcp/llcp.c
index a0cb133c610a..3ce646e35f6b 100644
--- a/net/nfc/llcp/llcp.c
+++ b/net/nfc/llcp/llcp.c
@@ -281,7 +281,7 @@ void nfc_llcp_put_ssap(struct nfc_llcp_local *local, u8 ssap)
281 mutex_unlock(&local->sdp_lock); 281 mutex_unlock(&local->sdp_lock);
282} 282}
283 283
284u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, u8 *general_bytes_len) 284u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len)
285{ 285{
286 struct nfc_llcp_local *local; 286 struct nfc_llcp_local *local;
287 287
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c
index a1388e4efd6f..fa620d03799e 100644
--- a/net/nfc/netlink.c
+++ b/net/nfc/netlink.c
@@ -542,13 +542,12 @@ static int nfc_genl_dep_link_up(struct sk_buff *skb, struct genl_info *info)
542 struct nfc_dev *dev; 542 struct nfc_dev *dev;
543 int rc, tgt_idx; 543 int rc, tgt_idx;
544 u32 idx; 544 u32 idx;
545 u8 comm, rf; 545 u8 comm;
546 546
547 pr_debug("DEP link up\n"); 547 pr_debug("DEP link up\n");
548 548
549 if (!info->attrs[NFC_ATTR_DEVICE_INDEX] || 549 if (!info->attrs[NFC_ATTR_DEVICE_INDEX] ||
550 !info->attrs[NFC_ATTR_COMM_MODE] || 550 !info->attrs[NFC_ATTR_COMM_MODE])
551 !info->attrs[NFC_ATTR_RF_MODE])
552 return -EINVAL; 551 return -EINVAL;
553 552
554 idx = nla_get_u32(info->attrs[NFC_ATTR_DEVICE_INDEX]); 553 idx = nla_get_u32(info->attrs[NFC_ATTR_DEVICE_INDEX]);
@@ -558,19 +557,15 @@ static int nfc_genl_dep_link_up(struct sk_buff *skb, struct genl_info *info)
558 tgt_idx = nla_get_u32(info->attrs[NFC_ATTR_TARGET_INDEX]); 557 tgt_idx = nla_get_u32(info->attrs[NFC_ATTR_TARGET_INDEX]);
559 558
560 comm = nla_get_u8(info->attrs[NFC_ATTR_COMM_MODE]); 559 comm = nla_get_u8(info->attrs[NFC_ATTR_COMM_MODE]);
561 rf = nla_get_u8(info->attrs[NFC_ATTR_RF_MODE]);
562 560
563 if (comm != NFC_COMM_ACTIVE && comm != NFC_COMM_PASSIVE) 561 if (comm != NFC_COMM_ACTIVE && comm != NFC_COMM_PASSIVE)
564 return -EINVAL; 562 return -EINVAL;
565 563
566 if (rf != NFC_RF_INITIATOR && comm != NFC_RF_TARGET)
567 return -EINVAL;
568
569 dev = nfc_get_device(idx); 564 dev = nfc_get_device(idx);
570 if (!dev) 565 if (!dev)
571 return -ENODEV; 566 return -ENODEV;
572 567
573 rc = nfc_dep_link_up(dev, tgt_idx, comm, rf); 568 rc = nfc_dep_link_up(dev, tgt_idx, comm);
574 569
575 nfc_put_device(dev); 570 nfc_put_device(dev);
576 571
diff --git a/net/nfc/nfc.h b/net/nfc/nfc.h
index 6d28d75995b0..2fd83b16df68 100644
--- a/net/nfc/nfc.h
+++ b/net/nfc/nfc.h
@@ -54,7 +54,7 @@ void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx,
54int nfc_llcp_register_device(struct nfc_dev *dev); 54int nfc_llcp_register_device(struct nfc_dev *dev);
55void nfc_llcp_unregister_device(struct nfc_dev *dev); 55void nfc_llcp_unregister_device(struct nfc_dev *dev);
56int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len); 56int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len);
57u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, u8 *general_bytes_len); 57u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len);
58int __init nfc_llcp_init(void); 58int __init nfc_llcp_init(void);
59void nfc_llcp_exit(void); 59void nfc_llcp_exit(void);
60 60
@@ -160,8 +160,7 @@ int nfc_start_poll(struct nfc_dev *dev, u32 protocols);
160 160
161int nfc_stop_poll(struct nfc_dev *dev); 161int nfc_stop_poll(struct nfc_dev *dev);
162 162
163int nfc_dep_link_up(struct nfc_dev *dev, int target_idx, 163int nfc_dep_link_up(struct nfc_dev *dev, int target_idx, u8 comm_mode);
164 u8 comm_mode, u8 rf_mode);
165 164
166int nfc_dep_link_down(struct nfc_dev *dev); 165int nfc_dep_link_down(struct nfc_dev *dev);
167 166