All of lore.kernel.org
 help / color / mirror / Atom feed
* Adding controls
@ 2006-03-21 23:39 Adrian McMenamin
  2006-03-21 23:58 ` Lee Revell
  0 siblings, 1 reply; 8+ messages in thread
From: Adrian McMenamin @ 2006-03-21 23:39 UTC (permalink / raw)
  To: alsa-devel

When I try to compile my driver I get loads of messages like this...

/home/adrian/aica/aica/snd_card_aica.c:489: warning: "struct
snd_ctl_elem_info" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:489: warning: its scope is only
this definition or declaration, which is probably not what you want
/home/adrian/aica/aica/snd_card_aica.c:489: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:494: warning: "struct
snd_ctl_elem_value" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:494: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:499: warning: "struct
snd_ctl_elem_value" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:499: warning: "struct
snd_kcontrol" declared inside parameter list


The code in question is this:

/* Mixer controls */
static int aica_controls_info(struct snd_kcontrol *kcontrol, struct
snd_ctl_elem_info *uinfo)
{
	return 0;
}

static int aica_controls_get(struct snd_kcontrol *kcontrol, struct
snd_ctl_elem_value *ucontrol)
{
	return 0;
}

static int aica_controls_put(struct snd_kcontrol *kcontrol, struct
snd_ctl_elem_value *ucontrol)
{
	return 0;
}

static struct snd_kcontrol_new snd_aica_controls __devinitdata = {
	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
	.name = "PCM Playback Volume",
	.index = 0,
	.access = SND_CTL_ELEM_ACCESS_READWRITE,
	.private_values = 0xffff,
	.info = aica_controls_info,
	.get = aica_controls_get,
	.put = aica_controls_put
};


And the includes are these:

#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/wait.h>
#include <linux/moduleparam.h>
#include <linux/platform_device.h>
#include <linux/firmware.h>
#include <linux/timer.h>
#include <linux/delay.h>
#include <asm-sh/io.h>
#include <asm-sh/dma.h>
#include <asm-sh/dreamcast/sysasic.h>
#include <sound/driver.h>
#include <sound/core.h>
#include <sound/control.h>
#include <sound/pcm.h>
#include <sound/initval.h>
#include <sound/info.h>
#include "aica.h"



Plainly I have missed something obvious - like a missing header file.
but for the life of me I cannot spot what it is. Can anyone else?



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-21 23:39 Adding controls Adrian McMenamin
@ 2006-03-21 23:58 ` Lee Revell
  2006-03-22 20:36   ` Adrian McMenamin
  0 siblings, 1 reply; 8+ messages in thread
From: Lee Revell @ 2006-03-21 23:58 UTC (permalink / raw)
  To: Adrian McMenamin; +Cc: alsa-devel

On Tue, 2006-03-21 at 23:39 +0000, Adrian McMenamin wrote:
> When I try to compile my driver I get loads of messages like this...

Weird.  It is defined in asound.h, which should be included by:

cvs/alsa/alsa-kernel/include/asequencer.h:#include <sound/asound.h>
cvs/alsa/alsa-kernel/include/control.h:#include <sound/asound.h>
cvs/alsa/alsa-kernel/include/hwdep.h:#include <sound/asound.h>
cvs/alsa/alsa-kernel/include/pcm.h:#include <sound/asound.h>
cvs/alsa/alsa-kernel/include/rawmidi.h:#include <sound/asound.h>
cvs/alsa/alsa-kernel/include/sfnt_info.h:#include <sound/asound.h>
cvs/alsa/alsa-kernel/include/timer.h:#include <sound/asound.h>

Maybe it's an arch thing.  Try including <sound/asound.h> directly, or
just copy the declaration ;-)

Lee



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-21 23:58 ` Lee Revell
@ 2006-03-22 20:36   ` Adrian McMenamin
  2006-03-22 20:55     ` Adrian McMenamin
  0 siblings, 1 reply; 8+ messages in thread
From: Adrian McMenamin @ 2006-03-22 20:36 UTC (permalink / raw)
  To: Lee Revell; +Cc: alsa-devel

