aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mod/file2alias.c
diff options
context:
space:
mode:
authorAlexandre Bounine <alexandre.bounine@idt.com>2013-07-03 18:08:58 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-03 19:08:05 -0400
commit3bdbb62fe97537252b22f700009863eeb51aa750 (patch)
tree7a3150f7496f951ac6de51f2156cf29fc8f9a73f /scripts/mod/file2alias.c
parentfdf90abc00979fb2d61dbdba9e855200e236142b (diff)
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>
Diffstat (limited to 'scripts/mod/file2alias.c')
-rw-r--r--scripts/mod/file2alias.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 45f9a3377dcd..d9e67b719f08 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -1145,6 +1145,26 @@ static int do_mei_entry(const char *filename, void *symval,
1145} 1145}
1146ADD_TO_DEVTABLE("mei", mei_cl_device_id, do_mei_entry); 1146ADD_TO_DEVTABLE("mei", mei_cl_device_id, do_mei_entry);
1147 1147
1148/* Looks like: rapidio:vNdNavNadN */
1149static int do_rio_entry(const char *filename,
1150 void *symval, char *alias)
1151{
1152 DEF_FIELD(symval, rio_device_id, did);
1153 DEF_FIELD(symval, rio_device_id, vid);
1154 DEF_FIELD(symval, rio_device_id, asm_did);
1155 DEF_FIELD(symval, rio_device_id, asm_vid);
1156
1157 strcpy(alias, "rapidio:");
1158 ADD(alias, "v", vid != RIO_ANY_ID, vid);
1159 ADD(alias, "d", did != RIO_ANY_ID, did);
1160 ADD(alias, "av", asm_vid != RIO_ANY_ID, asm_vid);
1161 ADD(alias, "ad", asm_did != RIO_ANY_ID, asm_did);
1162
1163 add_wildcard(alias);
1164 return 1;
1165}
1166ADD_TO_DEVTABLE("rapidio", rio_device_id, do_rio_entry);
1167
1148/* Does namelen bytes of name exactly match the symbol? */ 1168/* Does namelen bytes of name exactly match the symbol? */
1149static bool sym_is(const char *name, unsigned namelen, const char *symbol) 1169static bool sym_is(const char *name, unsigned namelen, const char *symbol)
1150{ 1170{