projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NFC: digital: Fix sens_res endiannes handling
[deliverable/linux.git]
/
net
/
nfc
/
digital_technology.c
diff --git
a/net/nfc/digital_technology.c
b/net/nfc/digital_technology.c
index f5dd8cfad404cd879d36726949753165c3e92f10..251c8c753ebe0f48be67beadff61ec10b8a843b1 100644
(file)
--- a/
net/nfc/digital_technology.c
+++ b/
net/nfc/digital_technology.c
@@
-32,10
+32,10
@@
#define DIGITAL_SEL_RES_IS_T2T(sel_res) (!((sel_res) & 0x60))
#define DIGITAL_SEL_RES_IS_NFC_DEP(sel_res) ((sel_res) & 0x40)
#define DIGITAL_SEL_RES_IS_T2T(sel_res) (!((sel_res) & 0x60))
#define DIGITAL_SEL_RES_IS_NFC_DEP(sel_res) ((sel_res) & 0x40)
-#define DIGITAL_SENS_RES_IS_T1T(sens_res) (((sens_res) & 0x0
00C) == 0x000C
)
+#define DIGITAL_SENS_RES_IS_T1T(sens_res) (((sens_res) & 0x0
C00) == 0x0C00
)
#define DIGITAL_SENS_RES_IS_VALID(sens_res) \
#define DIGITAL_SENS_RES_IS_VALID(sens_res) \
- ((!((sens_res) & 0x
1F00) && (((sens_res) & 0x000C) == 0x000C
)) || \
- (((sens_res) & 0x
1F00) && ((sens_res) & 0x000C) != 0x000C
))
+ ((!((sens_res) & 0x
001F) && (((sens_res) & 0x0C00) == 0x0C00
)) || \
+ (((sens_res) & 0x
001F) && ((sens_res) & 0x0C00) != 0x0C00
))
#define DIGITAL_MIFARE_READ_RES_LEN 16
#define DIGITAL_MIFARE_ACK_RES 0x0A
#define DIGITAL_MIFARE_READ_RES_LEN 16
#define DIGITAL_MIFARE_ACK_RES 0x0A
@@
-280,7
+280,6
@@
static void digital_in_recv_sens_res(struct nfc_digital_dev *ddev, void *arg,
struct sk_buff *resp)
{
struct nfc_target *target = NULL;
struct sk_buff *resp)
{
struct nfc_target *target = NULL;
- u16 sens_res;
int rc;
if (IS_ERR(resp)) {
int rc;
if (IS_ERR(resp)) {
@@
-300,17
+299,15
@@
static void digital_in_recv_sens_res(struct nfc_digital_dev *ddev, void *arg,
goto exit;
}
goto exit;
}
-
memcpy(&target->sens_res, resp->data, sizeof(u16)
);
+
target->sens_res = __le16_to_cpu(*(__le16 *)resp->data
);
- sens_res = be16_to_cpu(target->sens_res);
-
- if (!DIGITAL_SENS_RES_IS_VALID(sens_res)) {
+ if (!DIGITAL_SENS_RES_IS_VALID(target->sens_res)) {
PROTOCOL_ERR("4.6.3.3");
rc = -EINVAL;
goto exit;
}
PROTOCOL_ERR("4.6.3.3");
rc = -EINVAL;
goto exit;
}
- if (DIGITAL_SENS_RES_IS_T1T(sens_res))
+ if (DIGITAL_SENS_RES_IS_T1T(
target->
sens_res))
rc = digital_target_found(ddev, target, NFC_PROTO_JEWEL);
else
rc = digital_in_send_sdd_req(ddev, target);
rc = digital_target_found(ddev, target, NFC_PROTO_JEWEL);
else
rc = digital_in_send_sdd_req(ddev, target);
This page took
0.028985 seconds
and
5
git commands to generate.