mirror of https://gitee.com/openkylin/linux.git
NFC: Build LLCP general bytes upon request
Drivers will need them before starting a poll or when being activated as targets. Mostly WKS can have changed between device registration and then so we need to re-build the whole array. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
12e5bdfefa
commit
b8e7a06d9c
|
@ -310,21 +310,6 @@ void nfc_llcp_put_ssap(struct nfc_llcp_local *local, u8 ssap)
|
||||||
mutex_unlock(&local->sdp_lock);
|
mutex_unlock(&local->sdp_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len)
|
|
||||||
{
|
|
||||||
struct nfc_llcp_local *local;
|
|
||||||
|
|
||||||
local = nfc_llcp_find_local(dev);
|
|
||||||
if (local == NULL) {
|
|
||||||
*general_bytes_len = 0;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*general_bytes_len = local->gb_len;
|
|
||||||
|
|
||||||
return local->gb;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
|
static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
|
||||||
{
|
{
|
||||||
u8 *gb_cur, *version_tlv, version, version_length;
|
u8 *gb_cur, *version_tlv, version, version_length;
|
||||||
|
@ -386,6 +371,23 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len)
|
||||||
|
{
|
||||||
|
struct nfc_llcp_local *local;
|
||||||
|
|
||||||
|
local = nfc_llcp_find_local(dev);
|
||||||
|
if (local == NULL) {
|
||||||
|
*general_bytes_len = 0;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
nfc_llcp_build_gb(local);
|
||||||
|
|
||||||
|
*general_bytes_len = local->gb_len;
|
||||||
|
|
||||||
|
return local->gb;
|
||||||
|
}
|
||||||
|
|
||||||
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
||||||
{
|
{
|
||||||
struct nfc_llcp_local *local = nfc_llcp_find_local(dev);
|
struct nfc_llcp_local *local = nfc_llcp_find_local(dev);
|
||||||
|
|
Loading…
Reference in New Issue