mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
NFC 4.5 pull request
This is the first NFC pull request for 4.5 and it brings: - A new driver for the STMicroelectronics ST95HF NFC chipset. The ST95HF is an NFC digital transceiver with an embedded analog front-end and as such relies on the Linux NFC digital implementation. This is the 3rd user of the NFC digital stack. - ACPI support for the ST st-nci and st21nfca drivers. - A small improvement for the nfcsim driver, as we can now tune the Rx delay through sysfs. - A bunch of minor cleanups and small fixes from Christophe Ricard, for a few drivers and the NFC core code. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWgsv0AAoJEIqAPN1PVmxKvukP/3eJwA+chAUF89/fqwqFTaJN fffLoOxx2OBIbTXD2VV36yw4bAo9tbKDAYBZiot3Ig7Kg0SeCJ5oPA9xCVnWPrEY hxFAldvl+lWQs8nrUOgUZItiFBeUPdfW9YX/yKhUZVc+602nUG/e/+6x8B5MhIce SAfgCyd0c16DApltP7sw1muyZMvsO6Ow6dyNzDUVYZuabvEhe3SLSj9KFJi7Thsp h41Iv+bwPLhwF4RXGA6rei/gdEDSMRohprdj3uTDiTarGW+OpcAO0zWACS5m4eR0 zF19+HjGPUk/LpFRaU31xX0ZQQjOTmmfsOt4FBb3P7oJx47egycsadLYPexeG7nj ruyS6ezlRX1I/tZsnyLNJK92mK5TXYLz2uJ8r2ii/BgPNE+AErB3zKCC+EjXzWhh AvClGu5b88WJLxoq3I3l5evPwGhebGZ8N/1uiFsHOxvzKVLgxwOmNLRGN4XXxB2i UbIHgBb6smsu/l+3q9R83kfoMaoWnr+OUIi2QPQVDt/K7t1LfsCuIhzcGSgo1VuW fGlA1iu+CNDknofeCl4JDo2UXAETO4gdKWw87GXeUcbbraLUczZeO7FFLZqxbMYc OCaPYshmVFeZRypYdRWDHw67ivj0/h+9iq4PP1XOROkRFH746dD/p4yamJwVi20B samZ8VPwzgH3/ohQJyX3 =VFUH -----END PGP SIGNATURE----- Merge tag 'nfc-next-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next Samuel Ortiz says: ==================== NFC 4.5 pull request This is the first NFC pull request for 4.5 and it brings: - A new driver for the STMicroelectronics ST95HF NFC chipset. The ST95HF is an NFC digital transceiver with an embedded analog front-end and as such relies on the Linux NFC digital implementation. This is the 3rd user of the NFC digital stack. - ACPI support for the ST st-nci and st21nfca drivers. - A small improvement for the nfcsim driver, as we can now tune the Rx delay through sysfs. - A bunch of minor cleanups and small fixes from Christophe Ricard, for a few drivers and the NFC core code. ==================== Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
commit
15ab90f400
34 changed files with 1862 additions and 181 deletions
|
|
@ -953,6 +953,19 @@ out:
|
|||
}
|
||||
EXPORT_SYMBOL(nfc_se_transaction);
|
||||
|
||||
int nfc_se_connectivity(struct nfc_dev *dev, u8 se_idx)
|
||||
{
|
||||
int rc;
|
||||
|
||||
pr_debug("connectivity: %x\n", se_idx);
|
||||
|
||||
device_lock(&dev->dev);
|
||||
rc = nfc_genl_se_connectivity(dev, se_idx);
|
||||
device_unlock(&dev->dev);
|
||||
return rc;
|
||||
}
|
||||
EXPORT_SYMBOL(nfc_se_connectivity);
|
||||
|
||||
static void nfc_release(struct device *d)
|
||||
{
|
||||
struct nfc_dev *dev = to_nfc_dev(d);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@
|
|||
#include "digital.h"
|
||||
|
||||
#define DIGITAL_PROTO_NFCA_RF_TECH \
|
||||
(NFC_PROTO_JEWEL_MASK | NFC_PROTO_MIFARE_MASK | NFC_PROTO_NFC_DEP_MASK)
|
||||
(NFC_PROTO_JEWEL_MASK | NFC_PROTO_MIFARE_MASK | \
|
||||
NFC_PROTO_NFC_DEP_MASK | NFC_PROTO_ISO14443_MASK)
|
||||
|
||||
#define DIGITAL_PROTO_NFCB_RF_TECH NFC_PROTO_ISO14443_B_MASK
|
||||
|
||||
|
|
|
|||
|
|
@ -610,14 +610,14 @@ int nci_core_conn_create(struct nci_dev *ndev, u8 destination_type,
|
|||
struct nci_core_conn_create_cmd *cmd;
|
||||
struct core_conn_create_data data;
|
||||
|
||||
if (!number_destination_params)
|
||||
return -EINVAL;
|
||||
|
||||
data.length = params_len + sizeof(struct nci_core_conn_create_cmd);
|
||||
cmd = kzalloc(data.length, GFP_KERNEL);
|
||||
if (!cmd)
|
||||
return -ENOMEM;
|
||||
|
||||
if (!number_destination_params)
|
||||
return -EINVAL;
|
||||
|
||||
cmd->destination_type = destination_type;
|
||||
cmd->number_destination_params = number_destination_params;
|
||||
memcpy(cmd->params, params, params_len);
|
||||
|
|
|
|||
|
|
@ -676,7 +676,7 @@ int nci_hci_connect_gate(struct nci_dev *ndev,
|
|||
break;
|
||||
default:
|
||||
pipe = nci_hci_create_pipe(ndev, dest_host, dest_gate, &r);
|
||||
if (pipe < 0)
|
||||
if (pipe == NCI_HCI_INVALID_PIPE)
|
||||
return r;
|
||||
pipe_created = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -552,6 +552,43 @@ free_msg:
|
|||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
int nfc_genl_se_connectivity(struct nfc_dev *dev, u8 se_idx)
|
||||
{
|
||||
struct nfc_se *se;
|
||||
struct sk_buff *msg;
|
||||
void *hdr;
|
||||
|
||||
msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
||||
if (!msg)
|
||||
return -ENOMEM;
|
||||
|
||||
hdr = genlmsg_put(msg, 0, 0, &nfc_genl_family, 0,
|
||||
NFC_EVENT_SE_CONNECTIVITY);
|
||||
if (!hdr)
|
||||
goto free_msg;
|
||||
|
||||
se = nfc_find_se(dev, se_idx);
|
||||
if (!se)
|
||||
goto free_msg;
|
||||
|
||||
if (nla_put_u32(msg, NFC_ATTR_DEVICE_INDEX, dev->idx) ||
|
||||
nla_put_u32(msg, NFC_ATTR_SE_INDEX, se_idx) ||
|
||||
nla_put_u8(msg, NFC_ATTR_SE_TYPE, se->type))
|
||||
goto nla_put_failure;
|
||||
|
||||
genlmsg_end(msg, hdr);
|
||||
|
||||
genlmsg_multicast(&nfc_genl_family, msg, 0, 0, GFP_KERNEL);
|
||||
|
||||
return 0;
|
||||
|
||||
nla_put_failure:
|
||||
genlmsg_cancel(msg, hdr);
|
||||
free_msg:
|
||||
nlmsg_free(msg);
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
static int nfc_genl_send_device(struct sk_buff *msg, struct nfc_dev *dev,
|
||||
u32 portid, u32 seq,
|
||||
struct netlink_callback *cb,
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ int nfc_genl_se_added(struct nfc_dev *dev, u32 se_idx, u16 type);
|
|||
int nfc_genl_se_removed(struct nfc_dev *dev, u32 se_idx);
|
||||
int nfc_genl_se_transaction(struct nfc_dev *dev, u8 se_idx,
|
||||
struct nfc_evt_transaction *evt_transaction);
|
||||
int nfc_genl_se_connectivity(struct nfc_dev *dev, u8 se_idx);
|
||||
|
||||
struct nfc_dev *nfc_get_device(unsigned int idx);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue