fix i8042 aliases
This commit is contained in:
		
							parent
							
								
									c2a62a696b
								
							
						
					
					
						commit
						46996f30ed
					
				
							
								
								
									
										11
									
								
								PKGBUILD
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								PKGBUILD
									
									
									
									
									
								
							@ -5,7 +5,7 @@ pkgbase=linux               # Build stock -ARCH kernel
 | 
			
		||||
#pkgbase=linux-custom       # Build kernel with a different name
 | 
			
		||||
_srcname=linux-3.13
 | 
			
		||||
pkgver=3.13
 | 
			
		||||
pkgrel=1
 | 
			
		||||
pkgrel=2
 | 
			
		||||
arch=('i686' 'x86_64')
 | 
			
		||||
url="http://www.kernel.org/"
 | 
			
		||||
license=('GPL2')
 | 
			
		||||
@ -25,7 +25,8 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
 | 
			
		||||
        '0004-rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-.patch'
 | 
			
		||||
        '0005-sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch'
 | 
			
		||||
        '0006-rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-no.patch'
 | 
			
		||||
        '0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch')
 | 
			
		||||
        '0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch'
 | 
			
		||||
        'i8042-fix-aliases.patch')
 | 
			
		||||
md5sums=('0ecbaf65c00374eb4a826c2f9f37606f'
 | 
			
		||||
         'ba4468d313adfaf22368add7f58204aa'
 | 
			
		||||
         '035bb27dac306f5c028d96cad14bb249'
 | 
			
		||||
@ -38,7 +39,8 @@ md5sums=('0ecbaf65c00374eb4a826c2f9f37606f'
 | 
			
		||||
         '10dbaf863e22b2437e68f9190d65c861'
 | 
			
		||||
         'd5907a721b97299f0685c583499f7820'
 | 
			
		||||
         'a724515b350b29c53f20e631c6cf9a14'
 | 
			
		||||
         'e6fa278c092ad83780e2dd0568e24ca6')
 | 
			
		||||
         'e6fa278c092ad83780e2dd0568e24ca6'
 | 
			
		||||
         '93dbf73af819b77f03453a9c6de2bb47')
 | 
			
		||||
 | 
			
		||||
