summaryrefslogtreecommitdiff
path: root/wct4xxp
diff options
context:
space:
mode:
authorkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-01-29 19:22:26 +0000
committerkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-01-29 19:22:26 +0000
commit54d2cc8faca6484b6208edff542c010250c7e5e8 (patch)
tree6a13b2418fa0c042f3094eeb88aed0730688815a /wct4xxp
parent01cb3933342bdb7139bdc446b098e4f3da374a47 (diff)
Merged revisions 1998 via svnmerge from
https://origsvn.digium.com/svn/zaptel/branches/1.4 ................ r1998 | kpfleming | 2007-01-29 13:21:33 -0600 (Mon, 29 Jan 2007) | 10 lines Merged revisions 1996 via svnmerge from https://origsvn.digium.com/svn/zaptel/branches/1.2 ........ r1996 | kpfleming | 2007-01-29 13:20:32 -0600 (Mon, 29 Jan 2007) | 2 lines _really_ fix the non-hotplug firmware case ........ ................ git-svn-id: http://svn.digium.com/svn/zaptel/trunk@1999 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'wct4xxp')
-rw-r--r--wct4xxp/base.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/wct4xxp/base.c b/wct4xxp/base.c
index 28735c1..8357ec4 100644
--- a/wct4xxp/base.c
+++ b/wct4xxp/base.c
@@ -3107,8 +3107,8 @@ static void t4_vpm450_init(struct t4 *wc)
struct firmware embedded_firmware;
const struct firmware *firmware = &embedded_firmware;
#if !defined(HOTPLUG_FIRMWARE)
- extern const u32 *_binary_OCT6114_64D_ima_size;
- extern const u32 *_binary_OCT6114_128D_ima_size;
+ extern void *_binary_OCT6114_64D_ima_size;
+ extern void *_binary_OCT6114_128D_ima_size;
extern u8 _binary_OCT6114_64D_ima_start[];
extern u8 _binary_OCT6114_128D_ima_start[];
#endif
@@ -3147,7 +3147,13 @@ static void t4_vpm450_init(struct t4 *wc)
}
#else
embedded_firmware.data = _binary_OCT6114_64D_ima_start;
- embedded_firmware.size = *_binary_OCT6114_64D_ima_size;
+ /* Yes... this is weird. objcopy gives us a symbol containing
+ the size of the firmware, not a pointer a variable containing
+ the size. The only way we can get the value of the symbol
+ is to take its address, so we define it as a pointer and
+ then cast that value to the proper type.
+ */
+ embedded_firmware.size = (size_t) _binary_OCT6114_64D_ima_size;
#endif
break;
case 128:
@@ -3159,7 +3165,13 @@ static void t4_vpm450_init(struct t4 *wc)
}
#else
embedded_firmware.data = _binary_OCT6114_128D_ima_start;
- embedded_firmware.size = *_binary_OCT6114_128D_ima_size;
+ /* Yes... this is weird. objcopy gives us a symbol containing
+ the size of the firmware, not a pointer a variable containing
+ the size. The only way we can get the value of the symbol
+ is to take its address, so we define it as a pointer and
+ then cast that value to the proper type.
+ */
+ embedded_firmware.size = (size_t) _binary_OCT6114_128D_ima_size;
#endif
break;
default: