NFC: digital: Check for NFC-DEP before checking for Type 4 tag
In digital_in_recv_sel_res(), the code that determines the tag type will interpret bits 7:6 (lsb being b1 as per the Digital Specification) of a SEL RES set to 11b as a Type 4 tag. This is okay except that the neard will interpret the same value as an NFC-DEP device (in src/tag.c:set_tag_type() in the neard source). Make the digital layer's interpretation match neard's interpretation by changing the order of the checks in digital_in_recv_sel_res() so that a value of 11b in bits 7:6 is interpreted as an NFC-DEP device instead of a Type 4 tag. Acked-by: Thierry Escande <thierry.escande@linux.intel.com> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									1d9e954e8b
								
							
						
					
					
						commit
						4b4dbca5e4
					
				| @ -318,6 +318,8 @@ static void digital_in_recv_sel_res(struct nfc_digital_dev *ddev, void *arg, | ||||
| 
 | ||||
| 	if (DIGITAL_SEL_RES_IS_T2T(sel_res)) { | ||||
| 		nfc_proto = NFC_PROTO_MIFARE; | ||||
| 	} else if (DIGITAL_SEL_RES_IS_NFC_DEP(sel_res)) { | ||||
| 		nfc_proto = NFC_PROTO_NFC_DEP; | ||||
| 	} else if (DIGITAL_SEL_RES_IS_T4T(sel_res)) { | ||||
| 		rc = digital_in_send_rats(ddev, target); | ||||
| 		if (rc) | ||||
| @ -327,8 +329,6 @@ static void digital_in_recv_sel_res(struct nfc_digital_dev *ddev, void *arg, | ||||
| 		 * done when receiving the ATS | ||||
| 		 */ | ||||
| 		goto exit_free_skb; | ||||
| 	} else if (DIGITAL_SEL_RES_IS_NFC_DEP(sel_res)) { | ||||
| 		nfc_proto = NFC_PROTO_NFC_DEP; | ||||
| 	} else { | ||||
| 		rc = -EOPNOTSUPP; | ||||
| 		goto exit; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user