[svn-commits] kpfleming: branch 1.2 r1898 - /branches/1.2/wct4xxp/base.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Mon Jan 22 15:43:06 MST 2007


Author: kpfleming
Date: Mon Jan 22 16:43:06 2007
New Revision: 1898

URL: http://svn.digium.com/view/zaptel?view=rev&rev=1898
Log:
use better definition for linked-in firmware data
ensure that hotplug-loaded firmware is released when we are finished with it

Modified:
    branches/1.2/wct4xxp/base.c

Modified: branches/1.2/wct4xxp/base.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/wct4xxp/base.c?view=diff&rev=1898&r1=1897&r2=1898
==============================================================================
--- branches/1.2/wct4xxp/base.c (original)
+++ branches/1.2/wct4xxp/base.c Mon Jan 22 16:43:06 2007
@@ -2681,8 +2681,8 @@
 #if !defined(HOTPLUG_FIRMWARE)
 	extern const u32 _binary_OCT6114_64D_ima_size;
 	extern const u32 _binary_OCT6114_128D_ima_size;
-	extern u8 _binary_OCT6114_64D_ima_start;
-	extern u8 _binary_OCT6114_128D_ima_start;
+	extern u8 _binary_OCT6114_64D_ima_start[];
+	extern u8 _binary_OCT6114_128D_ima_start[];
 #endif
 
 	if (!vpmsupport) {
@@ -2718,7 +2718,7 @@
 			return;
 		}
 #else
-		embedded_firmware.data = &_binary_OCT6114_64D_ima_start;
+		embedded_firmware.data = _binary_OCT6114_64D_ima_start;
 		embedded_firmware.size = _binary_OCT6114_64D_ima_size;
 #endif
 		break;
@@ -2730,7 +2730,7 @@
 			return;
 		}
 #else
-		embedded_firmware.data = &_binary_OCT6114_128D_ima_start;
+		embedded_firmware.data = _binary_OCT6114_128D_ima_start;
 		embedded_firmware.size = _binary_OCT6114_128D_ima_size;
 #endif
 		break;
@@ -2741,12 +2741,21 @@
 
 	if (!(wc->vpm450m = init_vpm450m(wc, laws, wc->numspans, firmware))) {
 		printk("VPM450: Failed to initialize\n");
+#if defined(HOTPLUG_FIRMWARE)
+		release_firmware(firmware);
+#endif
 		return;
 	}
+
+#if defined(HOTPLUG_FIRMWARE)
+	release_firmware(firmware);
+#endif
+
 	if (vpmdtmfsupport == -1) {
 		printk("VPM450: hardware DTMF disabled.\n");
 		vpmdtmfsupport = 0;
 	}
+
 	wc->vpm = T4_VPM_PRESENT;
 	printk("VPM450: Present and operational servicing %d span(s)\n", wc->numspans);
 }



More information about the svn-commits mailing list