On Tue, 2006-03-21 at 18:58 -0500, Lee Revell wrote:
> On Tue, 2006-03-21 at 23:39 +0000, Adrian McMenamin wrote:
> > When I try to compile my driver I get loads of messages like this...
> 
> Weird.  It is defined in asound.h, which should be included by:
> 
> cvs/alsa/alsa-kernel/include/asequencer.h:#include <sound/asound.h>
> cvs/alsa/alsa-kernel/include/control.h:#include <sound/asound.h>
> cvs/alsa/alsa-kernel/include/hwdep.h:#include <sound/asound.h>
> cvs/alsa/alsa-kernel/include/pcm.h:#include <sound/asound.h>
> cvs/alsa/alsa-kernel/include/rawmidi.h:#include <sound/asound.h>
> cvs/alsa/alsa-kernel/include/sfnt_info.h:#include <sound/asound.h>
> cvs/alsa/alsa-kernel/include/timer.h:#include <sound/asound.h>
> 
> Maybe it's an arch thing.  Try including <sound/asound.h> directly, or
> just copy the declaration ;-)
> 
I did. Made no difference afaics



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-22 20:36   ` Adrian McMenamin
@ 2006-03-22 20:55     ` Adrian McMenamin
  2006-03-23  9:43       ` Takashi Iwai
  0 siblings, 1 reply; 8+ messages in thread
From: Adrian McMenamin @ 2006-03-22 20:55 UTC (permalink / raw)
  To: Lee Revell; +Cc: alsa-devel

On Wed, 2006-03-22 at 20:36 +0000, Adrian McMenamin wrote:

> > 
> I did. Made no difference afaics
> 

By which I mean I included the asound header file

:(



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-22 20:55     ` Adrian McMenamin
@ 2006-03-23  9:43       ` Takashi Iwai
  2006-03-25 17:25         ` Adrian McMenamin
  0 siblings, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2006-03-23  9:43 UTC (permalink / raw)
  To: Adrian McMenamin; +Cc: Lee Revell, alsa-devel

