rapidio: add udev notification
Add RapidIO-specific modalias generation to enable udev notifications about RapidIO-specific events. The RapidIO modalias string format is shown below: "rapidio:vNNNNdNNNNavNNNNadNNNN" Where: v - Device Vendor ID (16 bit), d - Device ID (16 bit), av - Assembly Vendor ID (16 bit), ad - Assembly ID (16 bit), as they are reported in corresponding Capability Registers (CARs) of each RapidIO device. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Andre van Herk <andre.van.herk@Prodrive.nl> Cc: Micha Nelissen <micha.nelissen@Prodrive.nl> Cc: Stef van Os <stef.van.os@Prodrive.nl> Cc: Jean Delvare <jdelvare@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
				
					committed by
					
						 Linus Torvalds
						Linus Torvalds
					
				
			
			
				
	
			
			
			
						parent
						
							fdf90abc00
						
					
				
				
					commit
					3bdbb62fe9
				
			| @@ -177,5 +177,11 @@ int main(void) | ||||
| 	DEVID(mei_cl_device_id); | ||||
| 	DEVID_FIELD(mei_cl_device_id, name); | ||||
|  | ||||
| 	DEVID(rio_device_id); | ||||
| 	DEVID_FIELD(rio_device_id, did); | ||||
| 	DEVID_FIELD(rio_device_id, vid); | ||||
| 	DEVID_FIELD(rio_device_id, asm_did); | ||||
| 	DEVID_FIELD(rio_device_id, asm_vid); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|   | ||||
| @@ -1145,6 +1145,26 @@ static int do_mei_entry(const char *filename, void *symval, | ||||
| } | ||||
| ADD_TO_DEVTABLE("mei", mei_cl_device_id, do_mei_entry); | ||||
|  | ||||
| /* Looks like: rapidio:vNdNavNadN */ | ||||
| static int do_rio_entry(const char *filename, | ||||
| 			void *symval, char *alias) | ||||
| { | ||||
| 	DEF_FIELD(symval, rio_device_id, did); | ||||
| 	DEF_FIELD(symval, rio_device_id, vid); | ||||
| 	DEF_FIELD(symval, rio_device_id, asm_did); | ||||
| 	DEF_FIELD(symval, rio_device_id, asm_vid); | ||||
|  | ||||
| 	strcpy(alias, "rapidio:"); | ||||
| 	ADD(alias, "v", vid != RIO_ANY_ID, vid); | ||||
| 	ADD(alias, "d", did != RIO_ANY_ID, did); | ||||
| 	ADD(alias, "av", asm_vid != RIO_ANY_ID, asm_vid); | ||||
| 	ADD(alias, "ad", asm_did != RIO_ANY_ID, asm_did); | ||||
|  | ||||
| 	add_wildcard(alias); | ||||
| 	return 1; | ||||
| } | ||||
| ADD_TO_DEVTABLE("rapidio", rio_device_id, do_rio_entry); | ||||
|  | ||||
| /* Does namelen bytes of name exactly match the symbol? */ | ||||
| static bool sym_is(const char *name, unsigned namelen, const char *symbol) | ||||
| { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user