diff -urN 2.6.old/drivers/Module.symvers 2.6/drivers/Module.symvers --- 2.6.old/drivers/Module.symvers 1970-01-01 01:00:00.000000000 +0100 +++ 2.6/drivers/Module.symvers 2007-05-06 00:39:50.000000000 +0200 @@ -0,0 +1 @@ +0x00000000 thinkpad_ppde /usr/src/modules/thinkpad/2.6/drivers/thinkpad EXPORT_SYMBOL diff -urN 2.6.old/drivers/rtcmosram.c 2.6/drivers/rtcmosram.c --- 2.6.old/drivers/rtcmosram.c 2007-05-07 15:47:02.000000000 +0200 +++ 2.6/drivers/rtcmosram.c 2007-05-06 00:53:58.000000000 +0200 @@ -226,8 +226,6 @@ } /* proc entry created */ - inter_module_register( _szImName, THIS_MODULE, &rtcmosram_do ); - return 0; } @@ -235,8 +233,6 @@ static void __exit rtcmosram_exit( void ) { - inter_module_unregister( _szImName ); - remove_proc_entry( _szProcfile, NULL ); if ( _presourceRtcmosram != NULL ) release_resource( _presourceRtcmosram ); diff -urN 2.6.old/drivers/smapi_call.s 2.6/drivers/smapi_call.s --- 2.6.old/drivers/smapi_call.s 2007-05-07 15:47:02.000000000 +0200 +++ 2.6/drivers/smapi_call.s 1970-01-01 01:00:00.000000000 +0100 @@ -1,55 +0,0 @@ - -#********************************************************************* -#* -#* Filename: smapi_call.s -#* Version: 1.0 -#* Author: Thomas Hood -#* Created: 19 July 1999 -#* -#* Please report bugs to the author ASAP. -#* -#* Copyright (c) 1999 J.D. Thomas Hood, All rights reserved -#* -#* This program is free software; you can redistribute it and/or -#* modify it under the terms of the GNU General Public License as -#* published by the Free Software Foundation; either version 2 of -#* the License, or (at your option) any later version. -#* -#* This program is distributed in the hope that it will be useful, -#* but WITHOUT ANY WARRANTY; without even the implied warranty of -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#* GNU General Public License for more details. -#* -#* To receive a copy of the GNU General Public License, please write -#* to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -#* Boston, MA 02111-1307 USA -#* -#********************************************************************/ - - .align -farpxSmapiBios: # far pointer to the SMAPI function - .globl _dwAddressSmapiBios -_dwAddressSmapiBios: .long 0xc00fe9c4 # offset; should be set up by caller -wSegSmapiBios: .word 0x18 # cs is stored here by us before call - - .globl SMAPI_BIOS_do - .align -SMAPI_BIOS_do: - pushl %ebp - movl %esp,%ebp - - movl 0xC(%ebp),%eax - pushl %ds - pushl %eax - movl 0x8(%ebp),%eax - pushl %ds - pushl %eax - - movl $0,%eax - movw %cs,wSegSmapiBios - lcall farpxSmapiBios - - add $0x10,%esp - popl %ebp - ret - diff -urN 2.6.old/drivers/smapi_call.S 2.6/drivers/smapi_call.S --- 2.6.old/drivers/smapi_call.S 1970-01-01 01:00:00.000000000 +0100 +++ 2.6/drivers/smapi_call.S 2005-12-22 13:18:30.000000000 +0100 @@ -0,0 +1,55 @@ + +#********************************************************************* +#* +#* Filename: smapi_call.s +#* Version: 1.0 +#* Author: Thomas Hood +#* Created: 19 July 1999 +#* +#* Please report bugs to the author ASAP. +#* +#* Copyright (c) 1999 J.D. Thomas Hood, All rights reserved +#* +#* This program is free software; you can redistribute it and/or +#* modify it under the terms of the GNU General Public License as +#* published by the Free Software Foundation; either version 2 of +#* the License, or (at your option) any later version. +#* +#* This program is distributed in the hope that it will be useful, +#* but WITHOUT ANY WARRANTY; without even the implied warranty of +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#* GNU General Public License for more details. +#* +#* To receive a copy of the GNU General Public License, please write +#* to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +#* Boston, MA 02111-1307 USA +#* +#********************************************************************/ + + .align +farpxSmapiBios: # far pointer to the SMAPI function + .globl _dwAddressSmapiBios +_dwAddressSmapiBios: .long 0xc00fe9c4 # offset; should be set up by caller +wSegSmapiBios: .word 0x18 # cs is stored here by us before call + + .globl SMAPI_BIOS_do + .align +SMAPI_BIOS_do: + pushl %ebp + movl %esp,%ebp + + movl 0xC(%ebp),%eax + pushl %ds + pushl %eax + movl 0x8(%ebp),%eax + pushl %ds + pushl %eax + + movl $0,%eax + movw %cs,wSegSmapiBios + lcall farpxSmapiBios + + add $0x10,%esp + popl %ebp + ret + diff -urN 2.6.old/drivers/smapi_core.c 2.6/drivers/smapi_core.c --- 2.6.old/drivers/smapi_core.c 2007-05-07 15:47:02.000000000 +0200 +++ 2.6/drivers/smapi_core.c 2007-05-06 00:53:25.000000000 +0200 @@ -298,8 +298,6 @@ } /* proc entry created */ - inter_module_register( _szImName, THIS_MODULE, &smapi_do ); - return 0; } @@ -307,8 +305,6 @@ static void __exit smapi_exit( void ) { - inter_module_unregister( _szImName ); - remove_proc_entry( _szProcfile, NULL ); return; diff -urN 2.6.old/drivers/superio.c 2.6/drivers/superio.c --- 2.6.old/drivers/superio.c 2007-05-07 15:47:02.000000000 +0200 +++ 2.6/drivers/superio.c 2007-05-06 00:52:40.000000000 +0200 @@ -887,8 +887,6 @@ } /* proc entry created */ - inter_module_register( _szImName, THIS_MODULE, &superio_do ); - return 0; } @@ -896,8 +894,6 @@ static void __exit superio_exit( void ) { - inter_module_unregister( _szImName ); - remove_proc_entry( _szProcfile, NULL ); if ( _presourceSuperio != NULL ) release_resource( _presourceSuperio ); diff -urN 2.6.old/drivers/thinkpad.c 2.6/drivers/thinkpad.c --- 2.6.old/drivers/thinkpad.c 2007-05-07 15:47:02.000000000 +0200 +++ 2.6/drivers/thinkpad.c 2007-05-06 00:52:06.000000000 +0200 @@ -92,13 +92,13 @@ static int enable_rtcmosram = 1; static int enable_thinkpadpm = 1; /* obsolete */ #ifdef MODULE -MODULE_PARM( enable_smapi, "i" ); +module_param( enable_smapi, int, S_IRUSR ); MODULE_PARM_DESC( enable_smapi, "Enable/disable (1/0) use of the smapi module" ); -MODULE_PARM( enable_superio, "i" ); +module_param( enable_superio, int, S_IRUSR ); MODULE_PARM_DESC( enable_superio, "Enable/disable (1/0) use of the superio module" ); -MODULE_PARM( enable_rtcmosram, "i" ); +module_param( enable_rtcmosram, int, S_IRUSR ); MODULE_PARM_DESC( enable_rtcmosram, "Enable/disable (1/0) use of the rtcmosram module" ); -MODULE_PARM( enable_thinkpadpm, "i" ); +module_param( enable_thinkpadpm, int, S_IRUSR ); MODULE_PARM_DESC( enable_thinkpadpm, "Enable/disable (1/0) use of the thinkpadpm module (obsolete)" ); MODULE_AUTHOR( "Thomas Hood" ); MODULE_DESCRIPTION( "Metadriver for IBM ThinkPad hardware drivers" ); @@ -230,13 +230,13 @@ pxint_do_t pxint_doSmapi; int intRet; if ( ! enable_smapi ) return -ETHINKPAD_MODULE_DISABLED; - pxint_doSmapi = (pxint_do_t)inter_module_get_request( "smapi_do" , _szSmapiName ); + pxint_doSmapi = (pxint_do_t)symbol_get( "smapi_do" ); if ( pxint_doSmapi == NULL ) return -ETHINKPAD_MODULE_NOT_FOUND; intRet = (*pxint_doSmapi)( ulongIoctlArg, caller_has_w( pfileThe ) ); - inter_module_put("smapi_do"); + symbol_put_addr("smapi_do"); if ( intRet > 0 ) intRet = -ETHINKPAD_PROGRAMMING; return intRet; } @@ -245,13 +245,13 @@ pxint_do_t pxint_doSuperio; int intRet; if ( ! enable_superio ) return -ETHINKPAD_MODULE_DISABLED; - pxint_doSuperio = (pxint_do_t)inter_module_get_request( "superio_do" , _szSuperioName ); + pxint_doSuperio = (pxint_do_t)symbol_get( "superio_do" ); if ( pxint_doSuperio == NULL ) return -ETHINKPAD_MODULE_NOT_FOUND; intRet = (*pxint_doSuperio)( ulongIoctlArg, caller_has_w( pfileThe ) ); - inter_module_put("superio_do"); + symbol_put_addr("superio_do"); if ( intRet > 0 ) intRet = -ETHINKPAD_PROGRAMMING; return intRet; } @@ -260,13 +260,13 @@ pxint_do_t pxint_doRtcmosram; int intRet; if ( ! enable_rtcmosram ) return -ETHINKPAD_MODULE_DISABLED; - pxint_doRtcmosram = (pxint_do_t)inter_module_get_request( "rtcmosram_do" , _szRtcmosramName ); + pxint_doRtcmosram = (pxint_do_t)symbol_get( "rtcmosram_do" ); if ( pxint_doRtcmosram == NULL ) return -ETHINKPAD_MODULE_NOT_FOUND; intRet = (*pxint_doRtcmosram)( ulongIoctlArg, caller_has_w( pfileThe ) ); - inter_module_put("rtcmosram_do"); + symbol_put_addr("rtcmosram_do"); if ( intRet > 0 ) intRet = -ETHINKPAD_PROGRAMMING; return intRet; } diff -urN 2.6.old/drivers/thinkpadpm.c 2.6/drivers/thinkpadpm.c --- 2.6.old/drivers/thinkpadpm.c 2007-05-07 15:47:02.000000000 +0200 +++ 2.6/drivers/thinkpadpm.c 2007-05-06 00:54:13.000000000 +0200 @@ -516,8 +516,6 @@ } /* proc entry created */ - inter_module_register( _szImName, THIS_MODULE, &thinkpadpm_do ); - return 0; } @@ -525,8 +523,6 @@ static void __exit thinkpadpm_exit( void ) { - inter_module_unregister( _szImName ); - remove_proc_entry( _szProcfile, NULL ); return;