At Wed, 22 Mar 2006 20:55:46 +0000,
Adrian McMenamin wrote:
> 
> On Wed, 2006-03-22 at 20:36 +0000, Adrian McMenamin wrote:
> 
> > > 
> > I did. Made no difference afaics
> > 
> 
> By which I mean I included the asound header file
> 
> :(

How are you compileing your stuff?  In the alsa-driver tree?
If so, check the compiler options, especially -Ixxx is passed
with a proper path.  In 2.6 environment, run like

	% make V=1

then you'll see verbose output.

Takashi


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-23  9:43       ` Takashi Iwai
@ 2006-03-25 17:25         ` Adrian McMenamin
  2006-03-25 17:57           ` Adrian McMenamin
  2006-03-26  0:05           ` Adrian McMenamin
  0 siblings, 2 replies; 8+ messages in thread
From: Adrian McMenamin @ 2006-03-25 17:25 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Lee Revell, alsa-devel

On Thu, 2006-03-23 at 10:43 +0100, Takashi Iwai wrote:
> At Wed, 22 Mar 2006 20:55:46 +0000,
> Adrian McMenamin wrote:
> > 
> > On Wed, 2006-03-22 at 20:36 +0000, Adrian McMenamin wrote:
> > 
> > > > 
> > > I did. Made no difference afaics
> > > 
> > 
> > By which I mean I included the asound header file
> > 
> > :(
> 
> How are you compileing your stuff?  In the alsa-driver tree?
> If so, check the compiler options, especially -Ixxx is passed
> with a proper path.  In 2.6 environment, run like
> 
> 	% make V=1
> 
> then you'll see verbose output.
> 

I am compiling this out of the tree and it worked fine until I added the
mixer code...

This is the makefile

# This needs to point at your sh sources
KERNEL_SRC = /home/adrian/linux-2.6.15.2

# Output directory that you used when building Linux kernel, if any.
# Note: this driver will be compiled to the current directory
regardless.
O = $(KERNEL_SRC)

PWD := $(shell pwd)

obj-m := snd_card_aica.o

all::
	$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules



This is the verbose output

adrian@bossclass:~/aica/aica$ make V=1 ARCH=sh
CROSS_COMPILE=/home/adrian/buildroot/build_sh4/staging_dir/bin/sh4-linux- -j2
make -C /home/adrian/linux-2.6.15.2 M=/home/adrian/aica/aica modules
make[1]: Entering directory `/home/adrian/linux-2.6.15.2'
mkdir -p /home/adrian/aica/aica/.tmp_versions
make -f scripts/Makefile.build obj=/home/adrian/aica/aica
  /home/adrian/buildroot/build_sh4/staging_dir/bin/sh4-linux-gcc
-Wp,-MD,/home/adrian/aica/aica/.snd_card_aica.o.d  -nostdinc
-isystem /home/adrian/buildroot/build_sh4/staging_dir/lib/gcc/sh4-linux-uclibc/3.4.2/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -ml -Wa,-isa=sh4 -m4 -m4-nofpu -Wdeclaration-after-statement   -DMODULE -DKBUILD_BASENAME=snd_card_aica -DKBUILD_MODNAME=snd_card_aica -c -o /home/adrian/aica/aica/snd_card_aica.o /home/adrian/aica/aica/snd_card_aica.c/home/adrian/aica/aica/snd_card_aica.c:58: warning: function declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:111: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:132: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:148: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:163: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:171: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c: In function
`stereo_buffer_transfer':
/home/adrian/aica/aica/snd_card_aica.c:221: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c:232: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c: In function
`aica_period_elapsed':
/home/adrian/aica/aica/snd_card_aica.c:277: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c: In function
`snd_aicapcm_pcm_open':
/home/adrian/aica/aica/snd_card_aica.c:308: warning: ISO C90 forbids
mixed declarations and code
/home/adrian/aica/aica/snd_card_aica.c: At top level:
/home/adrian/aica/aica/snd_card_aica.c:356: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c: In function `spu_begin_dma':
/home/adrian/aica/aica/snd_card_aica.c:373: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c: At top level:
/home/adrian/aica/aica/snd_card_aica.c:489: warning: "struct
snd_ctl_elem_info" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:489: warning: its scope is only
this definition or declaration, which is probably not what you want
/home/adrian/aica/aica/snd_card_aica.c:489: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:494: warning: "struct
snd_ctl_elem_value" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:494: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:499: warning: "struct
snd_ctl_elem_value" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:499: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:504: error: variable
`snd_aica_controls' has initializer but incomplete type
/home/adrian/aica/aica/snd_card_aica.c:505: error: unknown field `iface'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:505: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:505: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:506: error: unknown field `name'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:506: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:506: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:507: error: unknown field `index'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:507: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:507: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:508: error: unknown field
`access' specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:508: error:
`SND_CTL_ELEM_ACCESS_READWRITE' undeclared here (not in a function)
/home/adrian/aica/aica/snd_card_aica.c:508: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:508: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:509: error: unknown field
`private_values' specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:509: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:509: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:510: error: unknown field `info'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:510: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:510: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:511: error: unknown field `get'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:511: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:511: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:512: error: unknown field `put'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:513: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:513: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:533: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c: In function
`load_aica_firmware':
/home/adrian/aica/aica/snd_card_aica.c:537: warning: ISO C90 forbids
mixed declarations and code
/home/adrian/aica/aica/snd_card_aica.c: In function `aica_init':
/home/adrian/aica/aica/snd_card_aica.c:609: error: `snd_aica_control'
undeclared (first use in this function)
/home/adrian/aica/aica/snd_card_aica.c:609: error: (Each undeclared
identifier is reported only once
/home/adrian/aica/aica/snd_card_aica.c:609: error: for each function it
appears in.)
/home/adrian/aica/aica/snd_card_aica.c:609: warning: passing arg 1 of
`snd_ctl_add' from incompatible pointer type
/home/adrian/aica/aica/snd_card_aica.c: At top level:
/home/adrian/aica/aica/snd_card_aica.c:504: error: storage size of
`snd_aica_controls' isn't known
/home/adrian/aica/aica/snd_card_aica.c:504: warning: 'snd_aica_controls'
defined but not used
make[2]: *** [/home/adrian/aica/aica/snd_card_aica.o] Error 1
make[1]: *** [_module_/home/adrian/aica/aica] Error 2
make[1]: Leaving directory `/home/adrian/linux-2.6.15.2'
make: *** [all] Error 2
adrian@bossclass:~/aica/aica$





-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-25 17:25         ` Adrian McMenamin
@ 2006-03-25 17:57           ` Adrian McMenamin
  2006-03-26  0:05           ` Adrian McMenamin
  1 sibling, 0 replies; 8+ messages in thread
From: Adrian McMenamin @ 2006-03-25 17:57 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Lee Revell, alsa-devel

On Sat, 2006-03-25 at 17:25 +0000, Adrian McMenamin wrote:
> On Thu, 2006-03-23 at 10:43 +0100, Takashi Iwai wrote:
> > At Wed, 22 Mar 2006 20:55:46 +0000,
> > Adrian McMenamin wrote:
> > > 
> > > On Wed, 2006-03-22 at 20:36 +0000, Adrian McMenamin wrote:
> > > 
> > > > > 
> > > > I did. Made no difference afaics
> > > > 
> > > 
> > > By which I mean I included the asound header file
> > > 
> > > :(
Testing shows it is definitely being included - very strange



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Adding controls
  2006-03-25 17:25         ` Adrian McMenamin
  2006-03-25 17:57           ` Adrian McMenamin
@ 2006-03-26  0:05           ` Adrian McMenamin
  1 sibling, 0 replies; 8+ messages in thread
From: Adrian McMenamin @ 2006-03-26  0:05 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Lee Revell, alsa-devel

I think I have found one of the reasons why my code was failing...

This: struct snd_ctl_elem_info

and similar types referred to in the documentation (the how to write a
driver docs) doesn't actually exist...

snd_ctl_elem_info_t does exist as does sndrv_ctl_elem_info 

If I knew how docbook worked I'd post a patch :)



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2006-03-26  0:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-21 23:39 Adding controls Adrian McMenamin
2006-03-21 23:58 ` Lee Revell
2006-03-22 20:36   ` Adrian McMenamin
2006-03-22 20:55     ` Adrian McMenamin
2006-03-23  9:43       ` Takashi Iwai
2006-03-25 17:25         ` Adrian McMenamin
2006-03-25 17:57           ` Adrian McMenamin
2006-03-26  0:05           ` Adrian McMenamin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.