V4L/DVB (13540): ir-common: Cleanup get key evdev code

The same loop to seek for a key were used on different places. Also,
no spinlock were protecting it to avoid the risk of replacing a keycode
while seeking for a new code.

This cleanup does:
	- create an unique function to seek for a code;
	- adds an spinlock to protect the table lookup;
	- remove some unused code;
	- simplifies to code to make it easier to understand.

Basically no change in behavior should be noticed after this patch.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index 452f6e8..e41a99e 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -26,6 +26,7 @@
 #include <linux/input.h>
 #include <linux/workqueue.h>
 #include <linux/interrupt.h>
+#include <linux/spinlock.h>
 
 extern int media_ir_debug;    /* media_ir_debug level (0,1,2) */
 #define IR_dprintk(level, fmt, arg...)	if (media_ir_debug >= level) \
@@ -43,6 +44,7 @@
 struct ir_scancode_table {
 	struct ir_scancode *scan;
 	int size;
+	spinlock_t lock;
 };
 
 #define RC5_START(x)	(((x)>>12)&3)