[alsa-devel] [PATCH v2 2/2] conf: topology: Generate Private data binary blobs

Koul, Vinod vinod.koul at intel.com
Tue Apr 5 16:38:49 CEST 2016


On Tue, 2016-04-05 at 14:00 +0200, Takashi Iwai wrote:
> On Tue, 05 Apr 2016 07:20:05 +0200,
> Vinod Koul wrote:
> > 
> > From: Shreyas NC <shreyas.nc at intel.com>
> > 
> > The DSP modules need private data and that is provided as binary
> > blob. These blobs are compiled from C structures which specify
> > module
> > configuration.
> > 
> > Signed-off-by: Shreyas NC <shreyas.nc at intel.com>
> > Signed-off-by: Vinod Koul <vinod.koul at intel.com>
> > ---
> >  src/conf/topology/sklrt286/data/Makefile.am      |    4 +
> >  src/conf/topology/sklrt286/data/README           |    2 +
> >  src/conf/topology/sklrt286/data/compile_local    |   16 +
> >  src/conf/topology/sklrt286/data/configure.ac     |   30 +
> >  src/conf/topology/sklrt286/data/pvt.c            | 1815
> > ++++++++++++++++++++++
> >  src/conf/topology/sklrt286/data/pvt_data.c       |   90 ++
> >  src/conf/topology/sklrt286/data/pvt_data_local.h |  115 ++
> >  7 files changed, 2072 insertions(+)
> >  create mode 100644 src/conf/topology/sklrt286/data/Makefile.am
> >  create mode 100644 src/conf/topology/sklrt286/data/README
> >  create mode 100755 src/conf/topology/sklrt286/data/compile_local
> >  create mode 100644 src/conf/topology/sklrt286/data/configure.ac
> >  create mode 100644 src/conf/topology/sklrt286/data/pvt.c
> >  create mode 100644 src/conf/topology/sklrt286/data/pvt_data.c
> >  create mode 100644 src/conf/topology/sklrt286/data/pvt_data_local.h
> > 
> > diff --git a/src/conf/topology/sklrt286/data/Makefile.am
> > b/src/conf/topology/sklrt286/data/Makefile.am
> > new file mode 100644
> > index 000000000000..9898b9808055
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/Makefile.am
> > @@ -0,0 +1,4 @@
> > +bin_PROGRAMS = pvt_data
> > +pvt_data_SOURCES = pvt_data.c
> > +AM_CPPFLAGS = \
> > +         -Wall -I../../../../../include
> 
> What is this path?
> 
> 
> > diff --git a/src/conf/topology/sklrt286/data/README
> > b/src/conf/topology/sklrt286/data/README
> > new file mode 100644
> > index 000000000000..7d1261069dae
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/README
> > @@ -0,0 +1,2 @@
> > +To compile the src file, run ./compile_local and then ./pvt_data to
> > execute the binary.
> > +The private data blobs will be generated in the sklrt286 folder.
> > diff --git a/src/conf/topology/sklrt286/data/compile_local
> > b/src/conf/topology/sklrt286/data/compile_local
> > new file mode 100755
> > index 000000000000..4b935f8b760d
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/compile_local
> > @@ -0,0 +1,16 @@
> > +#Helper script to compile
> > +touch ltconfig NEWS README AUTHORS ChangeLog
> > +libtoolize --force --copy --automake
> > +aclocal $ACLOCAL_FLAGS
> > +autoheader
> > +automake --foreign --copy --add-missing
> > +touch depcomp		# seems to be missing for old automake
> > +autoconf
> > +export CFLAGS='-O2 -Wall -W -pipe -g'
> > +echo "CFLAGS=$CFLAGS"
> > +echo "./configure $args"
> > +./configure $args || exit 1
> > +unset CFLAGS
> > +if [ -z "$GITCOMPILE_NO_MAKE" ]; then
> > +  make
> > +fi
> > diff --git a/src/conf/topology/sklrt286/data/configure.ac
> > b/src/conf/topology/sklrt286/data/configure.ac
> > new file mode 100644
> > index 000000000000..72c9021edeaf
> > --- /dev/null
> > +++ b/src/conf/topology/sklrt286/data/configure.ac
> > @@ -0,0 +1,30 @@
> > +#                                               -*- Autoconf -*-
> > +# Process this file with autoconf to produce a configure script.
> > +
> > +AC_PREREQ([2.69])
> > +AC_INIT(pvt_data, [VERSION], [BUG-REPORT-ADDRESS])
> > +AM_INIT_AUTOMAKE(pvt_data, 2.6)
> > +AC_CONFIG_SRCDIR([pvt_data.c])
> > +AC_CONFIG_HEADERS([])
> > +
> > +# Checks for programs.
> > +AC_PROG_CC
> > +
> > +# Checks for libraries.
> > +
> > +# Checks for header files.
> > +AC_CHECK_HEADERS([limits.h stdint.h])
> > +
> > +# Checks for typedefs, structures, and compiler characteristics.
> > +AC_TYPE_INT16_T
> > +AC_TYPE_INT32_T
> > +AC_TYPE_INT8_T
> > +AC_TYPE_UINT16_T
> > +AC_TYPE_UINT32_T
> > +AC_TYPE_UINT8_T
> > +
> > +# Checks for library functions.
> > +AC_CHECK_FUNCS([memset strchr])
> > +AC_CONFIG_FILES([Makefile])
> > +
> > +AC_OUTPUT
> 
> There is no special dependency here, so we can just add
> src/conf/toplogty/*/data/Makefile.am in the toplevel configure.ac?

Yes that seems better. Also please note if we do that alsa-lib can
compile the data before it compiles skl topology so we can get rid of
bnary blobs whcih are prebuilt and get them generated on alsa-lib
compile.

This will solve above header patch and will use std path in lib

Is that okay with you?

-- 
~Vinod


More information about the Alsa-devel mailing list