_kernelname=${pkgbase#linux}
 | 
			
		||||
 | 
			
		||||
@ -82,6 +84,9 @@ prepare() {
 | 
			
		||||
  # Fix symbols: Revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=83460ec8dcac14142e7860a01fa59c267ac4657c
 | 
			
		||||
  patch -Rp1 -i "${srcdir}/0001-syscalls.h-use-gcc-alias-instead-of-assembler-aliase.patch"
 | 
			
		||||
 | 
			
		||||
  # Fix i8042 aliases
 | 
			
		||||
  patch -p1 -i "${srcdir}/i8042-fix-aliases.patch"
 | 
			
		||||
 | 
			
		||||
  if [ "${CARCH}" = "x86_64" ]; then
 | 
			
		||||
    cat "${srcdir}/config.x86_64" > ./.config
 | 
			
		||||
  else
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										113
									
								
								i8042-fix-aliases.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								i8042-fix-aliases.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,113 @@
 | 
			
		||||
commit 5a420e61e39862c7c3356080eddb23dfe4ccadb7
 | 
			
		||||
Author: Tom Gundersen <teg@jklm.no>
 | 
			
		||||
Date:   Sun Jan 26 17:00:32 2014 +0100
 | 
			
		||||
 | 
			
		||||
    Input: i8042 - fix PNP modaliases when both aux and kdb are enabled
 | 
			
		||||
    
 | 
			
		||||
    Commit 78551277e4 exposed the PNP modaliases for the i8042 module. However,
 | 
			
		||||
    when both the aux and the kbd drivers are enabled the aux entries would
 | 
			
		||||
    override the kdb ones.
 | 
			
		||||
    
 | 
			
		||||
    Refactor the device_id lists, and unconditionally attempt to load the driver
 | 
			
		||||
    if either a kdb or aux devices is present.
 | 
			
		||||
    
 | 
			
		||||
    Signed-off-by: Tom Gundersen <teg@jklm.no>
 | 
			
		||||
 | 
			
		||||
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
 | 
			
		||||
index 0ec9abb..dbc6958 100644
 | 
			
		||||
--- a/drivers/input/serio/i8042-x86ia64io.h
 | 
			
		||||
+++ b/drivers/input/serio/i8042-x86ia64io.h
 | 
			
		||||
@@ -747,25 +747,27 @@ static int i8042_pnp_aux_probe(struct pnp_dev *dev, const struct pnp_device_id *
 | 
			
		||||
 	return 0;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-static struct pnp_device_id pnp_kbd_devids[] = {
 | 
			
		||||
-	{ .id = "PNP0300", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0301", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0302", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0303", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0304", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0305", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0306", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0309", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP030a", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP030b", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0320", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0343", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0344", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0345", .driver_data = 0 },
 | 
			
		||||
+#define KBD_DEVIDS \
 | 
			
		||||
+	{ .id = "PNP0300", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0301", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0302", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0303", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0304", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0305", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0306", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0309", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP030a", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP030b", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0320", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0343", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0344", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0345", .driver_data = 0 }, \
 | 
			
		||||
 	{ .id = "CPQA0D7", .driver_data = 0 },
 | 
			
		||||
+
 | 
			
		||||
+static struct pnp_device_id pnp_kbd_devids[] = {
 | 
			
		||||
+	KBD_DEVIDS
 | 
			
		||||
 	{ .id = "", },
 | 
			
		||||
 };
 | 
			
		||||
-MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);
 | 
			
		||||
 
 | 
			
		||||
 static struct pnp_driver i8042_pnp_kbd_driver = {
 | 
			
		||||
 	.name           = "i8042 kbd",
 | 
			
		||||
@@ -773,21 +775,23 @@ static struct pnp_driver i8042_pnp_kbd_driver = {
 | 
			
		||||
 	.probe          = i8042_pnp_kbd_probe,
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
-static struct pnp_device_id pnp_aux_devids[] = {
 | 
			
		||||
-	{ .id = "AUI0200", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "FJC6000", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "FJC6001", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f03", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f0b", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f0e", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f12", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f13", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f19", .driver_data = 0 },
 | 
			
		||||
-	{ .id = "PNP0f1c", .driver_data = 0 },
 | 
			
		||||
+#define AUX_DEVIDS \
 | 
			
		||||
+	{ .id = "AUI0200", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "FJC6000", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "FJC6001", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f03", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f0b", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f0e", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f12", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f13", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f19", .driver_data = 0 }, \
 | 
			
		||||
+	{ .id = "PNP0f1c", .driver_data = 0 }, \
 | 
			
		||||
 	{ .id = "SYN0801", .driver_data = 0 },
 | 
			
		||||
+
 | 
			
		||||
+static struct pnp_device_id pnp_aux_devids[] = {
 | 
			
		||||
+	AUX_DEVIDS
 | 
			
		||||
 	{ .id = "", },
 | 
			
		||||
 };
 | 
			
		||||
-MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);
 | 
			
		||||
 
 | 
			
		||||
 static struct pnp_driver i8042_pnp_aux_driver = {
 | 
			
		||||
 	.name           = "i8042 aux",
 | 
			
		||||
@@ -795,6 +799,13 @@ static struct pnp_driver i8042_pnp_aux_driver = {
 | 
			
		||||
 	.probe          = i8042_pnp_aux_probe,
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
+static struct pnp_device_id pnp_kdb_aux_devids[] = {
 | 
			
		||||
+	KBD_DEVIDS
 | 
			
		||||
+	AUX_DEVIDS
 | 
			
		||||
+	{ .id = "", },
 | 
			
		||||
+};
 | 
			
		||||
+MODULE_DEVICE_TABLE(pnp, pnp_kdb_aux_devids);
 | 
			
		||||
+
 | 
			
		||||
 static void i8042_pnp_exit(void)
 | 
			
		||||
 {
 | 
			
		||||
 	if (i8042_pnp_kbd_registered) {
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user