NFC: Add firmware upload netlink command
As several NFC chipsets can have their firmwares upgraded and reflashed, this patchset adds a new netlink command to trigger that the driver loads or flashes a new firmware. This will allows userspace triggered firmware upgrade through netlink. The firmware name or hint is passed as a parameter, and the driver will eventually fetch the firmware binary through the request_firmware API. The cmd can only be executed when the nfc dev is not in use. Actual firmware loading/flashing is an asynchronous operation. Result of the operation shall send a new event up to user space through the nfc dev multicast socket. During operation, the nfc dev is not openable and thus not usable. Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
		
					parent
					
						
							
								1095e69f47
							
						
					
				
			
			
				commit
				
					
						9674da8759
					
				
			
		
					 5 changed files with 122 additions and 0 deletions
				
			
		|  | @ -69,6 +69,8 @@ | |||
|  *	starting a poll from a device which has a secure element enabled means | ||||
|  *	we want to do SE based card emulation. | ||||
|  * @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element. | ||||
|  * @NFC_CMD_FW_UPLOAD: Request to Load/flash firmware, or event to inform that | ||||
|  *	some firmware was loaded | ||||
|  */ | ||||
| enum nfc_commands { | ||||
| 	NFC_CMD_UNSPEC, | ||||
|  | @ -92,6 +94,7 @@ enum nfc_commands { | |||
| 	NFC_CMD_DISABLE_SE, | ||||
| 	NFC_CMD_LLC_SDREQ, | ||||
| 	NFC_EVENT_LLC_SDRES, | ||||
| 	NFC_CMD_FW_UPLOAD, | ||||
| /* private: internal use only */ | ||||
| 	__NFC_CMD_AFTER_LAST | ||||
| }; | ||||
|  | @ -121,6 +124,7 @@ enum nfc_commands { | |||
|  * @NFC_ATTR_LLC_PARAM_RW: Receive Window size parameter | ||||
|  * @NFC_ATTR_LLC_PARAM_MIUX: MIU eXtension parameter | ||||
|  * @NFC_ATTR_SE: Available Secure Elements | ||||
|  * @NFC_ATTR_FIRMWARE_NAME: Free format firmware version | ||||
|  */ | ||||
| enum nfc_attrs { | ||||
| 	NFC_ATTR_UNSPEC, | ||||
|  | @ -143,6 +147,7 @@ enum nfc_attrs { | |||
| 	NFC_ATTR_LLC_PARAM_MIUX, | ||||
| 	NFC_ATTR_SE, | ||||
| 	NFC_ATTR_LLC_SDP, | ||||
| 	NFC_ATTR_FIRMWARE_NAME, | ||||
| /* private: internal use only */ | ||||
| 	__NFC_ATTR_AFTER_LAST | ||||
| }; | ||||
|  | @ -162,6 +167,7 @@ enum nfc_sdp_attr { | |||
| #define NFC_SENSB_RES_MAXSIZE 12 | ||||
| #define NFC_SENSF_RES_MAXSIZE 18 | ||||
| #define NFC_GB_MAXSIZE        48 | ||||
| #define NFC_FIRMWARE_NAME_MAXSIZE 32 | ||||
| 
 | ||||
| /* NFC protocols */ | ||||
| #define NFC_PROTO_JEWEL		1 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Eric Lapuyade
				Eric Lapuyade