Sadly I too am looking for some guidance on getting this modified driver to compile in 15.04, though the list of errors has grown substantially. Trying to install the raring toshiba-acpi-fix from @keks9n's PPA results in some pretty scary messages: Building toshiba_acpi for 3.19.0-23-generic make -C /lib/modules/3.19.0-23-generic/build M=/tmp/tmp.85ijquWhNN modules make[1]: Entering directory '/usr/src/linux-headers-3.19.0-23-generic' CC [M] /tmp/tmp.85ijquWhNN/toshiba_acpi.o In file included from /tmp/tmp.85ijquWhNN/toshiba_acpi.c:74:0: include/acpi/acpi_drivers.h:86:32: error: unknown type name ‘acpi_handle’ int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering, ^ include/acpi/acpi_drivers.h:88:28: error: unknown type name ‘acpi_handle’ int acpi_pci_link_free_irq(acpi_handle handle); ^ include/acpi/acpi_drivers.h:94:8: warning: parameter names (without types) in function declaration struct pci_dev *acpi_get_pci_dev(acpi_handle); ^ include/acpi/acpi_drivers.h:98:43: warning: ‘struct acpi_pci_root’ declared inside parameter list struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root); ^ include/acpi/acpi_drivers.h:98:43: warning: its scope is only this definition or declaration, which is probably not what you want /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘is_valid_acpi_path’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:180:2: error: unknown type name ‘acpi_handle’ acpi_handle handle; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:181:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:183:2: error: implicit declaration of function ‘acpi_get_handle’ [-Werror=implicit-function-declaration] status = acpi_get_handle(NULL, (char *)methodName, &handle); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:184:2: error: implicit declaration of function ‘ACPI_FAILURE’ [-Werror=implicit-function-declaration] return !ACPI_FAILURE(status); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘write_acpi_int’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:189:26: error: storage size of ‘params’ isn’t known struct acpi_object_list params; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:190:20: error: array type has incomplete element type union acpi_object in_objs[1]; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:191:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ In file included from include/linux/thread_info.h:11:0, from ./arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:18, from include/linux/spinlock.h:50, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/linux/stat.h:18, from include/linux/module.h:10, from /tmp/tmp.85ijquWhNN/toshiba_acpi.c:57: include/linux/bug.h:33:45: error: bit-field ‘’ width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) ^ include/linux/compiler-gcc.h:47:28: note: in expansion of macro ‘BUILD_BUG_ON_ZERO’ #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^ include/linux/kernel.h:54:59: note: in expansion of macro ‘__must_be_array’ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:193:17: note: in expansion of macro ‘ARRAY_SIZE’ params.count = ARRAY_SIZE(in_objs); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:195:20: error: ‘ACPI_TYPE_INTEGER’ undeclared (first use in this function) in_objs[0].type = ACPI_TYPE_INTEGER; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:195:20: note: each undeclared identifier is reported only once for each function it appears in /tmp/tmp.85ijquWhNN/toshiba_acpi.c:198:2: error: implicit declaration of function ‘acpi_evaluate_object’ [-Werror=implicit-function-declaration] status = acpi_evaluate_object(NULL, (char *)methodName, ¶ms, NULL); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:199:20: error: ‘AE_OK’ undeclared (first use in this function) return (status == AE_OK); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:190:20: warning: unused variable ‘in_objs’ [-Wunused-variable] union acpi_object in_objs[1]; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:189:26: warning: unused variable ‘params’ [-Wunused-variable] struct acpi_object_list params; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:224:8: error: unknown type name ‘acpi_status’ static acpi_status hci_raw(const u32 in[HCI_WORDS], u32 out[HCI_WORDS]) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘hci_raw’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:226:26: error: storage size of ‘params’ isn’t known struct acpi_object_list params; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:227:20: error: array type has incomplete element type union acpi_object in_objs[HCI_WORDS]; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:228:21: error: storage size of ‘results’ isn’t known struct acpi_buffer results; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:229:20: error: array type has incomplete element type union acpi_object out_objs[HCI_WORDS + 1]; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:230:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:236:21: error: ‘ACPI_TYPE_INTEGER’ undeclared (first use in this function) in_objs[i].type = ACPI_TYPE_INTEGER; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:245:17: error: ‘AE_OK’ undeclared (first use in this function) if ((status == AE_OK) && (out_objs->package.count <= HCI_WORDS)) { ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:229:20: warning: unused variable ‘out_objs’ [-Wunused-variable] union acpi_object out_objs[HCI_WORDS + 1]; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:228:21: warning: unused variable ‘results’ [-Wunused-variable] struct acpi_buffer results; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:227:20: warning: unused variable ‘in_objs’ [-Wunused-variable] union acpi_object in_objs[HCI_WORDS]; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:226:26: warning: unused variable ‘params’ [-Wunused-variable] struct acpi_object_list params; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:260:8: error: unknown type name ‘acpi_status’ static acpi_status hci_write1(u32 reg, u32 in1, u32 * result) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘hci_write1’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:264:2: error: unknown type name ‘acpi_status’ acpi_status status = hci_raw(in, out); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:265:23: error: ‘AE_OK’ undeclared (first use in this function) *result = (status == AE_OK) ? out[0] : HCI_FAILURE; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:269:8: error: unknown type name ‘acpi_status’ static acpi_status hci_read1(u32 reg, u32 * out1, u32 * result) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘hci_read1’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:273:2: error: unknown type name ‘acpi_status’ acpi_status status = hci_raw(in, out); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:275:23: error: ‘AE_OK’ undeclared (first use in this function) *result = (status == AE_OK) ? out[0] : HCI_FAILURE; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:279:8: error: unknown type name ‘acpi_status’ static acpi_status hci_write2(u32 reg, u32 in1, u32 in2, u32 *result) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘hci_write2’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:283:2: error: unknown type name ‘acpi_status’ acpi_status status = hci_raw(in, out); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:284:23: error: ‘AE_OK’ undeclared (first use in this function) *result = (status == AE_OK) ? out[0] : HCI_FAILURE; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:288:8: error: unknown type name ‘acpi_status’ static acpi_status hci_read2(u32 reg, u32 *out1, u32 *out2, u32 *result) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘hci_read2’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:292:2: error: unknown type name ‘acpi_status’ acpi_status status = hci_raw(in, out); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:295:23: error: ‘AE_OK’ undeclared (first use in this function) *result = (status == AE_OK) ? out[0] : HCI_FAILURE; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:304:2: error: unknown type name ‘acpi_handle’ acpi_handle handle; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘toshiba_illumination_available’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:316:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘toshiba_illumination_set’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:334:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘toshiba_illumination_get’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:377:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘version_proc_open’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:827:2: error: implicit declaration of function ‘PDE’ [-Werror=implicit-function-declaration] return single_open(file, version_proc_show, PDE(inode)->data); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:827:56: error: invalid type argument of ‘->’ (have ‘int’) return single_open(file, version_proc_show, PDE(inode)->data); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘tosh_acpi_bridge’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:849:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:853:16: error: ‘AE_OK’ undeclared (first use in this function) if (status == AE_OK && (regs->eax & 0xff00) == HCI_SUCCESS) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: At top level: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1061:33: error: unknown type name ‘acpi_handle’ static void toshiba_acpi_notify(acpi_handle handle, u32 event, void *context) ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘toshiba_acpi_setup_keyboard’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1093:2: error: unknown type name ‘acpi_status’ acpi_status status; ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1117:2: error: implicit declaration of function ‘acpi_install_notify_handler’ [-Werror=implicit-function-declaration] status = acpi_install_notify_handler(toshiba_acpi.handle, ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1118:5: error: ‘ACPI_DEVICE_NOTIFY’ undeclared (first use in this function) ACPI_DEVICE_NOTIFY, toshiba_acpi_notify, NULL); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1118:25: error: ‘toshiba_acpi_notify’ undeclared (first use in this function) ACPI_DEVICE_NOTIFY, toshiba_acpi_notify, NULL); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1141:2: error: implicit declaration of function ‘acpi_remove_notify_handler’ [-Werror=implicit-function-declaration] acpi_remove_notify_handler(toshiba_acpi.handle, ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘toshiba_acpi_exit’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1155:5: error: ‘ACPI_DEVICE_NOTIFY’ undeclared (first use in this function) ACPI_DEVICE_NOTIFY, toshiba_acpi_notify); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1155:25: error: ‘toshiba_acpi_notify’ undeclared (first use in this function) ACPI_DEVICE_NOTIFY, toshiba_acpi_notify); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1171:35: error: ‘acpi_root_dir’ undeclared (first use in this function) remove_proc_entry(PROC_TOSHIBA, acpi_root_dir); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘toshiba_acpi_init’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:1231:46: error: ‘acpi_root_dir’ undeclared (first use in this function) toshiba_proc_dir = proc_mkdir(PROC_TOSHIBA, acpi_root_dir); ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘version_proc_open’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:828:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ /tmp/tmp.85ijquWhNN/toshiba_acpi.c: In function ‘write_acpi_int’: /tmp/tmp.85ijquWhNN/toshiba_acpi.c:200:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cc1: some warnings being treated as errors scripts/Makefile.build:263: recipe for target '/tmp/tmp.85ijquWhNN/toshiba_acpi.o' failed make[2]: *** [/tmp/tmp.85ijquWhNN/toshiba_acpi.o] Error 1 Makefile:1394: recipe for target '_module_/tmp/tmp.85ijquWhNN' failed make[1]: *** [_module_/tmp/tmp.85ijquWhNN] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-3.19.0-23-generic' Makefile:4: recipe for target 'all' failed make: *** [all] Error 2 Sadly, without toshset I have a 3G modem that's completely unusable. I guess the functionality from this patch never made it into mainline? :\