Update of /cvsroot/alsa/alsa-tools/hdsploader
In directory sc8-pr-cvs1:/tmp/cvs-serv23176
Modified Files:
Makefile.am README configure.in hdsploader.c
Log Message:
Moved firmware to alsa-firmware module, corrected DATAPATH
Index: Makefile.am
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/Makefile.am,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Makefile.am 25 Nov 2003 14:27:45 -0000 1.3
+++ Makefile.am 25 Nov 2003 16:07:05 -0000 1.4
@@ -1,15 +1,16 @@
# # Process this file with automake to produce Makefile.in.
-
-SUBDIRS = firmware
+MYNAME = hdsploader
bin_PROGRAMS = hdsploader
+AM_CFLAGS = -DDATAPATH=\"$(datadir)/alsa/firmware/$(MYNAME)\"
+
hdsploader_SOURCES = hdsploader.c
EXTRA_DIST = depcomp
alsa-dist: distdir
- @rm -rf ../distdir/hdsploader
- @mkdir -p ../distdir/hdsploader
- @cp -RLpv $(distdir)/* ../distdir/hdsploader
+ @rm -rf ../distdir/$(MYNAME)
+ @mkdir -p ../distdir/$(MYNAME)
+ @cp -RLpv $(distdir)/* ../distdir/$(MYNAME)
@rm -rf $(distdir)
Index: README
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- README 7 Apr 2003 15:37:22 -0000 1.1
+++ README 25 Nov 2003 16:07:05 -0000 1.2
@@ -3,5 +3,14 @@
USAGE
+=====
Just run hdsploader, the program takes care of everything.
+
+FILES
+=====
+
+The firmware binaries are installed on /usr/share/alsa/firmware/hdsploader
+(or /usr/local/share/alsa/firmware/hdsploader, depending to the prefix
+option of configure). There will be *.conf files, which define the dsp
+image files for each different card type.
Index: configure.in
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/configure.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- configure.in 3 Nov 2003 19:09:55 -0000 1.4
+++ configure.in 25 Nov 2003 16:07:05 -0000 1.5
@@ -49,4 +49,4 @@
fi
fi
-AC_OUTPUT(Makefile firmware/Makefile)
+AC_OUTPUT(Makefile)
Index: hdsploader.c
===================================================================
RCS file: /cvsroot/alsa/alsa-tools/hdsploader/hdsploader.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- hdsploader.c 25 Nov 2003 11:51:31 -0000 1.5
+++ hdsploader.c 25 Nov 2003 16:07:05 -0000 1.6
@@ -20,14 +20,38 @@
#include <stdio.h>
#include <stdlib.h>
+#include <endian.h>
#include <sys/ioctl.h>
#include <alsa/asoundlib.h>
#include <sound/hdsp.h>
-#include "firmware/multiface_firmware.dat"
-#include "firmware/digiface_firmware.dat"
-#include "firmware/multiface_firmware_rev11.dat"
-#include "firmware/digiface_firmware_rev11.dat"
+static u_int32_t code[24413];
+
+int read_bin_file(u_int32_t *array, const char *filename)
+{
+ FILE *out;
+
+ if ((out = fopen(filename, "r")) == NULL) {
+ fprintf(stderr, "Unable to open file '%s' for reading\n", filename);
+ return -1;
+ }
+ if (fread(array, 4, 24413, out) != 24413) {
+ fclose(out);
+ return -1;
+ }
+ fclose(out);
+#if __BYTE_ORDER == __BIG_ENDIAN
+ {
+ unsigned int idx;
+ for (idx = 0; idx < 24413; idx++)
+ array[idx] = ((array[idx] & 0x000000ff) << 16) |
+ ((array[idx] & 0x0000ff00) << 8) |
+ ((array[idx] & 0x00ff0000) >> 8) |
+ ((array[idx] & 0xff000000) >> 16);
+ }
+#endif
+ return 0;
+}
void upload_firmware(int card)
{
@@ -54,20 +78,21 @@
snd_hwdep_close(hw);
return;
}
-
+
+ firmware.firmware_data = (unsigned long *)code;
switch (version.io_type) {
case Multiface:
if (version.firmware_rev == 0xa) {
- firmware.firmware_data = multiface_firmware;
+ err = read_bin_file(code, DATAPATH "multiface_firmware.bin");
} else {
- firmware.firmware_data = multiface_firmware_rev11;
+ err = read_bin_file(code, DATAPATH "multiface_firmware_rev11.bin");
}
break;
case Digiface:
if (version.firmware_rev == 0xa) {
- firmware.firmware_data = digiface_firmware;
+ err = read_bin_file(code, DATAPATH "digiface_firmware.bin");
} else {
- firmware.firmware_data = digiface_firmware_rev11;
+ err = read_bin_file(code, DATAPATH "digiface_firmware_rev11.bin");
}
break;
default:
@@ -75,6 +100,8 @@
snd_hwdep_close(hw);
return;
}
+ if (err < 0)
+ return;
if ((err = snd_hwdep_ioctl(hw, SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE, &firmware)) < 0)
{
fprintf(stderr, "Hwdep ioctl error on card %s : %s.\n", card_name,
snd_strerror(err));
@@ -115,4 +142,3 @@
}
return 0;
}
-
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog