c3110x: add patch and magic to get a working umac.ko for the nokia 800
authorKoen Kooi <koen@openembedded.org>
Tue, 5 Jun 2007 12:01:47 +0000 (12:01 +0000)
committerKoen Kooi <koen@openembedded.org>
Tue, 5 Jun 2007 12:01:47 +0000 (12:01 +0000)
* you need to provide your own umac.ko to avoid licensing troubles

packages/c3110x/cx3110x_1.1.bb
packages/c3110x/files/.mtn2git_empty [new file with mode: 0644]
packages/c3110x/files/umac_binary.patch [new file with mode: 0644]

index b3a9ce8..15cf514 100644 (file)
@@ -1,18 +1,30 @@
-DESCRIPTION = "cx3110x wifi support as found in the Nokia 770/800"
-SECTION = "kernel/modules"
-LICENSE = "GPL"
-PR = "r0"
-
-export KERNEL_SRC_DIR = ${STAGING_KERNEL_DIR}
-export LDFLAGS = ""
-
-SRC_URI = "https://garage.maemo.org/frs/download.php/939/cx3110x-1.1.tar.gz"
-
-S = "${WORKDIR}/cx3110x-${PV}"
-
-inherit module
-
-do_compile() {
-       oe_runmake modules 
-}
-
+DESCRIPTION = "cx3110x wifi support as found in the Nokia 770/800"\r
+SECTION = "kernel/modules"\r
+LICENSE = "GPL"\r
+PR = "r4"\r
+\r
+COMPATIBLE_MACHINE = "(nokia770|nokia800)"\r
+\r
+export KERNEL_SRC_DIR = ${STAGING_KERNEL_DIR}\r
+export LDFLAGS = ""\r
+\r
+SRC_URI = "https://garage.maemo.org/frs/download.php/939/cx3110x-1.1.tar.gz \\r
+           file://umac_binary.patch;patch=1 \\r
+           http://use.the.umac.ko.from.your.own.nokia800/umac.ko"\r
+\r
+S = "${WORKDIR}/cx3110x-${PV}"\r
+\r
+inherit module\r
+\r
+do_compile() {\r
+       cp ${WORKDIR}/umac.ko ${S}/src/binary_umac.o\r
+       ${OBJCOPY} ${S}/src/binary_umac.o -R __ksymtab\r
+       ${OBJCOPY} ${S}/src/binary_umac.o -R __ksymtab_strings\r
+       ${OBJCOPY} ${S}/src/binary_umac.o -R .gnu.linkonce.this_module\r
+       ${OBJCOPY} ${S}/src/binary_umac.o -R .modinfo\r
+       ${OBJCOPY} ${S}/src/binary_umac.o -R .init.text\r
+       ${OBJCOPY} ${S}/src/binary_umac.o -R .exit.text\r
+\r
+       oe_runmake modules \r
+}\r
+\r
diff --git a/packages/c3110x/files/.mtn2git_empty b/packages/c3110x/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/c3110x/files/umac_binary.patch b/packages/c3110x/files/umac_binary.patch
new file mode 100644 (file)
index 0000000..bffe69b
--- /dev/null
@@ -0,0 +1,69 @@
+ src/Makefile.k26 |    4 ++--\r
+ src/dummy_umac.c |   38 ++------------------------------------\r
+ 2 files changed, 4 insertions(+), 38 deletions(-)\r
+\r
+Index: cx3110x-1.1/src/Makefile.k26\r
+===================================================================\r
+--- cx3110x-1.1.orig/src/Makefile.k26  2007-05-25 17:51:15.000000000 +0100\r
++++ cx3110x-1.1/src/Makefile.k26       2007-05-25 22:44:36.000000000 +0100\r
+@@ -8,8 +8,8 @@ cx3110x-objs = $(SM_OBJECTS) $(SM_UMAC_O\r
+ #MTUM module\r
+ cx3110x_mt-objs = $(SM_OBJECTS) $(SM_MTUM_OBJECTS)\r
\r
+-umac-objs = dummy_umac.o\r
+-mtum-objs = dummy_umac.o\r
++umac-objs = dummy_umac.o binary_umac.o\r
++mtum-objs = dummy_umac.o binary_umac.o\r
\r
+ obj-$(CONFIG_CX3110X_STA)  += cx3110x.o umac.o\r
+ obj-$(CONFIG_CX3110X_PROD) += cx3110x_mt.o mtum.o\r
+Index: cx3110x-1.1/src/dummy_umac.c\r
+===================================================================\r
+--- cx3110x-1.1.orig/src/dummy_umac.c  2007-05-25 17:51:15.000000000 +0100\r
++++ cx3110x-1.1/src/dummy_umac.c       2007-05-25 22:50:59.000000000 +0100\r
+@@ -15,43 +15,9 @@\r
+  */\r
+ #include <linux/module.h>\r
+ #include "softmac2.h"\r
++#include "sm_drv.h"\r
\r
+-SM_API int32_t SM_FDECL prism_softmac_parse_bra(const uint8_t* bra, \r
+-                                              struct s_sm_initdata *data) { return 0; }\r
+-\r
+-SM_API int32_t SM_FDECL prism_softmac_describe(struct s_sm_descr *descr, \r
+-                                             struct s_sm_initdata *data) { return 0; }\r
+-\r
+-SM_API int32_t SM_FDECL prism_softmac_create(uint32_t *context, \r
+-                                           struct s_sm_setup *setup, \r
+-                                           struct s_pda *pda, \r
+-                                           struct s_sm_initdata *data) { return 0; }\r
+-\r
+-SM_API int32_t SM_FDECL prism_softmac_destroy(uint32_t *context) { return 0; }\r
+-\r
+-SM_API int32_t SM_FDECL prism_softmac_conf( uint32_t *context, struct s_sm_conf *conf ){ return 0; }\r
+-SM_API int32_t SM_FDECL prism_softmac_trap( uint32_t *context, struct s_sm_conf *conf ){ return 0; }\r
+-\r
+-SM_API int32_t SM_FDECL prism_softmac_frame_tx(uint32_t *context, struct s_sm_frame *frame){ return 0; }\r
+-SM_API int32_t SM_FDECL prism_softmac_frame_tx_done(uint32_t *context, struct s_sm_frame **frame){ return 0; }\r
+-SM_API int32_t SM_FDECL prism_softmac_frame_rx(uint32_t *context, struct s_sm_frame **frame){ return 0; }\r
+-SM_API int32_t SM_FDECL prism_softmac_service(uint32_t *context) { return 0; }\r
+-\r
+-SM_API int32_t SM_FDECL prism_interconnect_message_query(uint32_t *context, \r
+-                                                       uint32_t mask, \r
+-                                                       struct s_ic_msg **msg){ return 0; }\r
+-SM_API int32_t SM_FDECL prism_interconnect_message_handle(uint32_t *context, struct s_ic_msg *msg){ return 0; }\r
+-SM_API int32_t SM_FDECL prism_interconnect_trigger(uint32_t *context){ return 0;}\r
+-\r
+-void prism_driver_free(uint32_t *context, void *buffer){}\r
+-void prism_driver_frame_free(uint32_t *context, struct s_sm_frame *frame){}\r
+-\r
+-int   sm_net_device;\r
+-void  sm_drv_get_device(void) {}\r
+-void  frame_skb_alloc(void) {}\r
+-void  frame_skb_free(void) {}\r
+-void  frame_to_skb(void) {}\r
+-void  skb_to_frame(void) {}\r
++extern int sm_net_device;\r
\r
+ EXPORT_SYMBOL(prism_driver_free);\r
+ EXPORT_SYMBOL(prism_driver_frame_free);\r