diff options
Diffstat (limited to 'package/mac80211/patches/050-compat_firmware.patch')
-rw-r--r-- | package/mac80211/patches/050-compat_firmware.patch | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/package/mac80211/patches/050-compat_firmware.patch b/package/mac80211/patches/050-compat_firmware.patch new file mode 100644 index 000000000..e4b91a316 --- /dev/null +++ b/package/mac80211/patches/050-compat_firmware.patch @@ -0,0 +1,78 @@ +--- a/compat/Makefile ++++ b/compat/Makefile +@@ -1,7 +1,10 @@ + obj-m += compat.o + #compat-objs := + +-obj-$(CONFIG_COMPAT_FIRMWARE_CLASS) += compat_firmware_class.o ++ifdef CONFIG_COMPAT_FIRMWARE_CLASS ++ compat-y += compat_firmware_class.o ++endif ++ + obj-$(CONFIG_COMPAT_NET_SCH_CODEL) += sch_codel.o + + sch_fq_codel-y = sch_fq_codel_core.o flow_dissector.o +--- a/compat/compat_firmware_class.c ++++ b/compat/compat_firmware_class.c +@@ -741,19 +741,16 @@ compat_request_firmware_nowait( + return 0; + } + +-static int __init firmware_class_init(void) ++int __init firmware_class_init(void) + { + return class_register(&firmware_class); + } + +-static void __exit firmware_class_exit(void) ++void __exit firmware_class_exit(void) + { + class_unregister(&firmware_class); + } + +-fs_initcall(firmware_class_init); +-module_exit(firmware_class_exit); +- + EXPORT_SYMBOL_GPL(release_firmware); + EXPORT_SYMBOL_GPL(request_firmware); + EXPORT_SYMBOL_GPL(request_firmware_nowait); +--- a/compat/main.c ++++ b/compat/main.c +@@ -47,6 +47,17 @@ void compat_dependency_symbol(void) + EXPORT_SYMBOL_GPL(compat_dependency_symbol); + + ++#if defined(CONFIG_FW_LOADER) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) ++int __init firmware_class_init(void); ++void __exit firmware_class_exit(void); ++#else ++static inline int firmware_class_init(void) ++{ ++ return 0; ++} ++static inline void firmware_class_exit(void) {} ++#endif ++ + static int __init compat_init(void) + { + compat_pm_qos_power_init(); +@@ -63,7 +74,8 @@ static int __init compat_init(void) + printk(KERN_INFO "compat.git: " + COMPAT_BASE_TREE "\n"); + +- return 0; ++ firmware_class_init(); ++ return 0; + } + module_init(compat_init); + +@@ -72,7 +84,8 @@ static void __exit compat_exit(void) + compat_pm_qos_power_deinit(); + compat_system_workqueue_destroy(); + +- return; ++ firmware_class_exit(); ++ return; + } + module_exit(compat_exit); + |