NFC: Ignore err when chip doesn't implement HW/SW info registers
authorEric Lapuyade <eric.lapuyade@linux.intel.com>
Wed, 17 Oct 2012 14:48:21 +0000 (16:48 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 19 Nov 2012 22:56:58 +0000 (23:56 +0100)
NFC_HCI_ID_MGMT_VERSION_SW and NFC_HCI_ID_MGMT_VERSION_HW are optional
registers for gate NFC_HCI_ID_MGMT_GATE in standard HCI. When chip
doesn't implement, just leave all the information as zeros.

Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
net/nfc/hci/core.c

index bc571b0efb9228b97b6c4e19a6809adb6be2c0f3..a58db89b455594f627a4585d18aa2d4248127d2e 100644 (file)
@@ -38,6 +38,8 @@ static int nfc_hci_result_to_errno(u8 result)
        switch (result) {
        case NFC_HCI_ANY_OK:
                return 0;
+       case NFC_HCI_ANY_E_REG_PAR_UNKNOWN:
+               return -EOPNOTSUPP;
        case NFC_HCI_ANY_E_TIMEOUT:
                return -ETIME;
        default:
@@ -419,6 +421,10 @@ static int hci_dev_version(struct nfc_hci_dev *hdev)
 
        r = nfc_hci_get_param(hdev, NFC_HCI_ID_MGMT_GATE,
                              NFC_HCI_ID_MGMT_VERSION_SW, &skb);
+       if (r == -EOPNOTSUPP) {
+               pr_info("Software/Hardware info not available\n");
+               return 0;
+       }
        if (r < 0)
                return r;